有没有从有顺序的各个UDT中,每个UDT取出一位放到一个字中的程序或指令
最佳答案
假设是udt1,里面包含10个字,要的是他的第0位,然后在db1里调用他5次,db1里就成了dbx0.0-dbx9.9是第一个udt,dbx10.0-dbx19.9是第二个udt,总共5组,最终要放在db1.dbx100.0开始以此类推,接下来编程
OPN DB 1 //打开bd1
LAR1 P#0.0 //把db1.dbx0.0放在地址寄存器1
LAR2 P#100.0 //把db1.dbx100.0放在地址寄存器2
L 5 //总共要循环5次
XH: T MW0
A DBX[AR1,P#0.0] //取出位(db1.dbx0.0)
= DBW[AR2,P#0.0] //放在db1.dbx100.0里
+AR1 P#10.0 //每次都给AR1偏移10.0
+AR2 P#0.1 //每次都给AR2偏移0.1
L MW0
LOOP XH //LOOP的标准格式,每次都给mw0减1,直到0,也就是循环5次
这样,你在db1.dbw100或dbb100里就可以看到了,db1.dbx100.0里就是第一个udt1里的第0位,db1.dbx100.1就是第二个udt1里的第0位,以此类推
如可用,请采纳
提问者对于答案的评价:
根据1楼的兄弟所说我也写了一个,和你写的基本一致,并验证通过,非常感谢你的指导。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc191609.html