您现在的位置是:首页 > PLC技术 > PLC技术
CPM2A系列PLC的中断控制(INT(89))指令
来源:艾特贸易2017-06-05
简介图 7-59 为 INT(89) 指令梯形图。其中, C1 是中断控制码,其取值为 000~004 、 100 或 200 ; C2 是中断控制数据,其取值为 # 、 IR 、 SR 、 HR 、 AR 、 LR 、 TC 和 DM 。 图 7-59 INT(89) 指令梯形图
图7-59为INT(89)指令梯形图。其中,C1是中断控制码,其取值为000~004、100或200;C2是中断控制数据,其取值为#、IR、SR、HR、AR、LR、TC和DM。
图7-59 INT(89)指令梯形图
当执行条件为OFF时,INT( 89)不执行。当执行条件为ON时,INT( 89)用于控制中断,且按照C1的值执行如表7-3所示的七个功能之一。
表7-3 C1的值执行表
C1
INT(89)功能
000
屏蔽或允许中断输入
001
清除中断输入
002
读当前中断输入的屏蔽状态
003
重新启动递减计数器和允许中断
004*
重新启动递增计数器和允许中断
100
屏蔽所有中断
200
允许所有中断
(1)屏蔽和允许中断输入(C1=000)
这项功能用于允许和屏蔽00003~00006中断输入。屏蔽的输入被记录,但不执行。当一个输入被屏蔽时,它的中断程序在该位允许中断时立即执行(除非事先执行带C1=001的INT( 89)指令清除中断输入记录)。把C2中对应位设定为0或1来屏蔽或允许中断输入。第00~ 03位对应于00003~00006,第04~15位应设为0。
(2)清除中断输入(C1=001)
在PC操作起始时所有的中断被屏蔽,因此,为了使用,必须允许中断输入。这项功能用来清除00003~ 00006中断输入。由于中断输入被记录,除非记录先被清除,屏蔽的中断在屏蔽撤销时会立即响应。把C2的对应位设定为1来清除I/O中断输入。第00~03位对应于00003~ 00006中断输入。第04~15位应设为0。
(3)读当前屏蔽状态(C1=002)
这项功能读中断输入00003~ 00006的当前屏蔽状态,并把状态信息写入字C2中。如果输入被屏蔽,对应位将置ON(第00~ 03位对应于00003~ 00006)。
(4)重新启动计数器和允许中断(C1=003或C1= 004)
这项功能被用来通过刷新计数器SV(在SR 240~ SR 243中)和允许中断输入(00003~00006)来重新启动中断输入(计数器模式)。
设定C1 =3来重新启动递减计数器或C1 =4(仅适用于CPM2A/CPM2C PC)来重新启动递增计数器。把C2中对应位设定为0来刷新输入的计数器SV和允许中断(第00~ 03位对应于00003~ 00006)。
当执行带C1= 003或C1= 004的INT( 89)指令时,使用微分变量(@INT(89))或一个仅ON一个周期的输入条件。如果INT( 89)在计数器运行期间执行,PV将被重新设定为SV,因此,如果每个周期中执行INT( 89),中断将永远不会产生。
当执行带C1=003或C1=004的INT( 89),且SV的字包含一个非0的SV( 0001~FFFF)时,对应计数器将开始进行计数操作(递增或递减)且对应的中断将在计数器模式下允许中断。当计数达SV时,一个中断将产生且PV将重返SV,从而,在计数器被终止运行前,中断将重复产生。
写0000到一个计数器的SV字(SR240~ SR243)且执行INT( 89)刷新SV,将终止计数器运行并禁止对应的中断。为了重新启动计数器,将非0的SV写到它的SV字,且执行INT(89)(运行开始时,SV字被设定为0000,因此,计数器的SV必须通过梯形图程序写入它的SV字)。
当一个中断已经允许(未屏蔽),SV不能仅通过写入一个新值给SV字来刷新。刷新SV应通过执行带C1= 003(C1 =004为递增计数器)的INT( 89)指令。
计数器模式中断可以通过执行带C1=000和C2中对应位设定为1的INT( 89)来屏蔽,但当C2中的对应位设定为0时,一个输入将在中断输入模式而不是计数器模式下操作。
(5)屏蔽和允许所有中断(C1=100或C1= 200)
所有中断,包括输入中断、时间间隔计时器中断和高速计数器中断,都能通过执行带C1 =100或C1=200的INT( 89)来屏蔽或允许作为一组的中断。屏蔽的输入被记录,但不执行。全局屏蔽是除各单独类型中断之外的屏蔽。即清除所有中断并不清除单独类型中断,只是在INT( 89)来把它们作为一个群体来屏蔽执行之前,把它们存储到一个存在的屏蔽条件中。
除非有必要临时屏蔽所有的中断,切勿用INT( 89)来屏蔽中断。通常情况下成对使用INT( 89)指令,使用第一条INT( 89)指令来屏蔽所有的中断,第二条用来允许所有的中断。INT( 89)不能在一个中断程序中屏蔽或允许所有中断。屏蔽中断(C1=100)使用带C1 =100的INT( 89)指令来屏蔽所有的中断。
如果一个中断在中断屏蔽期间产生,中断处理将不执行但此输入、时间间隔计数器和高速计数器中断被记录。一旦中断允许,这些中断立即响应。
点击排行
