当前位置: 主页 > PLC控制

为什么没有满足比较条件跳转jc的rlo也为1

编制一个数据块数值比较程序,db2中为字符型的20个变量,这20个变量中只要有与mw104相同的就把qo.1输出高电平。但是无法实现循环,而且即使数值不相等jcb1的rlo也为1,请问问题出在哪里?谢谢。
l0
tmw200
tmd300
oPNdb2
l20
a1:tmw200
ldbw[md300]
lmw104
==i
jcb1
lmd300
lP#2.0
+d
tmd300
lmw200
loOPa1
b1:=q0.1

最佳答案

l0
tmw200
tmd300
opndb2
l20
a1:tmw200
ldbw[md300]
lmw104
==i
jcbb1//这里要改成jcb,这样才能把rlo保存到br
lmd300
lp#2.0
+d
tmd300
lmw200
loopa1
b1:abr//这里要先读br,这里的br和跳转时的rlo是一致的
=q0.1
你的程序不是没有循环,而是没有正确的使用状态字中的rlo和br,你可以监控一下rlo,在执行==i时如果不相等,rlo为0,在执行跳转时rlo就为1了,然后后面的程序都没有影响rlo的语句,你的q0.1又是读的rlo的状态,所以最后q0.1始终为1。我解释得可能不是很清楚,建议楼主看看论坛里关于状态字的精华帖。

图片说明:

7b3073feaac7f88fb16a79d3790cb175635f029743e193FC9482dd173356f7bc

提问者对于答案的评价:
非常感谢!!还有楼下的也很感谢!2种方法都可以,学习了!

  • 关注微信

猜你喜欢

微信公众号