●欧姆龙PLC的特殊指令有:
▲ 中断控制指令:INT(089)查阅【1862023】、@INT(089)查阅【1872023】。
▲ PID控制指令:PID(088)查阅【1882023】。
▲ 显示、刷新指令:MSG(046)查阅【1892023】、@ MSG(046)查阅【1902023】;
IORF(097)查阅【1912023】;
FCS(088)查阅【1922023】、@FCS(088)查阅【1932023】
▲ 通信指令:RXD(047)查阅【1942023】、@RXD(047)查阅【1952023】;
TXD(048)查阅【1962023】、@TXD(048)查阅【1972023】;
STUP(088)查阅【1982023】、@ STUP(088)查阅【1992023】。
下面解释 指令:INT(089)— 执行中断控制功能指令
一.指令的梯形图符号:

二.指令的梯形图符号中操作数数据区:
1. 操作数数据区中的C1:控制码 — #(000 ~ 004,100或200)。
2. 操作数数据区中的000:无功能 — 000 。
3. 操作数数据区中的C2:控制数据 — IR、SR、AR、DM、HR、TIM、CNT、LR、# 。
三.指令的功能:
该指令应用于控制中端。
四.指令的人详细说明:
1. 当C1 = 002时,DM6144~DM 6655不能用作C2。
2. 当执行条件为OFF时,INT(089)/ @ INT(089)停止。
3. 当执行条件为ON时,INT(089)/ @ INT(089)用于控制中断,且按照C1的值执行如下的七个功能之一。
(1)C1:000;功能:屏蔽或允许中断输入;
(2)C1:001;功能:清除中断输入;
(3)C1:002;功能:读当前中断输入的屏蔽状态;
(4)C1:003;功能:重新启动递减计数器和允许中断;
(5)C1:004;功能:重新启动递增计数器和允许中断;
(6)C1:100;功能:屏蔽所有中断;
(7)C1:200;功能:允许所有中断;
▷ 注明1:C1 = 000 — 屏蔽和允许中断输入:
这项功用于允许和屏蔽00003~00006中断输入。屏蔽的输入被记录,但停止。当一个输入被屏蔽时,它的中断程序在该位允许中断时立即执行(除非事先执行带C1 = 001的INT (089)指令清除中断输入记录)。把C2中对应位设定为0或1来屏蔽或允许中断输入。第00位~第03位对应于00003~00006。第04位~第15位应设为0,见例表【1862023】—1所示。
例表【1862023】-1 字C2位表

第0位 :中断输入00003(0:允许,1:屏蔽);
第1位 :中断输入00004(0:允许,1:屏蔽);
第2位 :中断输入00005(0:允许,1:屏蔽);
第3位:中断输入00006(0:允许,1:屏蔽)。
在PLC操作起始时所有的中断被屏蔽。因此,为了使用,必须允许中断输入。
▷注明2:C1 = 001 — 清除中断输入:
这项功能用来清除00003~00006中断输入。由于中断输入被记录,除非记录先被清除,屏蔽的中断在屏蔽撤消时会立即响应。把C2的对应位设定为1来清除I/O中断输入。第00位~第03位对应于00003~00006中断输入。第04位~第15位应设为0,见例表【1862023】—2所示。
例表【1862023】-2 字C2位表

第0位:中断输入00003(0:不清除,1:清除);
第1位:中断输入00004(0:不清除,1:清除);
第2位:中断输入00005(0:不清除,1:清除);
第3位:中断输入00006(0:不清除,1:清除)。
▷注明3:C1 = 002 — 读当前屏蔽状态:
这项功能读中断输入00003~00006的当前屏蔽状态,并把状态信息写入字C2中。如果输入被屏蔽,对应位将置ON,见例表【1862023】—3所示。(第00位~第03位对应于00003~00006)。
例表【1862023】-3 字C2位表

