今天在自学STL时发现一个问题。
AI0.0AI0.0
JUM001=Q0.0
M001:AI0.1JUM001
SQ0.1M001:AI0.1
AI0.2SQ0.1
RQ0.1AI0.2
RQ0.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断开了,所以不能执行到无条件跳转指令。而右侧的程序就是直接执行跳转指令,没有任何条件阻挡能流。
专家置评
已阅,最佳答案正确。