无条件跳转指令(JU)跳转方式出现相左情况

今天在自学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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月1日 下午9:14
下一篇 2017年12月1日 下午9:15

相关推荐