西门子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 ...
随机推荐
- CSS:margin和padding之谜
margin外边距,padding内边距.光看书本的介绍,理解起来好费劲,那咱就举个荔枝:你家的保险箱,是那种镶在墙壁里的,保险箱与墙壁的距离就是margin,保险箱壁就是所谓的border,保险箱与 ...
- JVM中的垃圾回收器及垃圾收集算法描述
首先需要了解下JVM(Java虚拟机)中的内存分配情况: 收集器的介绍: Serial收集器:是最原始的收集器,是单线程的,实现简单,但是在后台收集垃圾的时候,其他的工作线程都会停止,直到垃圾收集线程 ...
- JQ菜单滑块
网站导航滑块效果: 复制以下代码保存到html文件中即可查看效果... <html> <head> <title>JQ菜单滑块</title> < ...
- Linux命令练习
1.开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 2.使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 3. 使用命令退出虚拟终端2上登录的用户 ...
- win10 安装mysql 8.0.12
按照CSDN以及博客园的其他教程, 之前安装过几次都有或多或少的bug 主要安装步骤: 1.配置my.ini文件 2.管理员进入终端, 切换到.../bin目录下进行操作 3.指令操作: 1) mys ...
- 多线程之 Runnable接口
一.多线程实现的第二种方式 1.定义类,实现Runnable接口 2.重写接口中的run方法,要在run方法中定义线程要执行的任务 public class MyRunnableImpl implem ...
- redis应用--HyperLogLog
如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现? 如果统计 PV 那非常好办,给每个网页一个独立的 Redis 计数器 ...
- JAVA第2课
JAVA 第二课 Eclipse 在加载JAVA环境出错的时候处理办法: 项目-属性-Java build path-add library -JRE system library-OK ...
- generator mybatis逆向工程
mybatis逆向工程:根据数据库中的表在项目中生成对应的 实体类,dao接口与mapper.xml映射文件 在eclipse中,以插件的形式的存在,把设置好的配置文件,直接通过eclipse中的插件 ...
- Java第一个程序之HelloWorld
代码实现如下图: 讲解: 1.主方法入口main():public static void main(string[] args){}是Java应用程序执行的入口点,必须提供该方法才能被执行: 2.打 ...