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