编制一个数据块数值比较的小程序,db2中为字符型的20个变量,这20个变量中只要有与mw104相同的就把qo.1输出高电平。但是无法实现循环,而且即使数值不相等jc b1的rlo也为1,请问问题出在哪里?谢谢。
l 0
t mw200
t md 300
opn db 2
l 20
a1: t mw 200
l dbw[md300]
l mw 104
==i
jc b1
l md 300
l p#2.0
+d
t md 300
l mw 200
loop a1
b1: = q0.1
最佳答案
l 0
t mw200
t md 300
opn db 2
l 20
a1: t mw 200
l dbw[md300]
l mw 104
==i
jcb b1 //这里要改成jcb,这样才能把rlo保存到br
l md 300
l p#2.0
+d
t md 300
l mw 200
loop a1
b1: a br //这里要先读br,这里的br和跳转时的rlo是一致的
= q 0.1
你的程序不是没有循环,而是没有正确的使用状态字中的rlo和br,你可以监控一下rlo,在执行==i时如果不相等,rlo为0,在执行跳转时rlo就为1了,然后后面的程序都没有影响rlo的语句,你的q0.1又是读的rlo的状态,所以最后q0.1始终为1。我解释得可能不是很清楚,建议楼主看看论坛里关于状态字的精华帖。
图片说明:
提问者对于答案的评价:
非常感谢!!还有楼下的也很感谢!2种方法都可以,学习了!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc225770.html