s7-1200循环中断的问题
林慧玲
发布于2014-04-09 09:49
5
0
标签:
按手册说明,当设置set_cint指令中的cycle参数为0时,则该循环中断事件被禁用,并且不会执行中断ob。但禁止后,再次启用循环中断事件,会以前一次开启循环中断的时间为起始时间计时,然后进入中断,而不是后一次开启循环中断的时间为起始时间,这不正常吧?
问题补充:
是不是理解错误了?
是在一个硬件中断事件ob中,首先关闭循环中断,以处理其他问题,后退出该硬件中断ob之前再次打开循环中断。
是不是因为对于plc的操作系统而言,在进入硬件中断ob后的关闭循环中断命令只有在退出硬件中断ob后才能生效,但在硬件中断ob中用qry_cint查询循环中断是未激活状态的,status=0x10,不明白这是为什么。
另外,只要在项目程序块中有循环中断ob存在,plc重启后,必然会自动激活该循环中断事件,即使在启动ob中禁止循环中断也禁止不了,这是什么原因呢?
佳答案
s7-1200的循环中断和硬件中断属于一个优先组,不能互相中断,只能排队依次执行,也就是说理解的"在进入硬件中断ob后的关闭循环中断命令只有在退出硬件中断ob后才能生效"是正确的。