例如从DB100拷贝的到DB200。每次拷贝的UDT数据长度为40bytes. SFC20使用太麻烦,因为有数百个UDT。尝试使用Loop命令,遇到一个问题是不能同时打开2个共享数据块,只能一个共享数据块和一个背景数据块。请教各位大侠!
问题补充:
你的回答对我有些启发。谢谢!
最佳答案
1、从DB100拷贝的到DB200,拷贝的UDT数据长度为40bytes. 使用Loop命令:
L P#0.0 //初始读指针
LAR1
L P#0.0 //初始写指针
LAR2
L 40 // 40个字节的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
L DB100.DBB [AR1,P#0.0] //按读指针指示的地址读数据
T DB200.DBB [AR2,P#0.0] //按写指针指示的地址写数据
+AR1 P#1.0 //读指针指向下一数据地址
+AR2 P#1.0 //写指针指向下一数据地址
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
2、不能同时打开2个共享数据块?
在程序中可以这样编程:例如:
A DB100.DBX0.0
A DB200.DBX0.0
= DB300.DBX0.0
上述数据块必须在PLC中已建立。
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc248930.html