中斷就是中止當前正在運行的程序,去執行為(wei) 立刻響應的信號而編寫(xie) 的中斷服務程序,執行完畢後再返回原來中止的程序並繼續執行。西門子S7-200 SMART CPU最多支持38個(ge) 中斷事件,其中8個(ge) 為(wei) 預留。為(wei) 了便於(yu) 識別,係統給每一個(ge) 中斷事件都分配了一個(ge) 編號,又稱中斷事件號。
S7-200 SMART的中斷
所有中斷事件可以分為(wei) 三大類:通信中斷、I/O中斷、定時中斷。
通信中斷為(wei) CPU的串行通信端口可以由用戶進行控製,稱為(wei) 自由端口模式,在該模式下接收信息完成、發送信息完成、接收一個(ge) 字符均可以產(chan) 生中斷事件,利用接收和發送中斷可以簡化程序對通信的控製。
I/O中斷包括:上升沿中斷、下降沿中斷、高速計時器中斷。CPU可以為(wei) 輸入點I0.0至I0.3以及可選信號板的I7.0和I7.1的上升沿或下降沿產(chan) 生中斷。高速計數器中斷允許響應HSC的計數器當前值等於(yu) 設定值、計數方向改變、計數器外部複位等中斷事件。
中斷事件
定時中斷可以用來進行一個(ge) 周期性的操作,以1毫秒為(wei) 增量,周期時間可以取1毫秒至255毫秒。定時中斷0和定時中斷1的時間間隔分別寫(xie) 入特殊寄存器字節SMB34和SMB35。通常可以使用定時中斷來采集模擬量或定時執行PID控製程序。定時器中斷T32和T96允許及時響應一個(ge) 給定時間間隔的結束,隻有1毫秒分辨率的接通延時TON和斷開延時TOF定時器,T32和T96支持此類中斷,啟用中斷後當定時器的當前值等於(yu) 預設值時,在CPU的1毫秒定時刷新中執行被連接的中斷程序。
定時中斷
每類中斷中不同的中斷事件又有不同的優(you) 先權,多個(ge) 中斷事件同時發生時,根據優(you) 先級組以及組內(nei) 優(you) 先權來確定首先處理哪一個(ge) 中斷事件。優(you) 先級相同時,CPU按照先來先服務的原則處理中斷。任何時刻CPU隻能執行一個(ge) 用戶中斷程序。一旦一個(ge) 中斷程序開始執行,它要一直執行到完成,即使更高優(you) 先級的中斷事件發生,也不能中斷正在執行的中斷程序。正在處理另一個(ge) 中斷時發生的中斷會(hui) 進行排隊等待處理。每一個(ge) 優(you) 先級組分別設立相應的隊列,產(chan) 生的中斷事件分別在各自的隊列排隊,先到先處理,各隊列能保存的最大中斷數以及隊列溢出特殊寄存器位如下圖表中所示。
中斷隊列
西門子S7-200 SMART規定的中斷優(you) 先級由高到低依次是通信中斷、I/O中斷、定時中斷。S7-200 SMART的中斷管理是通過指令完成的,中斷指令包括中斷允許與(yu) 中斷禁止指令、中斷連接與(yu) 中斷分離指令。CPU進入RUN模式時,自動禁止所有中斷。
中斷指令
中斷允許指令,全局性地啟用對所有連接的中斷事件的處理。中斷禁止指令,全局性地禁止對所有中斷事件的處理,但是已建立了關(guan) 聯的中斷事件仍將繼續排隊。從(cong) 中斷程序有條件返回指令,在控製它的邏輯條件滿足時,從(cong) 中斷程序返回。編譯程序自動為(wei) 各中斷程序添加無條件返回指令。
中斷允許與(yu) 中斷禁止
中斷連接指令,用來建立中斷事件號EVNT與(yu) 中斷程序編號之間的聯係,並自動允許該中斷事件進入相應的隊列排隊,能否執行處理還要看禁止的情況。多個(ge) 中斷事件允許與(yu) 同一個(ge) 中斷程序相關(guan) 聯,但同一個(ge) 中斷事件不允許與(yu) 多個(ge) 中斷程序相連。
中斷連接
中斷分離指令,解除中斷事件EVNT與(yu) 所有中斷程序的關(guan) 聯,所指定的中斷事件不再進入中斷隊列,從(cong) 而禁止單個(ge) 中斷事件。清除中斷指令,從(cong) 中斷隊列中清除所有編號為(wei) EVNT的中斷事件。該指令可以用來清除不需要的中斷事件。
中斷分離