分析楼主程序:
在I0.3=1的第一个扫描周期里,先执行第一条: W#16#FE-->QW2,使QB2=0000_0000、QB3=1111_1110。再执行第二条:W#16#1-->QW1,使QB1=0000_0000、QB2=000_0001。其结果使 QW2=W#16#01FE=0000_0001 _ 1111_1110。再执行第三条:I0.3=1的前沿,将QW2左移一位,使QW2=W#16#03FC=0000_0011 _ 1111_1100
如I0.3=1的时间间隔大于2个以上的扫描周期,则在I0.3=1的第二个及以后的各扫描周期里,只执行第一、第二条指令,而不执行第三条指令,故使QW2恒=W#16#01FE=0000_0001 _ 1111_1110。
当I0.3由1变为0,程序的1、2、3条指令均不使能,其QW2仍=W#16#01FE=0000_0001 _ 1111_1110。
如果程序的第1、第2二条也用前沿触发MOV_W 指令,该程序只在I0.3=1的前沿出现的扫描周期里执行1、2、3条指令,其它扫描周期1、2、3条程序均不使能,故使其运行结果QW2 ≡ W#16#03FC=0000_0011 _ 1111_1100
就是说这里的左移指令只在I0.3=1的前沿出现的扫描周期里执行一次,从宏观上看,其QW2输出状态是不变的。