请教大侠帮我解读下这段程序

L     0
      T     MW     0
      LAR1  P#0.0
      L     50
next: T     LW     0
      A     I [AR1,P#0.0]
      JCN   a001
      L     MW     0
      +     1
      T     MW     0
a001: +AR1  P#0.1
      L     LW     0
      LOOP  next

最佳答案

这是判断I0.0---I6.1这50个变量中有几个是接通状态,MW  0就是几。
      L     0    //把0赋给累加器1
      T     MW     0  //把累加器1中的值赋给MW0,MW0中的值为0
      LAR1  P#0.0   //把指针地址P#0.0赋给AR1
      L     50           //循环次数指定为50
next: T     LW     0  //把循环次数保存在LW0中
      A     I [AR1,P#0.0]  //因为AR1=P#0.0,相当于I[P#0.0+P#0.0],即A  I0.0
      JCN   a001   //I0.0为0则跳转至a001处,为1则继续向下执行
      L     MW     0  //把 MW0中的值赋给累加器1
      +     1          //累加器1中数值加1后结果保存在累加器1中
      T     MW     0  //把累加器1中的值赋给MW0,即MW0现在数据为1
a001: +AR1  P#0.1  //AR1与P#0.1加,结果保存在AR1中,AR1=P#0.0+P#0.1=P#0.1
      L     LW     0   //把LW0中数值(50)减1后保存在LW0中,此时数值变为49
      LOOP  next   //循环语句,跳转回next处再次执行以上操作
参见:S7-300和S7-400寻址
http://www.ad.siemens.com.cn/download/OnlineReading.aspx?DocId=1597
用于S7-300 和S7-400 的语句表(STL)编程
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1818&loginID=&srno=&sendtime=

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

专家置评

已阅,最佳答案正确。

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

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

相关推荐