S7-300块传送

下诉程序中。初始的读写指针如果是要一个变量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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午2:51
下一篇 2018年12月1日

相关推荐