利用指针查表,请帮忙分析一下程序

目的:DB块中有30个数据,如果某一个等于100,则对m2052.0置1。程序仿真后(将30个数据中的某一个赋值100),但发现m2052.1始终为0。程序如下:

      OPN   DB     7                    //打开DB 7
      L     P#0.0                       //初始读指针
      LAR1  
      L     30                          //共30个字
B001: T     MB  2500                    //计数值送入MB 2500
      L     DBW [AR1,P#0.0]             //按读指针指示的地址读数据
      T     #lw0                        //赋值给临时变量LW0
      A(                                //和100比较
      L     #lw0
      L     100
      ==I   
      )     
      =     M   2052.0
      JC    B002                        //如果相等,则跳出循环
      +AR1  P#2.0                       //如果不相等,读指针指向下一数据地址
      L     MB  2500                    //取循环计数值
      LOOP  B001                        //循环计数值如为0则结束循环       
B002: NOP   0

最佳答案

1、发现m2052.1始终为0?
当然m2052.1始终为0。程序中应该是M   2052.0。
2、注意你的CPU型号,不同型号的CPU的M存储器的大小也不同,例如CPU312等M存储器的只能为256个字节,M   2052.0显然超出范围了。
3、直观看程序没有问题。

提问者对于答案的评价:
原来是仿真时用成了M2502.0,输错了.呵呵,谢谢。

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

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

相关推荐