三菱FX系列plc的中断事件包括输入中断、定时中断和高速计数器中断,发生中断事件时,CPU停止执行当前的工作,立即执行预先写好的相应的中断程序,这一过程不受PLC扫描工作方式的影响,因此使PLC能迅速响应中断事件。
1、用于中断的指针
用于中断的指针用来指明某一中断源的中断程序入口指针,执行到IRET(中断返回)指令时返回主程序。中断指针应在FEND指令之后使用。
输入中断用来接收特定的输入地址号的输入信号,图1给出了输入中断和定时器中断指针编号的意义,输入中断指针为1�0�,最高位X0~X5的元件号相对应。最低位为0时表示下降沿中断,反之为上升沿中断。例如中断指针1001之后的中断程序在输入信号X0的上升沿时执行。同一个输入中断源只能使用上升沿中断或下降沿中断,例如不能同时使用中断指针1000和1001。
图1 中断指针
FX2N和FX2NC系列有3点定时中断,中断指针为16口口~18口口,低两位是以MS为单位的定时时间。定时中断使PLC以指定的周期定时执行中断子程序,循环处理某些任务,处理时间不受PLC扫描周期的影响。
FX2N和FX2N系列有6点计数中断,中断指针为10口0(口=1~6。)计数器中断与HSCS(高速计数器比较置位)指令配合使用,根据高速计数器的计数当前值与计数设定值的关系来确定是否执行相应的中断服务程序。
2、与中断有关的指令
中断返回指令IRET、允许中断指令EI和禁止中断指令DI的应用指令编号分别为FNC03~FNC05,均无操作数,分别占用一个程序步。
图2 中断指令的使用
PLC通常处于禁止中断的状态,指令EI和DI之间的程序段为允许中断的区间,当程序执行到该区间时,如果中断源产生中断,CPU将停止执行当前的程序,转去执行相应的中断子程序,执行到中断子程序中的INET指令时,返回原断点,继续执行原来的程序。
中断程序从它唯一的中断指针开始,到第一条IRET指令结束。中断程序应放在FEND指令之后,IRET指令只能在中断程序中使用。特殊辅助继电器M805△为ON时(△=0~8),禁止执行相应扣断I△口口(口口是与中断有关的数字)。
M8059为ON时,关闭所有的计数器中断。
如果有多个中断信号依次发出,则优先级按发生的先后为序,发生越早的优先级越高。若同时发生多个中断信号,则中断指针号小的优先。
执行一个中断了程序时,其他中断被禁止,在中断子程序中编入EI和DI,可实现双重中断,只允许两级中断嵌套。如果中断信号在禁止中断区间出现,该中断信号被储存,并在EI指令之后影响应该中断。不需要关闭中断时,只使用EI指令,可以不使用DI指令。