三菱FX3系列PLC功能指令应用全解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 中断服务

2.4.1 中断指令EI,DI,IRET

1.指令格式

FX系列PLC关于中断的指令有三个。

FNC 04:EI     中断允许指令    程序步:1

FNC 05:DI     中断禁止指令    程序步:1

FNC 03:IRET    中断返回指令    程序步:1

EI,DI,IRET指令可用软元件如表2-8所示。

表2-8 EI,DI,IRET指令可用软元件

1)中断允许指令EI

指令梯形图如图2-32所示。

解读:执行中断允许指令EI后,其后的程序到出现中断禁止指令DI之间,均允许执行中断服务程序。EI又称开中断指令。三菱FX系列PLC开机后为中断禁止状态,因此,如果希望能进行中断处理,必须要在程序中首先编制中断允许指令。

2)中断禁止指令DI

指令梯形图如图2-33所示。

图2-32 EI指令梯形图

图2-33 DI指令梯形图

解读:执行EI指令后,如果不希望在某些程序段进行中断处理,则在该程序段前编制中断禁止指令DI。执行中断禁止指令DI后,其后的程序到出现EI指令之间,均不能进行中断处理。DI指令又称关中断指令。

3)中断返回指令IRET

指令梯形图如图2-34所示。

图2-34 IRET指令梯形图

解读:在中断服务程序中,执行到中断返回指令IRET,表示中断服务程序执行结束,无条件返回到主程序继续往下执行。

EI,DI和IRET指令在程序中的位置与作用如图2-35所示。

EI和DI指令可以在程序中多次使用。凡是在指令EI~DI之间或指令EI~FEND之间的为中断允许,凡是在指令DI~EI之间或是指令DI~FEND之间的为中断禁止。

如果PLC只需要对某些特定的中断源进行禁止中断,也可以利用特殊辅助继电器置ON给予中断禁止。详见下述。

图2-35 EI,DI,IERT指令位置说明图

2.关于中断指针I

FX系列PLC中断有三种中断源:外部输入中断、内部定时器中断和高速计数器中断。这三种中断的指针是不一样的,如表2-9所示。关于它们的详细说明在下面分别介绍三种中断时给予讲解。

表2-9 FX系列PLC三种中断指针

中断指令表示中断服务程序的入口地址,因此,它只能出现在主程序结束指令FEND之后,中断服务程序也和子程序一样必须位于副程序区。

中断指针不能在程序中重复使用。

3.关于中断和中断优先处理

1)中断允许

PLC只能在中断允许的状态下才能进行中断处理。

2)中断服务

在中断允许的状态下,PLC一旦接到中断请求必须立即停止主程序或副程序的执行,转移到相应中断服务程序的处理中,直到处理完毕才返回原来的程序继续执行。

3)中断优先

PLC在任意时刻只能执行一个中断服务程序。当没有多个中断请求同时发生时,PLC按照先来先中断的时间优先原则进行中断处理。

当有多个中断请求时,三菱FX系列PLC会按照中断指针的不同进行划分优先级处理,其原则是指针的编号越小,优先级越高,例如,I001优先于I501,I501优先于I610等。

4)中断嵌套

三菱FX系列PLC的中断优先仅限于多个中断请求时的优先处理,但当PLC正在执行某一个中断服务程序时,如果又发生中断请求,PLC将不管这个中断请求是否优先于正在执行的中断服务,一概不予以处理。只有该中断服务结束后,才能进行下一个中断处理。也就是说,三菱FX系列PLC不接受中断嵌套处理。但是如果正在执行的中断服务程序中编写了EI,DI指令,则可以且仅可以执行一次中断嵌套处理。

4.中断处理的使用注意

1)中断源的禁止重复使用

三菱FX系列PLC的外部输入中断和高速计数器中断都使用输入口X000~X005,因此,当输入口X000~X005用于高速计数器、SPD、ZRN、DSZR等指令和普通开关量输入时,不能再重复使用它们进行外部中断输入。

2)中断程序中定时器的使用

在中断服务程序中如需要应用定时器,请使用子程序中定时器T192~T199。使用普通的定时器不能执行计时功能。如果使用了1ms计算型定时器T246~T249,当它达到设定值后,在最初执行线圈指令处输出触点动作。

3)中断程序中软元件

在中断程序中被驱动输出置ON的软元件,中断程序结束后仍然保持置ON。在中断程序中对定时器、计数器执行RST指令后,定时器计数器的复位状态也保持不变。

4)关于FROM/TO指令执行过程中的中断

FROM/TO指令为PLC的特殊模块读/写指令。该指令执行过程中,能否进行中断服务与特殊继电器M8028的状态有关。

(1)M8028=OFF:在FROM/TO指令执行中自动处于中断禁止状态,不执行外部输入中断和定时中断。如果在此期间,发生中断请求,则在指令执行后会立即执行中断服务,这时,FROM/TO指令可以在中断服务中使用。

(2)M8028=ON:在FROM/TO指令执行过程中自动处于中断允许状态。一旦有中断请求,马上执行中断服务,这时,不能在中断服务程序中使用FROM/TO指令。