西门子SCL读写DB数据
数据块间接寻址方式,仅供参考。
STATUS_1:= DB11.DW[COUNTER]; //字节间接寻址
STATUS_2:= DB12.DX[WNO, BITNO]; //位间接寻址,用户改变WNO,BITNO数值即可
STATUS_1:= Database1.DW[COUNTER]; // Database1为DB类型的本地变量
STATUS_2:= Database2.DX[WNO, BITNO];
STATUS_1:= WORD_TO_BLOCK_DB(INDEX).DW[COUNTER];
//INDEX被定义为 BLOCK_DB 数据类型,COUNTER为整数数据类型,这样可以实现/数据块编号,
字节地址同时间接寻址,此功能是一种功能很强间接寻址方式。
数据块直接寻址方式,仅供参考。
STATUSBYTE :=DB101.DB10; //字节直接寻址格式
STATUS_3 :=DB30.D1.1; //位直接寻址格式
MEASVAL :=DB25.DW20; //字直接寻址格式
STATUSBYTE :=Status_data.DB10;
STATUS_3 :="New data".D1.1;
MEASVAL :=Measdata.DW20;
STATUS_1 :=WORD_TO_BLOCK_DB (INDEX).DW10;
BLOCK_DB类型使用。
1. copy the individual variables:
In this case every variable is read one by one from the user data blocks. The addressing in the data blocks is
absolutely. This is particularly suitable for small amounts of data.
1. Kopieren der einzelnen Variablen:
In diesem Fall wird jede Variable einzeln aus dem Anwenderdatenbaustein gelesen. Die Adressierung im
Datenbaustein erfolgt absolut. Dies ist besonders für kleine Datenmengen geeignet.
addressing with Block-number / Adressierung über DB-Nummer
FUNCTION_BLOCK FB1
VAR_INPUT
DB_NO : BLOCK_DB; //Number of the Data-Block / DB-Nummer先声明一个BLOCK_DB类型
END_VAR
VAR
S : STRUCT
// internal structure / interne Struktur
VALUE1 : WORD;
VALUE2 : REAL;
VALUE3 : BYTE;
VALUE4 : BYTE;
END_STRUCT;
END_VAR
S.VALUE1 := DB_NO.DW8;//对于WORD类型的,直接这样访问即可
S.VALUE2 := DWORD_TO_REAL(DB_NO.DD10);//对于其它类型的数据,由于DB_N0的块号不定,
//系统不知道DD10是什么数据类型,前边要用双字转成实数类型的语句,不能直接用DB_NO.xxx访问,
//否则会报无效的数据类型
S.VALUE3 := DB_NO.DBB14 ;
S.VALUE4 := DB_NO.DBB15;
END_FUNCTION_BLOCK
addressing with Any-pointer / Adressierung über Any-Pointer
FUNCTION_BLOCK FB2
VAR_INPUT
DB_ANY : ANY; // Any-Pointer of the Data-Block / Any-pointer für DB
AnyPointer AT DB_ANY: STRUCT
BYTE0 :BYTE; // Byte 0
TYP :BYTE; // Byte 1 Data-/Parametertype / Byte 1 Daten- / Parametertyp
ANZ :WORD; // Byte 2+3 Lenth of data / Byte 2-3 Datenlnge
DBNO :WORD; // Byte 4+5 DB-Number / Byte 4+5 DB-Nummer
BZ :DWORD; // Byte 6 to 10 Pointer / Byte 6 bis 10 Bereichszeiger
END_STRUCT;
END_VAR
VAR
S : STRUCT
//internal stucture / interne Struktur
VALUE1 : WORD;
VALUE2 : REAL;
VALUE3 : BYTE;
VALUE4 : BYTE;
END_STRUCT;
END_VAR
S.VALUE1 := WORD_TO_BLOCK_DB(AnyPointer.DBNO).DW8;
S.VALUE2 := DWORD_TO_REAL(WORD_TO_BLOCK_DB(AnyPointer.DBNO).DD10);
S.VALUE3 := WORD_TO_BLOCK_DB(AnyPointer.DBNO).DBB14 ;
http://www.360doc.com/content/12/0505/13/7023119_208807550.shtml
西门子SCL读写DB数据的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式
Linux就这个范儿 第15章 七种武器 linux 同步IO: sync.fsync与fdatasync Linux中的内存大页面huge page/large page David Cut ...
- 营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理
摘要:你知道吗,MySQL在实际工作时候的两种数据读写机制? 本文分享自华为云社区<MySQL日志顺序读写及数据文件随机读写原理>,作者:JavaEdge . MySQL在实际工作时候的两 ...
- IO流-文本IO\读写二进制数据
文本IO 一.简述 OutputStreamWriter类使用选定的编码方式吧Unicode字符流转换为字节流,InputStreamReader类将包含字节的输入流转为可以产生Unicode字符的读 ...
- Linux就这个范儿 第18章 这里也是鼓乐笙箫 Linux读写内存数据的三种方式
Linux就这个范儿 第18章 这里也是鼓乐笙箫 Linux读写内存数据的三种方式 P703 Linux读写内存数据的三种方式 1.read ,write方式会在用户空间和内核空间不断拷贝数据, ...
- [Java] 读写字节数据,过滤流DataOutputStream和DataInputStream
package test.stream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io ...
- [Java] 读写字符串数据
package test.stream; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- 【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大 ...
- Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道
Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Targe ...
随机推荐
- 八大排序算法——堆排序(动图演示 思路分析 实例代码java 复杂度分析)
一.动图演示 二.思路分析 先来了解下堆的相关概念:堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆:或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆.如 ...
- Qt核心机制与原理
转: https://blog.csdn.net/light_in_dark/article/details/64125085 ★了解Qt和C++的关系 ★掌握Qt的信号/槽机制的原理和使用方法 ★ ...
- mysql中用limit 进行分页有两种方式
代码示例:语句1: select * from student limit 9,4 语句2: slect * from student limit 4 offset 9 // 语句1和2均返回表stu ...
- PDF 补丁丁 0.6.0.3363 版发布(修复无法保存应用程序设置的问题)
本测试版修复了上一测试版无法保存应用程序设置的问题,以及导出导入信息文件的若干小问题.
- JS数组映射保存数据-场景
开发遇到,写个随笔,以防我的金鱼记忆 场景:一个页面从后台拿到20条数据,把他们展现在页面上,当点击某一个item时,需要展示这个item的详情,通常不会去把页面调走,就在本页面通过 display: ...
- 页面中直接显示FTP中的图片
页面中直接显示FTP中的图片 FTP根目录下有一张图片,如下 第一步: 通过如下格式,在浏览器上输入路径,确定可看到图片 ftp://root:root@127.0.0.1/111.png ftp:/ ...
- js判断数组是否有重复值
function isRepeat(arr) { var hash = {}; for(var i in arr) { if(hash[arr[i]]) return true; hash[arr[i ...
- CICD自动化发版系统设计简介
第一篇. 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑.接下来的一系列文章将介绍我设计的自动化发版系统! 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenk ...
- SpingMVC的工作流程
一.SpringMVC的主要组件 前端控制器(DisatcherServlet):接收请求,响应结果,返回可以是json,String等数据类型,也可以是页面(Model). 处理器映射器(Handl ...
- 自动化运维之Saltstack
第三十八课 自动化运维之Saltstack 目录 一.自动化运维介绍 二. saltstack安装 三. 启动saltstack服务 四. saltstack配置认证 五. saltstack远程执行 ...