S7-200 SMART設(shè)置了中斷功能,用于實(shí)時(shí)控制、高速處理、通信和網(wǎng)絡(luò)等復(fù)雜和特殊的控制任務(wù)。
SBR_0——是MAIN主程序的子程序
INT-0——是中斷子程序
S7-200 SMART 系列可編程控制器最多有38個(gè)中斷源(9個(gè)預(yù)留),分為三大類:通信中斷、輸入/輸出(I/O)中斷和時(shí)基中斷,S7-200 SMART規(guī)定的中斷優(yōu)先由高到低依次是:通信中斷、I/O中斷和時(shí)基中斷。每類中斷中不同的中斷事件又有不同的優(yōu)先權(quán)。
中斷指令主要包括以下幾種:
-
ATCH:中斷連接,連接某中斷事件所要調(diào)用的程序段。
-
ENI:全局允許中斷,開放中斷處理功能。
-
DISI:全局禁止中斷,禁止處理中斷服務(wù)程序,但中斷事件仍然會(huì)排隊(duì)等候。
-
DTCH:中斷分離,將中斷事件號(hào)與中斷服務(wù)程序之間的關(guān)聯(lián)切斷,并禁止該中斷事件。
-
RETI:條件中斷返回,根據(jù)邏輯操作的條件,從中斷服務(wù)程序中返回。
-
CLR_EVNT:清空中斷隊(duì)列。
與S7-200相比,下表所示中斷事件號(hào)為S7-200 SMART 所特有的 :
表1.S7-200 SMART 特有中斷事件號(hào)
中斷程序?qū)嵗?/P>
本例使用定時(shí)中斷實(shí)現(xiàn)對(duì)100ms定時(shí)周期計(jì)數(shù)。我們使用特殊存儲(chǔ)器定時(shí)中斷0。由定時(shí)中斷0的中斷事件號(hào)為10,確定周期的特殊寄存器字節(jié)時(shí)SMB34。
該程序主要包括以下幾部分:
-
SBR_0:中斷初始化程序;
-
INT_0:中斷服務(wù)程序;
在主程序中調(diào)用SBR_0,如下圖所示:
其中,初始化中斷程序秩序調(diào)用一次,因此用SM0.1作為條件。
SBR_0編程如下圖所示:
其中,寫入定時(shí)周期數(shù)100ms,連接10號(hào)中斷事件即定時(shí)中斷0,指定中斷服務(wù)程序名稱為INT_0。
INT_0編程如下圖所示:
其中,用雙字長(zhǎng)的整數(shù)加法對(duì)VD200自身加1。
注意:中斷程序的初始化只需執(zhí)行一次。也可根據(jù)需要重新定義中斷事件。
使用狀態(tài)表監(jiān)視,VD200的內(nèi)容就是100ms周期到達(dá)的次數(shù),如下圖所示:
中斷例程
例程所需條件:
1、軟件版本:STEP 7-Micro/WIN SMART V2.3
2、SMART CPU固件版本:V1.0及以上
3、通訊硬件:TP電纜(以太網(wǎng)電纜)
所實(shí)現(xiàn)的功能:
1.通過(guò)SMB34做100ms的定時(shí)中斷
2.通過(guò)VD200自累加1,計(jì)算進(jìn)入中斷的次數(shù)