怎么读取300PLC里DB块数值?
刘玉蓉
发布于2014-10-23 17:58
4
0
标签:
现在有一个DB1,我做了个指针变量MD0,我想逐一取值。我这样写的STL,麻烦帮我看看。
L 0
T MD0
OPN DB1
L DBD[MD0]
T DB2.DBD0
L MD0
+32
T MD0
L DBD[MD0]
T DB2.DBD4
L MD0
L 32
+D
T MD0
L DBD[MD0]
T DB2.DBD8
L MD0
* 32
T MD0
L DBD[MD0]
T DB2.DBD12
我想请教下大家,我的DB2中的数据和DB1是怎么对应的?
佳答案
应用指针来完成,非常简洁。
典型的循环语句编程:
1. 将DB1的DW0-DW99,共100个字分别送入DB2的100个字的中
在OB1:
L P#0.0 //初始读指针
LAR1
L P#0.0 //初始写指针
LAR2
L 100 // 100个字的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
OPN DB 1 //打开DB 1
L DBW [AR1,P#0.0] //按读指针指示的地址读数据
OPN DB 2 //打开DB 2
T DBW [AR2,P#0.0] //按写指针指示的地址写数据
+AR1 P#2.0 //读指针指向下一数据地址
+AR2 P#2.0 //写指针指向下一数据地址
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
上述程序是将DB1的100个字分别对应送入DB2的100个字的中。程序稍加修改,即可实现将DB1100个字送入DB2任意地址开始的100个字的中,如:
L P#0.0 //初始读指针,DB1从0开始读
LAR1
L P#10.0 //初始写指针,DB2从10开始写。
LAR2