跳转指令里面的脉冲信号的响应问题
跳转指令CJ的功能是跳过一些程序去执行另外的程序,我们都知道上升沿脉冲指令是从低电平到高电平时动作,那么当跳转指令条件不满足时会执行满足条件时被跳过的程序段,(执行被跳过的程序)当程序瞬间执行时里面有上升沿脉冲指令时程序该如何响应?
下面我用GX-WORKS模拟一下:
1. 跳转指令条件满足
2. 跳转指令条件不满足
分析跳转指令满足时的情况:
跳转指令满足时,PLC将跳转到P0表识的地方,而按照程序从上到下的扫描顺序已及线圈全局相通的原理,可以发现M0一通电就是闭合的,在被跳过的程序段里面M0是驱动只在上升沿接通的M10线圈,但是经过跳转指令的跳转后,M10并没有接通过,在P0表识的后面我们可以加一条M10为常开触点然后SET输出线圈Y0,实验结果是Y0并没有被置1。
分析跳转指令不满足时的情况:
当X1按钮按下时接通了M1线圈并自锁住了,这样子就打破了跳转指令的接通条件,那么将按从上到下、从左到右的顺序执行程序,此时会发现D0数据寄存器里面被移入了数字1,这说明M10触点被接通过。我们再来捋一遍,M0是一直被接通的,PLC一通电就接通了M0,但是PLS指令下的M10没有动作,原因是跳转指令跳过了这段程序,而在跳转指令不满足时,M10瞬间获取了一个上升沿脉冲信号闭合,但是M0是一直接通的,那么我们可以这么认为,被跳转程序里面的触点都是原状(就是你程序里面最开始没有运行下的状态,比如常开或者常闭),按照这个原理,我们再来看M10被接通的瞬间,当跳转指令条件不满足,程序就全部执行,M0线圈在最前面就被接通,M0常开触点就闭合,来到被跳转过的程序里面,M0常开触点被接通的这个信号才被传递进来,此时上升沿信号导通M10。
结论:被跳转过的程序里面的触点不受外界影响,只有当跳转指令失效时才会将触点信息采集进来。
上升沿和下降沿的时序问题
结论:上升沿触发条件满足时,驱动线圈,使其线圈的常开触点闭合,上升沿脉冲满足时才执行(从0到1),而下降沿是从1到0时才触发。当上升沿和下降沿同时接通时,在第一个扫描周期将会执行上升沿触发的信号,而在第二个扫描周期时才执行下降沿触发的信息。
下面时GX-WORKS2模拟的结果: