假设 Q0.0 开始为 0;
在第一个扫描周期,I0.0 上升沿触发 M0.0 = 1;
此时因为 Q0.0 = 0,所以,M0.1 = 0;
M0.0 置位 Q0.0 = 1;
M0.1 = 0 不能复位 Q0.0。所以 Q0.0 保持 = 1;
第一个扫描周期结束。M0.0 = 0;
第二个扫描周期开始,即使此时 I0.0 = 1,但上升沿脉冲只触发一次。所以不会再次触发。或者 I0.0 = 0,因此 M0.0 =0;
虽然 Q0.0 = 1,但 M0.0 = 0,所以 M0.1 = 0;
Q0.0 继续保持 = 1;
M0.1 =0,不能复位 Q0.0,保持 Q0.0 = 1;
继续执行 6 ~ 10,直到 I0.0 再次变为 1;
在某个扫描周期中,I0.0 第二个上升沿触发 M0.0 = 1;
因为 Q0.0 = 1,所以 M0.1 = 1;
M0.0 再次置位 Q0.0 = 1;
M0.1 复位 Q0.0 = 0;
扫描周期结束 M0.0 = 0;
再一个扫描周期开始,此时如果 I0.0 = 1,但上升沿脉冲只触发一次,所以不会再次触发。或者 I0.0 = 0,因此,M0.0 = 0;
因为 Q0.0 与 M0.0 都为 0,所以 M0.1 = 0;
Q0.0 保持 = 0;
M0.1=0 也不会再次复位 Q0.0。所以 Q0.0 保持 = 0;
继续执行 16 ~ 20,直到 I0.0 下一个上升沿;
跳转回第 1 步。
从上面的执行过程,我们可以看出,I0.0 来一个脉冲则置位 Q0.0,再来一个脉冲就会复位 Q0.0。相当于 Q0.0 的周期是 I0.0 周期的两倍。
补充一句:M0.0 置位 Q0.0 语句一定在 M0.1 复位 Q0.0 语句之前。否则,只要 I0.0 来了第一个脉冲以后,就永远复位不了 Q0.0 了!所以,这个是最关键的注意事项!
希望能够帮到你!