云南西門子V90伺服系統(tǒng)代理商

西門子S7-300/400 PLC的時間錯誤處理組織塊(OB80)
OB執(zhí)行時出現(xiàn)故障S7-300 PLC CPU的操作系統(tǒng)調(diào)用OB80。這樣的故障包括循環(huán)時間超出、執(zhí)行OB時應答故障、向前移動時間以致于躍過了OB的啟動的時間、CLR后恢復RUN方式。
如果當循環(huán)中斷OB仍在執(zhí)行前一次調(diào)用時,該OB塊的啟動事件發(fā)生,操作系統(tǒng)調(diào)用OB80。如果OB80未編程,CPU變?yōu)?/span>STOP方式,可以使用SFC39~SFC42封鎖或延時,或再使用時間故障OB。
如果在同一個掃描周期中由于掃描時間超出OB80被調(diào)用兩次,CPU就變?yōu)?/span>STOP方式,可以通過在程序中適當?shù)奈恢谜{(diào)用SFC43“RE TRIGR”來避免這種情況。
被S7 CPU檢測到并且用戶可以通過組織塊對其進行處理的錯誤分為兩個基本類型:
1)異步錯誤。其是與PLC的硬件或操作系統(tǒng)密切相關的錯誤,與程序執(zhí)行無關,后果嚴重。異步錯誤OB具有高等級的優(yōu)先級,其他OB不能中斷它們。同時有多個相同優(yōu)先級的異步錯誤OB出現(xiàn),將按出現(xiàn)的順序處理。
2)同步錯誤(OB121和OB122)。是與程序執(zhí)行有關的錯誤, 其OB的優(yōu)先級與出現(xiàn)錯誤時被中斷的塊優(yōu)先級相同,即同步錯誤OB中的程序可以訪問塊被中斷時累加器和狀態(tài)寄存器中的內(nèi)容。對錯誤進行處理后,可以將處理結果返回被中斷的塊。
S7-300/400 PLC具有很強的錯誤(或稱故障)檢測和處理能力。PLC內(nèi)部的功能性錯誤或編程錯誤,而不是外部設備的故障。CPU檢測到錯誤后,操作系統(tǒng)調(diào)用對應的組織塊,用戶可以在組織塊中編程,對發(fā)生的錯誤采取相應的措施。對于大多數(shù)錯誤,如果沒有給組織塊編程,出現(xiàn)錯誤時CPU將進入STOP模式。 硬件中斷組織塊(OB40~OB47)用于快速響應信號模塊(SM輸入/輸出模塊)、通信處理器(CP)和功能模塊(FM)的信號變化。
硬件中斷被模塊觸發(fā)后,操作系統(tǒng)將自動識別是哪一個槽的模塊和模塊中哪一個通道產(chǎn)生的硬件中斷。硬件中斷OB執(zhí)行完后,將發(fā)送通道確認信號。

如果正在處理某一中斷事件,又出現(xiàn)了同一模塊同一通道產(chǎn)生的*相同的中斷事件,新的中斷事件將丟失。
如果正在處理某一中斷信號時同一模塊中其他通道或其他模塊產(chǎn)生了中斷事件,當前已激活的硬件中斷執(zhí)行完后,再處理暫存的中斷。
以下用一個例子說明硬件中斷組織塊的使用方法。
【實例】編寫一段指令記錄用戶使用I3.0和I3.1按鈕的次數(shù),做成一個簡單的“黑匣子”。
系統(tǒng)的硬件為CPU 314C-2DP和輸入信號模塊SM321(Interrupt,帶硬件中斷功能)。*行硬件組態(tài),如圖4-126所示,很明顯信號輸入模塊的輸入地址為“IB3”和“IB4”。雙擊“SM321 DI16XDC24V,Interrupt”,彈出信號模塊的屬性界面,如圖4-127所示。在“輸入選項卡”中,勾選“硬件中斷”和“上升沿硬件中斷發(fā)生器”(實際就是對I3.0和I3.1有效),后單擊“確定”按鈕
在組織塊OB40中編寫程序如圖4-128所示,每次壓下按鈕,調(diào)用一次OB40中的程序一次,MW0中的數(shù)值加1,也就是記錄了使用按鈕的次數(shù)。
圖4-128 OB40中的程序
【關鍵點】選用的輸入模塊“DI16XDC24V,Interrupt”必須具有硬件中斷功能。
這個例子也可以用SFC39和SFC40來取消和激活中斷。
CPU可以使用的循環(huán)中斷OB的個數(shù)與CPU的型號有關。所謂循環(huán)中斷就是經(jīng)過一段固定的時間間隔中斷用戶程序。

(1)循環(huán)中斷指令
循環(huán)中斷組織塊是很常用的,STEP 7中有9個循環(huán)中斷組織塊(OB30~OB38)。指令SFC39~SFC42來激活循環(huán)中斷、禁止循環(huán)中斷、禁用報警中斷和啟用報警中斷。指令SFC39~SFC42的參數(shù)見表4-57。
表4-57 SFC39~SFC42的參數(shù)表
參數(shù)MODE禁用哪些中斷和異步錯誤,含義比較復雜,MODE=0表示激活所有的中斷和異步錯誤,MODE=1表示禁用所有新發(fā)生的和屬于中斷等級的事件,MODE=2表示禁用所有新發(fā)生的中斷。具體可參考相關手冊。
(2)循環(huán)中斷組織塊的應用
【實例】每隔100ms時間,CPU 314C-2DP采集一次通道0上的數(shù)據(jù)。
很顯然要使用循環(huán)組織塊,有兩種解法。
*種解法比較簡單,先打開CPU的屬性界面,在“循環(huán)中斷”選項卡中,將組織塊OB35的執(zhí)行時問定為“100ms”,單擊“確定”按鈕,如圖4-123所示。這個步驟的含義是:設置組織塊OB35的循環(huán)中斷時間是100ms,再將組態(tài)完成的硬件下載到CPU中。
打開OB35,在程序編輯器中,輸入程序如圖4-125所示,運行的結果是每100ms將通道0的采集到模擬量轉化成數(shù)字量送到MW0中。
第二種解法,并不需要在CPU的屬性界面的“循環(huán)中斷”選項卡中進行設置,直接編寫程序即可,但相對麻煩一些。主程序在OB1中,如圖4-124所示,中斷程序在OB35中。

云南西門子V90伺服系統(tǒng)代理商