1.同步錯誤
??同步錯誤是與執(zhí)行用戶程序有關(guān)的錯誤,程序中如果有不正確的地址區(qū)、錯誤的編號或錯誤的地址,都會出現(xiàn)同步錯誤,操作系統(tǒng)將調(diào)用同步錯誤OB。OB121用于對程序錯誤的處理,OB122用于處理模塊訪問錯誤。
??同步錯誤OB的優(yōu)先級與檢測到出錯的塊的優(yōu)先級一致。因此OB121和OB122可以訪問中斷發(fā)生時累加器和其他寄存器的內(nèi)容。用戶程序可以用它們來處理錯誤,例如出現(xiàn)對某個模擬量輸入模塊的訪問錯誤時,可以在OB122中用SFC44定義一個替代值。
??可以用SFC36“MASK_FLT”來屏蔽同步錯誤,使某些同步錯誤不觸發(fā)對應(yīng)的OB的調(diào)用,但是CPU在錯誤寄存器中記錄發(fā)生的被屏蔽的錯誤。SFC 37“DMSK_FLT”在當(dāng)前優(yōu)先級被執(zhí)行完后,將解除被屏蔽的錯誤,并且清除當(dāng)前優(yōu)先級的事件狀態(tài)寄存器相應(yīng)的位。
??可以用SFC38“READ_ERR”讀出已經(jīng)發(fā)生的被屏蔽的錯誤。
??對于S7-300(CPU318除外),不管錯誤是否被屏蔽,錯誤都會被送入診斷緩沖區(qū),并且CPU的“SF”LED會被點亮。
??2. 編程錯誤組織塊(OB121)
??出現(xiàn)編程錯誤時,CPU的操作系統(tǒng)將調(diào)用OB121。編程錯誤的診斷將在7.3.2節(jié)介紹。
??3. I/O訪問錯誤組織塊(OB122)
??CPU用PI、PQ地址區(qū)訪問有故障的模塊時,如果出現(xiàn)直接訪問I/O錯誤(模塊損壞或找不到),或者訪問了一個CPU不能識別的I/O地址,此時CPU的操作系統(tǒng)將會調(diào)用0B122。0B122將在7.1.1節(jié)介紹。
??其他組織塊
??1. DPV1中斷組織塊 OB55~OB57
??如果PROFIBUS-DP V1(簡稱 DPV1)從站的模塊或機架改變了操作模式,例如由RUN切換為STOP,CPU的操作系統(tǒng)可能調(diào)用狀態(tài)中斷組織塊OB55。
??如果用戶通過本地或遠程訪問更改了DPV1從站插槽的參數(shù),CPU的操作系統(tǒng)可能調(diào)用更新中斷組織塊0B56。OB57是DPV1從站的插槽觸發(fā)的制造商特定的中斷的組織塊。
??2.多處理器中斷組織塊OB60
??S7-400的一個機架可以插入最多4個CPU,協(xié)同完成同一個復(fù)雜任務(wù)。OB60用來確保在多CPU過程中CPU的反應(yīng)與事件同步。
??3.同步循環(huán)中斷組織塊OB61~OB64
??DP從站從采集輸入信號到輸出邏輯運算結(jié)果需要經(jīng)過7個不同的循環(huán),同步循環(huán)中斷用于實現(xiàn)各DP從站數(shù)據(jù)處理的同步。
??4.技術(shù)功能同步中斷組織塊OB65
??技術(shù)(Technology)功能同步中斷組織塊0B65用于技術(shù)功能CPU的程序啟動和技術(shù)功能塊更新的同步。
??5.背景組織塊OB90
??S7-400的CPU可以設(shè)置最小掃描循環(huán)時間,如果它比實際的掃描循環(huán)時間長,在循環(huán)程序結(jié)束后CPU處于空閑的時間內(nèi)可以執(zhí)行背景組織塊(OB90)。如果沒有對OB90編程,CPU要等到定義的最小掃描循環(huán)時間到達為止,再開始下一次循環(huán)的操作。用戶可以將對運行時間要求不高的操作放在OB90中去執(zhí)行,以避免出現(xiàn)等待時間。
??OB90的優(yōu)先級為29(最低),不能通過參數(shù)設(shè)置進行修改。實際編程極少使用OB90。