PLC編程,組織塊與中斷塊的配置原理和編程方法

操作系統 中央處理器 軟件 硬件 超級任天堂 工控自動化聯盟 2019-06-06

【工控課堂】電氣工程師必備網站!海量免費資源下載學習! 下載地址:

资料分享-ĺˇĽćŽ§čŻžĺ ‚ - www.gkket.com


組織塊OB是操作系統與用戶程序之間的接口,組織塊由操作系統調用,組織塊中的程序是用戶編寫的。S7 plc的組織塊用來創建在特定的時間執行的程序或相應特定事件的程序,例如延時中斷OB、外部硬件中斷OB和錯誤中斷OB等。

一、中斷的基本概念

1、中斷過程

中斷處理用來實現對特殊內部事件或外部事件的快速響應,如果沒有中斷,CPU循環執行組織塊OB1,因為除了背景組織塊OB90以外,OB1的中斷優先級最低,CPU檢測到中斷源的中斷請求,操作系統在執行完當前程序的當前指令(即斷點處)後,立即響應中斷。CPU暫停正在執行的程序,調用中斷源的中斷組織塊OB來處理,執行完中斷組織塊後,返回被中斷的程序斷點處繼續執行原來的程序。

有中斷事件發生時,如果沒有下載相應的組織塊,CPU將會進入STOP模式,即使生成和下載一個空的組織塊,出現相應的中斷事件時,CPU也不會進入STOP模式。

PLC的中斷源可能來自I/O模塊的硬件中斷,或者來自CPU模塊內部的軟件中斷,例如時間中斷、延時中斷、循環中斷和編程錯誤引起的中斷。

一個OB的執行被另一個OB中斷時,操作系統對現場進行保護,被中斷的OB的局部數據壓入L堆棧(局部數據堆棧),被中斷的斷點處的現場信息保存在I堆棧(中斷堆棧)和B堆棧(塊堆棧)中。中斷程序不是由邏輯塊調用,而是在中斷事件發生時由操作系統調用,因為不能預知系統何時調用中斷程序,中斷程序不能改寫其他程序中可能正在使用的存儲器,中斷程序應儘可能的使用局部變量。編寫中斷程序應越短越好,減少中斷程序的執行時間,減少對其他事件處理的延遲,否則可能引起主程序控制的設備操作異常。

2、組織塊的分類

組織塊只能由操作系統啟動,它由變量聲明表和用戶編寫的控制程序組成。

(1)啟動組織塊:用於系統初始化,CPU上電或操作模式切換到RUN時,S7-300執行OB100,S7-400根據組態的啟動方式執行OB100~OB102中的一個。

(2)循環執行OB1:需要連續執行的程序放在OB1中,循環執行。

(3)定期執行的組織塊:包括時間中斷組織塊OB10~OB17,和循環中斷組織塊OB30~OB38,可以根據設定的日期時間或時間間隔執行中斷程序。

(4)事件驅動的組織塊:延時中斷OB20~OB23在過程事件出現後延時一定時間再執行中斷程序,硬件中斷OB40~OB47用於需要快速響應的過程事件,時間出現時馬上中止當前正在執行的程序,執行對應的中斷程序。diangon.com版權所有!異步錯誤中斷0B80~OB87和同步錯誤中斷OB121、OB122用來決定出現錯誤時系統如何響應。

3、中斷的優先級:也就是組織塊的優先級,如果在執行中斷程序(組織塊)時,又檢測到一個終端請求,CPU將比較兩個中斷源的中斷優先級,如果優先級相同,按照產生中斷請求的先後次序進行處理。如果後者的優先級比正在執行的OB的優先級高,將中止當前的正在處理的OB,

4、對終端的控制:時間中斷和延時中斷有專用的允許處理中斷和禁止中斷的系統功能SFC。

SFC39“DIS_INT”用來禁止中斷和異步錯誤處理,可以禁止所有中斷,有選擇的禁用某些優先級範圍的中斷,或者只禁止指定的某個中斷;

SFC40“EN_INT”用來激活新的中斷和異步錯誤處理,激活中斷是指允許處理中斷,做好了在中斷事件出現時執行對應的組織塊的準備。可以全部允許或有選擇的允許。

SFC41“DIS_AIRT”延遲處理比當前優先級更高的中斷和異步錯誤,直到用SFC42允許處理中斷或當前OB執行完畢,SFC42“EN_AIRT”用來允許立即處理被SFC41暫時禁止的中斷和異步錯誤,SFC41和SFC42配對使用。

【工控課堂】電氣工程師必備網站!海量免費資源下載學習! 下載地址:

资料分享-ĺˇĽćŽ§čŻžĺ ‚ - www.gkket.com


二、啟動組織塊

1、CPU的啟動模式和啟動組織塊

400的CPU有3中啟動方式,暖啟動、熱啟動和冷啟動,300CPU只能暖啟動,參見下圖:


PLC編程,組織塊與中斷塊的配置原理和編程方法


用戶可以通過在啟動組織塊中編寫程序,用來設置CPU的初始化操作,例如設置開始運行時的某些變量的初始值和輸出模塊的初始值等。

1)暖啟動過程映像數據以及非保持的存儲器位、定時器和計數器被複位。具有保持功能的存儲器位、定時器、計數器和所有的數據塊將保留原數值,執行一個OB100後,循環執行OB1,將模式選擇開關從STOP切換到RUN,執行一次暖啟動。

2)熱啟動:400CPU在RUN模式下電源突然丟失,很快又重新上電,將執行OB101,自動完成熱啟動,從上次RUN模式結束時程序被中斷之處繼續執行,不對計數器等復位。

3)冷啟動:所有系統存儲區均被清除,即復位為零,包括有保持功能的存儲區。調用OB102後循環執行OB1。

2、循環中斷組織塊

循環中斷組織塊用於按精確時間間隔循環執行中斷程序,例如週期性執行閉環控制系統PID控制程序,間隔時間從cpu從STOP切換到RUN開始計算。S7-300大多數只能使用OB35,其餘CPU可以實用的循環中斷OB的個數和CPU型號有關。時間間隔不能小於5ms。時間間隔過短,還沒有執行完循環中斷程序又開始調用它,將會產生時間錯誤時間,調用OB80,如果沒有調用OB80,CPU將進入STOP。

舉例說明:

硬件組態如下:採用CPU315-2DP,雙擊硬件組態中的CPU,打開屬性對話框,由【週期性中斷】選項卡可知只能使用OB35。


PLC編程,組織塊與中斷塊的配置原理和編程方法


默認的循環週期為100ms,改成1000ms。

OB100程序

3、時間中斷組織塊

300CPU只能使用OB10,400CPU可以使用OB10~17,可以設置在某一個特定的日期時間產生一次時間中斷,也可以設置從設定日期時間開始,週期性的重複產生中斷,可以用SFC28~SFC30設置、取消和激活時間中斷。

1)、基於硬件組態的時間中斷

要求在到達設置的日期和時間時,用Q4.0自動啟動某臺設備。具體如下:

硬件組態:打開CPU屬性中的“時刻中斷”選項卡,設置執行啟動設備的日期和時間,執行方式為“一次”。


PLC編程,組織塊與中斷塊的配置原理和編程方法


生成OB10

【工控課堂】電氣工程師必備網站!海量免費資源下載學習! 下載地址:

资料分享-ĺˇĽćŽ§čŻžĺ ‚ - www.gkket.com

相關推薦

推薦中...