中断程序如果在程序输出刷新阶段发生的中断会怎样

如果一个程序输入采样,以及程序处理阶段都执行完了正好马上该进入输出刷新了,这个时候产生了中断,比如这个中断对一个数据寄存器进行赋值50,那下个扫描周期里这个新的赋值50会被刷新进去吗,还是要等下一个扫描周期再刷新。还有中断指令里面使用SM0.0,还是SM0.1如果使用SM0.0一直输出M0那,主程序里面的M0会怎么样。使用SM0.1直接输出M0会怎么样。

最佳答案

如果已经进入输出刷新,那么,无论中断如何,需要在下一个周期执行输出刷新。
如果中断中置位M0.0,那么,主程序或者子程序同时会做出逻辑相应。
SM0.1是一个比较特殊的标志位,只能是plc上电的第一个扫描周期为ON,自第二个周期后,一直为OFF。
plc的工作机制:
输入映像区刷新---通讯处理---逻辑运算---输出刷新,这样循环进行。
中断或者其它控制指令,只会在逻辑运算这块内容上有优先权,它不能够主导输出刷新,除非你采用立即输出线圈指令什么的。

提问者对于答案的评价:
如果我M0在中断程序里不是用S指令,就是单纯的用SM0.0然后输出M0那主程序会使是什么表现,是开始时候M0是断开的然后中断一次之后M0就一直接通了吗,就算中断程序执行完也不断开了。

最佳答案作者回复:
如果输出采用线圈,在中断离开之前的值为1,那么,离开后这个值仍然为1,因为中断一个周期有效后,程序不再做处理,也再无法给这个线圈赋值。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午2:42
下一篇 2021年7月5日 下午2:42

相关推荐

发表回复

登录后才能评论