中断是指系统暂时中断正在执行的程序,而转到中断服务程序中去处理急需处理的事件,处理后再返回到原程序执行,所以中断是由中断源和中断服务程序构成的。
中断源就是引起中断的原因,或者说,就是能发出中断请求信号的来源。S7-200系列PLC最多具有34个中断源,系统给每个中断源都分配了一个编号,称为中断事件号。不
同CPU模块可用的中断源有所不同,如图表4-11所示。
表4-11 不同CPU模块可用的中断源
1.中断的分类
34个中断源主要分为三大类,即通信中断、I/O中断、时基中断。
(1)通信中断。
PLC的串行通信口可由用户程序来控制。通信口的这种操作模式称为自由端口模式。在自由端口模式下,用户程序定义波特率、每个字符位数、奇偶校验和通信协议。利用接收和发送中断可简化程序对通信的控制。通信口中断号有8、9、23~26。
(2)I/O中断。
I/O中断包含了上升沿或下降沿中断、高速计数器和脉冲串输出中断。S7-200 CPU可用输入点(I0.0~I0.3)的上升沿或下降沿产生中断,CPU检测出这些上升沿或下降沿事件,可用来指示某个事件发生时的故障状态。
(3)时基中断。
时基中断包括定时中断和定时器T32/T96中断。定时中断可以设置一个周期性触发的中断响应,通常可以用于模拟量的采样周期或执行一个PID周期。周期时间以1 ms为单位增量,周期可以设置为5~255 ms。S7-200系列PLC提供了两个定时中断,定时中断0和定时中断1。不同的是,定时中断0的周期时间值要写入SMB34,定时中断1的周期时间值要写入 SMB35。当定时中断被允许,则定时中断相关定时器开始计时,在定时时间值与设置周期值相等时,相关定时器溢出,开始执行定时中断连接的中断程序。每次重新连接时,定时中断功能能够清除前一次连接时的各种累计值,并用新值重新开始计时。定时器中断使用且只能使用1 ms定时器T32和T96,对一个指定时间段产生中断。T32和T96使用方法同其他定时器,只是在定时器中断被允许时,一旦定时器的当前值和预置值相等,则执行被连接的中断程序。CPU226中的中断事件及其优先级如表4-12所示。
表4-12 CPU226中的中断事件及其优先级
续表
续表
2.中断指令
(1)指令格式。
STL: ATCH INT,EVENT DTCH EVENT ENI DISI CRETI
LAD:(www.daowen.com)
(2)指令功能。
ATCH:中断连接指令。当 EN条件满足时,将一个中断源和一个中断程序建立响应联系,并允许该中断事件。INT端口指定中断程序入口地址,即中断程序名称。EVNT端口指定与中断程序相联系的中断源,即表4-12中的中断事件号。
DTCH:中断分离指令。当EN条件满足时,单独截断一个中断源和所有中断程序的联系,并禁止该中断事件。EVNT端口指定被禁止的中断源。
ENI:中断允许指令。在其逻辑条件成立时,全局地允许所有被连接的中断事件。
DISI:中断禁止指令。在其逻辑条件成立时,全局地禁止处理所有的中断事件。
CRETI:有条件中断返回指令。在其逻辑条件成立时,结束中断程序执行,返回主程序中继续执行。若要执行有条件中断返回的话,可由用户编程实现。
(3)指令应用。
例4-6:中断程序指令应用1如图4-50所示。
图4-50 中断程序指令应用1
例4-7:中断程序指令应用2如图4-51所示。
图4-51 中断程序指令应用2
例4-8:中断程序指令应用3如图4-52所示。
控制要求:I0.5闭合时,Q0.0被置位,同时建立中断事件0、2与中断程序INT_0、INT_1的联系,并全局开中断。在I0.0闭合时复位Q0.0,在I0.1闭合时复位Q0.1,同时切断中断事件与中断程序的联系。
图4-52 中断程序指令应用3
(4)指令说明。
① PLC系统每次切换到“RUN”状态时,自动关闭所有中断事件。可以通过编程,在“RUN”状态时,使用ENI指令开放所有中断。若用DISI指令关闭所有中断,则中断程序不能被激活,但允许发生的中断事件等候,直到重新允许中断。
② 多个中断事件可以调用同一个中断程序,但同一个中断事件不能同时连接多个中断服务程序。
③ 中断程序是由操作系统调用的,而子程序是由主程序调用的。
④ 中断程序的建立方法与子程序类似。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。