S7-1200循环中断的问题

按手册说明,当设置SET_CINT指令中的CYCLE参数为0时,则该循环中断事件被禁用,并且不会执行中断OB。但禁止后,再次启用循环中断事件,会以前一次开启循环中断的时间为起始时间计时,然后进入中断,而不是最后一次开启循环中断的时间为起始时间,这不正常吧?

问题补充:
是不是我理解错误了?
我是在一个硬件中断事件OB中,首先关闭循环中断,以处理其他问题,最后退出该硬件中断OB之前再次打开循环中断。
是不是因为对于PLC的操作系统而言,在进入硬件中断OB后的关闭循环中断命令只有在退出硬件中断OB后才能生效,但在硬件中断OB中用QRY_CINT查询循环中断是未激活状态的,STATUS=0X10,不明白这是为什么。
另外,只要在项目程序块中有循环中断OB存在,PLC重启后,必然会自动激活该循环中断事件,即使在启动OB中禁止循环中断也禁止不了,这是什么原因呢?

最佳答案

S7-1200的循环中断和硬件中断属于一个优先组,不能互相中断,只能排队依次执行,也就是说你理解的"在进入硬件中断OB后的关闭循环中断命令只有在退出硬件中断OB后才能生效"是正确的。

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月6日 下午7:00
下一篇 2017年11月6日 下午7:00

相关推荐