第0位:中断输入00003(0:允许,1:屏蔽);
第1位:中断输入00004(0:允许,1:屏蔽);
第2位:中断输入00005(0:允许,1:屏蔽);
第3位:中断输入00006(0:允许,1:屏蔽)。
▷注明4:C1 = 003或C1 = 004 — 重新启动计数器和允许中断:
这项功能被用来通过刷新计数器SV(在SR240~SR243中)和允许中断输入(00003 ~00006)来重新启动中断输入(计数器模式)。
设定C1 = 3来重新启动递减计数器或C1 = 4来重新启动递增计数器。把C2中对应位设定为0来刷新输入的计数器SV和允许中断,见例表【1862023】—4所示。(第00位~第03位对应于00003~00006)。
例表【1862023】-4 字C2位表

第0位:中断输入00003计数器;
第1位:中断输入00004计数器;
第2位:中断输入00005计数器;
第3位:中断输入00006计数器。
当执行带C1 = 003或C1 = 004的INT(089)指令时,使用微分变量@INT(89)或一个仅ON一个周期的输入条件。如果INT(089)在计数器运行期间执行,PV将被重新设定为SV,因此,如果每个周期中执行INT(89),中断将永远不会产生。
当执行带C1 = 003或C1 = 004的INT(089),且SV的字包含一个非0的SV(0001~FFFF)时,对应计数器将开始进行计数操作(递增或递减)且对应的中断将在计数器模式下允许中断。
当计数达SV 时,一个中断将产生且PV将重返SV,从而,在计数器被终止运行前,中断将重复产生。写0000到一个计数器的SV字(SR240~SR243)且执行INT(089)刷新SV,将终止计数器运行并禁止对应的中断。为了重新启动计数器,将非0的SV写到它的SV字,且执行INT(089)。运行开始时,SV字被设定为0000,因此,计数器的SV必须通过梯形图程序写入它的SV字。
当一个中断已经允许(未屏蔽),SV不能仅通过写入一个新值给SV字来刷新。刷新SV应通过执行带C1 = 003(C1 = 004为递增计数器)的INT(089)指令。计数器模式中断可以通过执行带C1 = 000和C2中对应位设定为1的INT(089)来屏蔽,但当C2中的对应位设定为0时,一个输入将在中断输入模式而不是计数器模式下操作。
▷注明5:C1 = 100或C1 = 200 — 屏蔽和允许所有中断:
所有中断,包括输入中断,时间间隔计时器中断和高速计数器中断,都能通过执行带C1 = 100或C1 = 200的INT(089)来屏蔽或允许作为一组的中断。屏蔽的输入被记录,但停止。全局屏蔽是除各单独类型中断之外的屏蔽。即,清除所有中断并不清除单独类型中断,只是在INT(089)来把它们作为一个群体来屏蔽执行之前,把它们存储到一个存在的屏蔽条件中。
除单独屏幕中断类型外的中断,成为全局屏幕。因此,清除所有中断并不能清除单独屏蔽中断,在INT(089)指令把它们作为一个群体来屏蔽执行之前,只要把它们存储到一个存在的屏蔽条件中。除非有必要临时屏蔽所有的中断,切勿用INT(089)来屏蔽中断。通常情况下成对使用INT(089)指令,使用第一条INT(089)指令来屏蔽所有的中断,第二条用来允许
所有的中断。INT(089)不能在一个中断程序中屏蔽或允许所有中断。
▷注明6:C1 = 100 — 屏蔽中断:
使用带C1 = 100的INT(089)指令来屏蔽所有的中断。如果一个中断在中断屏蔽期间产生,中断处理将停止但此输入、时间间隔计数器和高速计数器中断中断被记录。一旦中断允许,这些中断立即响应,见例图【1862023】—1所示。
▷注明7:C1 = 200)— 允许中断:
如图【1862023】—2所示,使用了带C1 = 200的INT(089)指令来允许中断:见例图【1862023】—2所示。

例图【1862023】-1 屏蔽中断 例图【1862023】-2 允许中断
ERROR:
(1)数据区域超出;
(2)间接寻址字DM不存在;(字*DM中的内容非BCD码,DM区域已经超出了范围)。
(3)C1不是000 ~ 004、100或200;
(4)C2不是0000 ~ 000F;
(5)当中断程序被执行时,执行带C1 = 100或C1 = 200的INT(089)指令;
(6)当所有输入已被屏蔽时,执行带C1 = 100的INT(089)指令;
(7)当所有的输入没被允许时,C1 = 200。


