下诉程序中。初始的读写指针如果是要一个变量MW0.MW2的话应该怎么写??? 程序我试验了下,把P#0.0改成MW0的话,如果MW0为0,程序正常,如果MW0不为0的话程序运行就出错了。。
L P#0.0 //初始读指针
LAR1
L P#0.0 //初始写指针
LAR2
L 100 // 100个字的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
OPN DB 0 //打开DB0
L DBW [AR1,P#0.0] //按读指针指示的地址读数据
OPN DB 1 //打开DB1
T DBW [AR2,P#0.0] //按写指针指示的地址写数据
+AR1 P#2.0 //读指针指向下一数据地址
+AR2 P#2.0 //写指针指向下一数据地址
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
最佳答案
那是因为你MW0里保存的地址的格式不对。在用AR1寻址时,低3位是用来表示位地址的。所以你要改成如下(MW0的值可以为1,2,3...n)
L MW0
SLD 3
LAR1
L MW2
SLD 3
LAR2
或者
MW0 = P#0.0, P#1.0....P#n.0
L MW0
LAR1
L MW2
LAR2
提问者对于答案的评价:
其他说的也都是要注意的地方,感谢各位
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc235069.html