【摘要】:能够用中断功能处理的特定事件称为中断事件。S7-200 PLC为每个中断事件规定了一个中断事件号。在梯形图中,开中断指令以线圈的形式编程,无操作数。当允许输入有效时,切断由EVNT指定的中断事件与所有中断程序的联系。应特别注意的是,尽管主程序只调用一次子程序,但子程序中的定时中断指令却不停地计时工作,每隔250ms产生一次中断,直到按下停止按钮。
在S7-200中,中断服务程序的调用和处理由中断指令来完成。CPU提供了中断处理功能,有很多的信息和事件能够引起中断,一般可分为系统内部中断和用户引起的中断。系统的内部中断是由系统来处理的,如编程器、数据处理器及某些智能单元等,都随时会向CPU发出中断请求,对于这种中断请求的处理,PLC是自动完成的,用户不必为此编程。而由用户引起的包括通信中断、高速脉冲串输出中断、外部输入中断、高速计数器中断、定时中断、定时器中断都是需要用户通过设计中断服务程序并设定对应的入口地址来完成的。以上各种中断的先后次序符合优先级排队。
能够用中断功能处理的特定事件称为中断事件。S7-200 PLC为每个中断事件规定了一个中断事件号。响应中断事件而执行的程序称为中断服务程序,把中断事件号和中断服务程序关联起来才能执行中断处理功能。
中断程序不是由程序调用,而是在中断事件发生时由操作系统调用,这一点是与子程序调用不同的,一旦执行中断程序就会把主程序封存,中断了主程序的正常扫描。中断事件处理完才返回主程序,所以中断程序应尽量短小,否则可能引起主程序控制的设备操作异常。
中断指令主要包括以下几种:
1)ENI(全局允许中断):功能是全局地开放所有被连接的中断事件,允许CPU接受所有中断事件的中断请求。在梯形图中,开中断指令以线圈的形式编程,无操作数。
2)DISI(全局禁止中断):功能是全局地关闭所有被连接的中断事件,禁止CPU接受所有中断事件的中断请求。在梯形图中,关中断指令以线圈的形式编程,无操作数。
3)ATCH(中断连接):功能是建立一个中断事件EVNT与一个标号为INT的中断服务程序的联系,并对该中断事件开放。
中断连接指令(见图1-23)以功能框的形式编程,指令名称为ATCH。它有两个数据输入端:INT为中断服务程序的标号,用字节型常数输入;EVNT为中断事件号,用字节型常数输入。当允许输入有效时,连接与中断事件EVNT相关联的INT中断程序。
4)DTCH(中断分离):功能是取消某个中断事件EVNT与所有中断程序的关联,并对该中断事件禁止。
图1-23 ATCH指令
中断分离指令(见图1-24)以功能框的形式编程,指令名称为DTCH,只有一个数据输入端:EVNT,用以指明要被分离的中断事件。当允许输入有效时,切断由EVNT指定的中断事件与所有中断程序的联系。
5)RETI(中断返回)和CRETI(中断返回):功能是,当中断结束时,通过中断返回指令退出中断服务程序,返回到主程序。RETI是无条件返回指令,CRETI是有条件返回指令。
图1-24 DTCH梯形图
图1-25 定时中断控制程序的梯形图及注释
例如:利用“定时中断”给8位彩灯循环左移。
控制要求:先设定8位彩灯在QB0处显示,并设7为初始值,然后每隔1s彩灯循环左移一位。控制按钮选I0.1按一次开始,再按一次停止,停止后彩灯全灭。
程序中包括了子程序的调用及中断程序的执行,在子程序中建立了初始化状态并建立与开通了中断事件。应特别注意的是,尽管主程序只调用一次子程序,但子程序中的定时中断指令却不停地计时工作,每隔250ms产生一次中断,直到按下停止按钮。图1-25所示为控制程序的梯形图及注释。
S7-200 CPU226的中断系统中,按中断性质和轻重缓急分配不同的优先级,当多个中断事件同时发出中断请求时,要按表1-22所列的优先级顺序进行排队。
在S7-200的CPU22X中,可连接的中断事件及中断事件号见表1-23。
表1-22 中断事件的优先级
表1-23 可连接的中断事件及中断事件号
相关推荐