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