关于置位和复位指令 用PLCSIM仿真的问题

最近学习置位和复位指令,程序如附图所示。图片仿真1中结果我可以理解,因为复位M3.0指令在最后,复位指令之前的线圈M4.0、Q0.0可以为1;图片仿真2中结果理解不了呢,为什么把复位M3.0移到线圈M4.0和Q0.0之前,结果跟仿真1中结果一样呢???
我了解PLC扫描循环原理:从左至右,从上至下;每个扫描周期内,输入映像区和输出映像区根据程序的逻辑运算结果RLO实时刷新,但是最终给输出模块的输出刷新要在每个扫描周期最后。图片仿真2中复位M3.0指令执行后,M3.0立即由1变为0,能流断开,下面的M4.0及Q0.0应该为0啊!!!大神帮忙!!

图片说明:

关于置位和复位指令  用PLCSIM仿真的问题    关于置位和复位指令  用PLCSIM仿真的问题   

最佳答案

1、程序从上到下,从左至右扫描执行。扫描执行完一次后又从程序的最开始扫描执行。
2、仿真时 M2.0是接通的,所在在每一个扫描周期时,都会在程序段1 置位M3.0;
3、那么程序段3,在执行时,能流的入口处 M3.0 在每一个扫描都是接通的。
再一行一行的扫描执行,以左边的图程序段 2 为例,过程如下:
A)先把 M3.0 状态压栈;
B)第一行:取栈顶,取出来是 M3.0 压栈那一时刻的值,能流接通,复位 M3.0,但这个值并不进栈;即栈项的 M3.0 的值还为 1;
C)第二行:取栈顶,取出来是 M3.0 压栈那一时刻的值,能流接通,置位 M3.1;
D)第三行:取栈顶,取出来是 M3.0 压栈那一时刻的值,能流接通,M4.0 线圈导通;
E)第三行:取栈顶,取出来是 M3.0 压栈那一时刻的值,能流接通,Q0.0 线圈导通;
F)栈清空。
此时 M3.0 的状态位是不导通的。但是到了下一个扫描周期时,在程序段1 它又会被接通。
如果把这段程序转成 STL 语句表,这个过程看得就更清楚。
同样的方法分析右图,两个程序的执行结果是一样的。
分析这样的分支程序,能流从左边总入口来,只能向右流,不能回流,那它有四条路径流向最右边,用这个方法更直观些。

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc291087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