中斷就是中止當前正在運行的程序,去執行為立刻響應的信號而編寫的中斷服務程序,執行完畢后再返回原來中止的程序并繼續執行。西門子S7-200 SMART CPUZui多支持38個中斷事件,其中8個為預留。為了便于識別,系統給每一個中斷事件都分配了一個編號,又稱中斷事件號。
S7-200 SMART的中斷
所有中斷事件可以分為三大類:通信中斷、I/O中斷、定時中斷。通信中斷為CPU的串行通信端口可以由用戶進行控制,稱為自由端口模式,在該模式下接收信息完成、發送信息完成、接收一個字符均可以產生中斷事件,利用接收和發送中斷可以簡化程序對通信的控制。I/O中斷包括:上升沿中斷、下降沿中斷、高速計時器中斷。CPU可以為輸入點I0.0至I0.3以及可選信號板的I7.0和I7.1的上升沿或下降沿產生中斷。高速計數器中斷允許響應HSC的計數器當前值等于設定值、計數方向改變、計數器外部復位等中斷事件。
中斷事件
定時中斷可以用來進行一個周期性的操作,以1毫秒為增量,周期時間可以取1毫秒至255毫秒。定時中斷0和定時中斷1的時間間隔分別寫入特殊寄存器字節SMB34和SMB35。通常可以使用定時中斷來采集模擬量或定時執行PID控制程序。定時器中斷T32和T96允許及時響應一個給定時間間隔的結束,只有1毫秒分辨率的接通延時TON和斷開延時TOF定時器,T32和T96支持此類中斷,啟用中斷后當定時器的當前值等于預設值時,在CPU的1毫秒定時刷新中執行被連接的中斷程序。
定時中斷
每類中斷中不同的中斷事件又有不同的優先權,多個中斷事件同時發生時,根據優先級組以及組內優先權來確定首先處理哪一個中斷事件。優先級相同時,CPU按照先來先服務的原則處理中斷。任何時刻CPU只能執行一個用戶中斷程序。一旦一個中斷程序開始執行,它要一直執行到完成,即使更高優先級的中斷事件發生,也不能中斷正在執行的中斷程序。正在處理另一個中斷時發生的中斷會進行排隊等待處理。每一個優先級組分別設立相應的隊列,產生的中斷事件分別在各自的隊列排隊,先到先處理,各隊列能保存的Zui大中斷數以及隊列溢出特殊寄存器位如下圖表中所示。
中斷隊列
西門子S7-200 SMART規定的中斷優先級由高到低依次是通信中斷、I/O中斷、定時中斷。S7-200 SMART的中斷管理是通過指令完成的,中斷指令包括中斷允許與中斷禁止指令、中斷連接與中斷分離指令。CPU進入RUN模式時,自動禁止所有中斷。
中斷指令
中斷允許指令,全局性地啟用對所有連接的中斷事件的處理。中斷禁止指令,全局性地禁止對所有中斷事件的處理,但是已建立了關聯的中斷事件仍將繼續排隊。從中斷程序有條件返回指令,在控制它的邏輯條件滿足時,從中斷程序返回。編譯程序自動為各中斷程序添加無條件返回指令。
中斷允許與中斷禁止
中斷連接指令,用來建立中斷事件號EVNT與中斷程序編號之間的聯系,并自動允許該中斷事件進入相應的隊列排隊,能否執行處理還要看禁止的情況。多個中斷事件允許與同一個中斷程序相關聯,但同一個中斷事件不允許與多個中斷程序相連。
中斷連接
中斷分離指令,解除中斷事件EVNT與所有中斷程序的關聯,所指定的中斷事件不再進入中斷隊列,從而禁止單個中斷事件。清除中斷指令,從中斷隊列中清除所有編號為EVNT的中斷事件。該指令可以用來清除不需要的中斷事件。
中斷分離
接下來我們通過一個簡單的例子來學習中斷指令的使用,并練習編寫中斷程序。在I0.0的上升沿通過中斷使Q0.0立即置位,在I0.1的下降沿通過中斷使Q0.0立即復位。我們來編寫程序,啟動STEP7-Micro/WIN SMART創建一個新項目,創建新項目后首先編寫處理I0.0上升沿事件的中斷程序,在指令樹的位邏輯中拖放一個常開觸點到中斷程序INT_0,輸入地址SM0.0,再拖放一個立即置位指令,輸入地址Q0.0,置位個數為1。
編寫中斷程序INT_0
我們再來編寫一個處理I0.1下降沿事件的中斷程序,插入一個新的中斷程序INT_1,拖放一個常開觸點SM0.0,再拖放一個立即復位指令,輸入地址Q0.0,復位個數為1。
編寫中斷程序INT_1
回到主程序,拖放一個常開觸點輸入地址SM0.1,在指令樹的中斷文件夾中拖放中斷連接指令到編程區域,INT處輸入0號中斷程序名,EVNT處輸入I0.0上升沿事件號0,向下分支,再拖放一個中斷連接指令,INT處輸入1號中斷程序名,EVNT處輸入I0.1下降沿事件3,繼續向下分支,拖放一個中斷允許指令,這樣在程序第一次掃描時就關聯了中斷事件以及相應的中斷服務程序并允許全局中斷,程序編寫完成后保存項目。
編寫主程序調用中斷程序
下載并測試。將項目編譯并下載到PLC,在狀態圖表中輸入地址Q0.0,啟動對狀態圖表變量的持續監視,撥動外接開關使I0.0產生上升沿,Q0.0立即變為1,撥動外接開關使I0.1產生下降沿,Q0.0立即變為0。
測試程序
- 什么是串口通訊?PLC串口通訊接口知識 2024-12-02
- 如何用PLC控制實現編碼器的定位功能? 2024-12-02
- 博途軟件的基本操作,快捷操作有哪些?什么是博途視圖和項目視圖? 2024-12-02
- 【西門子PLC編程實例】運料小車控制系統 2024-12-02
- 什么是子程序?子程序有什么優點?西門子S7-200 PLC子程序如何編程調用? 2024-12-02
- 【西門子PLC編程實例】西門子S7-300 PLC如何控制變頻器實現三段速運行? 2024-12-02
- 詳解PLC直接尋址與間接尋址 2024-12-02
- 西門子S7-200與S7-300的區別是什么?西門子S7-300的特點有哪些? 2024-12-02
- PLC如何選型?西門子PLC、三菱PLC或者其它品牌我們該如何選用? 2024-12-02
- PID的作用是什么?如何實現西門子S7-1500的PID功能?如何進行PID調試? 2024-12-02
- Wincc與西門子PLC的通訊方式有哪幾種? 2024-12-02
- 西門子S7-200 SMART如何通過MODBUS協議與稱重儀表通訊? 2024-12-02
- 博途軟件PLCSIM仿真工具如何使用S7-1500 PLC仿真功能? 2024-12-02
- 什么是組態?博途軟件如何高效組態? 2024-12-02
- 如何組態PLC塊中的結構變量使其連接能在WinCC中使用 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684