今天在自学STL时发现一个问题。
A I0.0 A I0.0
JU M001 = Q0.0
M001: A I0.1 JU M001
S Q0.1 M001 : A I0.1
A I0.2 S Q0.1
R Q0.1 A I0.2
R Q0.1
仿真时两段程序执行情况不同,我故意做出的左边程序。当左边程序I0.0不为1时,I0.1不起作用也就是说没有执行跳转,但通过仿真器对Q0.0置位后,无论I0.0为何种状态,I0.2为1时却执行了对Q0.0的复位。而右段程序无论I0.0为何种状态,I0.1均起作用,说明完好的执行了跳转。I0.2为1时执行对Q0.0的复位。S7说明里指出“(JU 无条件跳转)中断线性程序扫描,并跳转到一个跳转目标,与状态字的内容无关”。那么我的问题就是,既然与状态字无关,那么为什么会出现左边这种很特殊的现象,使得JU成了JC一样功能?
最佳答案
虽然与状态字的内容无关,但是左侧的程序相当于把能流用I0.0断开了,所以不能执行到无条件跳转指令。而右侧的程序就是直接执行跳转指令,没有任何条件阻挡能流。
提问者对于答案的评价:
NICE!
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc218891.html