如下做一个加法运算的指针程序,PLC一运行就STOP位置,请大家帮我看看

首先声明:我在程序中新建了DB1,DB2,DB3的全局数据块,里面分别定义了100个INT类型的变量并对他们一一赋了初值。
如下:我想实现的是把DB1.DBW(0->20)的数值与DB2.DBW(0->20)相加并送到DB3.DBW(0->20)中,就编写如下程序,按理来说,这个间接寻址的索引也没有越界,不知问题出在哪里?

      L     0  
      T     MD     0  //把间接寻址的地址刚开始赋为零,表示从零索引号开始
      L     20  //循环次数为20次
      T     MB   100//存储循环次数的变量
M1:   OPN   DB     1     //先打开DB1并截入指针索引的变量至累加器1
      L     DBW [MD 0]

      OPN   DB     2 //打开DB2并截入指针索引的变量至累加器1

      L     DBW [MD 0]

      +I    

      OPN   DB     3//打开DB3并存入前面两个数相加的值
      T     DBW [MD 0]

      L     MD     0
      INC   1
      T     MD     0

      L     MB   100
      LOOP  M1

最佳答案

LAR1  P#0.0                       //指针赋零
      L     11                                
M1:   T     MB     0                    //写入循环次数   
      OPN   DB     1                    //打开DB1
      L     DBW [AR1,P#0.0]        //装载DB1的数据
      OPN   DB     2                    //打开DB2
      L     DBW [AR1,P#0.0]        //装载DB2的数据
      +I    
      OPN   DB     3                    //打开DB3
      T     DBW [AR1,P#0.0]        //将相加结果送入DB3
      +AR1  P#2.0                       //指针偏移2
      L     MB     0                       //写入循环次数   
      LOOP  M1
                       通过仿真运行能达到你的要求.

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc231055.html

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

相关推荐