三菱PLC中断问题
外部内部都可以中断,分为两大类:一个是用户程序中断,就如你说的那些,以及外部信号编程金钟的中断。一个是系统自身的中断,像硬件故障、通讯链接不畅、程序死循环等引起的中断。
情况就像某个程序段不调用了一样,没什么好看的。只是中断一旦形成,程序就会直接跳转到中断程序里去执行中断程序里的程序,中断程序执行完了,如果中断信号还有的话,PLC就继续执行中断,直到中断信号没有或某些可以被强制取消。在很多中断程序里可以不写任何程序,如通讯和非严重性硬件检测丢失等。这样就可以减少PLC中断恢复时间。或避免不必要的正常程序长时间终止。中断程序开始,就不会执行其他用户程序,根据用户程序的情况,如中断程序不涉及复位,某些输出是可能会保持的。中断有优先级的区分,每种PLC分级方法不同,但大部分是中断号数大的优先于数据号数小的。
EI是中断开放指令,DI是中断禁止指令。这两条指令比较简单,PLC执行到EI指令就开放中断,执行到DI指令就禁止中断。这是因为PLC中断控制电路上有一个“软开关”,这个“软开关”在PLC上电初始化时是断开的,EI的作用就是接通这个“软开关”,DI的作用则是断开这个“软开关”。
EI、DI控制的“软开关”是中断源的总开关,它的下面还有一些“软“的分开关,就是~。这些“软“的分开关可以在程序中置为ON或OFF,分别控制不同的中断源,以/2NC为例,其中:
~分别控制输入中断源-,输入中断用指针编号~;
~分别控制三个定时器中断源,定时器中断用指针编号、、;
控制6个高速计数器中断源,高速计数器中断用指针编号。
这样,要想一个中断源触发中断,必须满足2个条件:1)用EI开放中断,2)使该中断源的”软“分开关为ON。
中断源触发中断后,PLC就跳转到其中断用指针编号指定的子程序执行。IRET是中断返回指令,它是中断处理程序的结束指令,其作用是使PLC返回到被中断时的下一条指令继续执行。
若没有中断处理子程序,虽然触发了中断,但没有处理任何事情。