您现在的位置是:首页 > 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-59INT(89)指令梯形图。其中,C1是中断控制码,其取值为000~004100200C2是中断控制数据,其取值为#IRSRHRARLRTCDM


    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=001INT( 89)指令清除中断输入记录)。把C2中对应位设定为01来屏蔽或允许中断输入。第00~ 03位对应于00003~00006,第04~15位应设为0

   (2)清除中断输入(C1=001)

    PC操作起始时所有的中断被屏蔽,因此,为了使用,必须允许中断输入。这项功能用来清除00003~ 00006中断输入。由于中断输入被记录,除非记录先被清除,屏蔽的中断在屏蔽撤销时会立即响应。把C2的对应位设定为1来清除I/O中断输入。第0003位对应于00003~ 00006中断输入。第0415位应设为0

   (3)读当前屏蔽状态(C1=002)

    这项功能读中断输入00003~ 00006的当前屏蔽状态,并把状态信息写入字C2中。如果输入被屏蔽,对应位将置ON(第00~ 03位对应于00003~ 00006)。

   (4)重新启动计数器和允许中断(C1=003C1= 004

    这项功能被用来通过刷新计数器SV(在SR 240~ SR 243中)和允许中断输入(00003~00006)来重新启动中断输入(计数器模式)。

    设定C1 =3来重新启动递减计数器或C1 =4(仅适用于CPM2A/CPM2C PC)来重新启动递增计数器。把C2中对应位设定为0来刷新输入的计数器SV和允许中断(第00~ 03位对应于00003~ 00006)。

    当执行带C1= 003C1= 004INT( 89)指令时,使用微分变量(@INT(89))或一个仅ON一个周期的输入条件。如果INT( 89)在计数器运行期间执行,PV将被重新设定为SV,因此,如果每个周期中执行INT( 89),中断将永远不会产生。

    当执行带C1=003C1=004INT( 89),且SV的字包含一个非0SV( 0001~FFFF)时,对应计数器将开始进行计数操作(递增或递减)且对应的中断将在计数器模式下允许中断。当计数达SV时,一个中断将产生且PV将重返SV,从而,在计数器被终止运行前,中断将重复产生。

    0000到一个计数器的SV(SR240~ SR243)且执行INT( 89)刷新SV,将终止计数器运行并禁止对应的中断。为了重新启动计数器,将非0SV写到它的SV字,且执行INT(89)(运行开始时,SV字被设定为0000,因此,计数器的SV必须通过梯形图程序写入它的SV字)。

    当一个中断已经允许(未屏蔽),SV不能仅通过写入一个新值给SV字来刷新。刷新SV应通过执行带C1= 003C1 =004为递增计数器)的INT( 89)指令。

    计数器模式中断可以通过执行带C1=000C2中对应位设定为1INT( 89)来屏蔽,但当C2中的对应位设定为0时,一个输入将在中断输入模式而不是计数器模式下操作。

   (5)屏蔽和允许所有中断(C1=100C1= 200

    所有中断,包括输入中断、时间间隔计时器中断和高速计数器中断,都能通过执行带C1 =100C1=200INT( 89)来屏蔽或允许作为一组的中断。屏蔽的输入被记录,但不执行。全局屏蔽是除各单独类型中断之外的屏蔽。即清除所有中断并不清除单独类型中断,只是在INT( 89)来把它们作为一个群体来屏蔽执行之前,把它们存储到一个存在的屏蔽条件中。

    除非有必要临时屏蔽所有的中断,切勿用INT( 89)来屏蔽中断。通常情况下成对使用INT( 89)指令,使用第一条INT( 89)指令来屏蔽所有的中断,第二条用来允许所有的中断。INT( 89)不能在一个中断程序中屏蔽或允许所有中断。屏蔽中断(C1=100)使用带C1 =100INT( 89)指令来屏蔽所有的中断。

    如果一个中断在中断屏蔽期间产生,中断处理将不执行但此输入、时间间隔计数器和高速计数器中断被记录。一旦中断允许,这些中断立即响应。