西门子 PLC 执行过程

来源:百度知道 编辑:UC知道 时间:2024/09/25 16:37:27
最近刚接触西门子的PLC 在写的时候会碰到两行一样的程序,写的顺序不一样,结果就不一样的情况,比如下边这样的:
I0.0 Q0.0 Q0.0
||-----|P|------|\|-----(SET)

I0.0 Q0.0 Q0.0
||-----|P|------| |-----(RESET)

目的是按一下通,再按一下断.
其实想知道,在PLC内,这样的指令是怎么样被执行的.是执行完一行就把新的状态刷新,还是等到所有指令都执行完,再把所有点的状态再刷新的.
四楼说的部分对,不能正确执行。但并不是只输出第二行的结果,而是保持原来的状态。这样的设计思路在三菱PLC里到是可以的。因为三菱检测每一个控制点的沿状态,而西门子只检测支路的沿状态。还有一点,我通过试验发现,西门子的PLC并不是执行完所有指令再刷新各点的状态的。而是执行完一个网络就把相关点的状态刷新。我这是通过S7-200 CPU226得出的结论。可能不对。有兴趣的可以讨论下。我的邮箱kfzxn1986@gmail.com

这是达不到目的的

只输出第二行的结果

q0.0 开不了

PLC是按照从上到下,从左到右的顺序先读取所有程序,然后扫描周期过后会执行相关的命令或者是保持某种状态,他刚读完一句是不会执行的,必须要全部读完然后执行,然后再次扫描,不过这个时间特别短,明白了么。

从左到右从上往下扫描、扫描时间很短
扫描到你程序的所有点状态送入缓存区,然后再执行
你这个程序应该跟顺序没关系

PLc是从左到右从上往下扫描进行,所以你上图中把RESET放到SET前面,你的控制目的就能达到了,如你图中所示顺序,可能导致Q0.0不动作