关于跳变信号,有几点需要说明的是:
首先你不能在第一个扫描周期使用。其次所谓接通一个周期的定义并不准确。
我们假设有一个关于跳变信号的堆栈,在首个扫描周期,先要将跳变信号状态存入堆栈,然后在执行到该语句是去比较堆栈的值,不同才触发相应条件。我不知道别的plc是不是,至少200的plc还会做一步,那就是把相应的改变值同时写入堆栈。也就是说,如果在同一个扫描周期内有两个访问相同语句的跳变信号,你可能获得不同的结果。这个很好实验,在一个for-next循环做一个跳变信号累加,就可以明确的看到,这个循环内(同一个扫描周期)跳变信号只能执行一次。
具体到你的这个程序,跟跳变信号关系已经不大了。你写的程序,就是全通,因为后两个network的触发条件是m0.1,只要m0.1接通了,跟跳变信号已经没有关系了。
你确定书上就是些语句吗?不是你自己理解错了?
如果真的是这样,我建议你看西门子s7-200系统手册。把你手里这本书仍掉。
除了M0.1接通一个扫描周期,M0.2和M0.3都能接通并自保。
你按I0.1立刻松手,m0.1和m0.2都通,m0.3不通,你按住i0.1不放,m0.1,m0.2,m0.3全通。
这个就是P脉冲信号的作用。
书上全文不知道如何,可能你理解错了,也可能书错了,反正你这个例子0.2 0.3是都会接通的。
尽信书不如无书,获得基础后批判地看。
M0.1在检测到上升沿的时候接通一个周期,在这个周期时,M0.1同时把M0.2和M0.3均接通。执行完后,程序到下一个周期。注意,此时M0.1不再接通,因为没有上升沿了。而此时M0.2和M0.3在上个周期已经接通,按照逻辑M0.1=0,M0.2=1,两者做或运算然后输出给M0.2,因此M0.2此后会一直接通。同理,M0.3在以后的周期也均接通。
结果是:M0.1接通一个周期后不再接通,而M0.2和M0.3在接通后会一直接通。