[西门子] 200SMART程序里的上升沿为什么不起作用

[复制链接]
查看257 | 回复0 | 2024-7-9 08:25:39 | 显示全部楼层 |阅读模式
>
上升沿或下降沿产生的原理

程序执行时,系统将上升沿或下降沿之前的条件结果先存储起来,在下一个扫描周期将当前上升沿或下降沿之前的条件结果与存储起来的上个扫描周期的结果进行对比。如果没有变化,上升沿和下降沿后面的指令都不会执行;如果沿之前的结果从0变为1,则执行上升沿后面的指令;如果沿之前的结果从1变为0,则执行下降沿后面的指令。
沿指令在第一个扫描周期

第1个扫描周期系统是无法获取之前的沿指令之前的结果,也就是说结果是0还是1是未知的。只有第1个扫描周期先将结果存储起来,有了这个作为参考,第2个扫描周期才能够做上升沿和下降沿的判断。以此类推,第3个扫描周期跟第2个扫描周期的结果作比较,第4个扫描周期跟第3个扫描周期的结果做比较。。。。。。

下面的程序执行结果就可以验证第1个扫描周期,沿指令是无效的(不论是上升沿还是下降沿)

思考

分析:
  • 断电重启后
  • 下载数据块后
  • 从STOP切换到RUN
三种状态下M0.1和V0.1的值

利用好特殊寄存器SM0.1

在第一个扫描周期,CPU 将该位设置为 TRUE,此后将其设置为 FALSE。该位的一个用途可以是调用初始化子例程,也可以利用该位,以便沿指令在第二个扫描周期能起作用。

看完上面的介绍,有的时候程序的执行结果跟你希望的不同,那我们最好能从首个扫描周期开始,从上到下,从左到右分析,分析两个扫描周期后相信你已经有答案了。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则