診斷錯誤 OB82
● 診斷錯誤 OB82 的功能
S7-1200支持診斷錯誤中斷,可以為具有診斷功能的模塊啟用診斷錯誤中斷功能來檢測模塊狀態。
出現故障(進入事件),故障解除(離開事件)均會觸發診斷中斷 OB82 。當模塊檢測到故障并且在軟件中使能了診斷錯誤中斷時,操作系統將啟動診斷錯誤中斷,診斷錯誤中斷 OB82 將中斷正常的循環程序優先執行。
此時無論程序中有沒有診斷中斷 OB82,CPU 都會保持 RUN 模式,同時 CPU 的 ERROR 指示燈閃爍。
如果希望 CPU 在接收到該類型的錯誤時進入 STOP 模式,可以在 OB82 中加入 STP 指令使 CPU 進入 STOP 模式。
● 與診斷錯誤 OB82 相關的信息
當觸發診斷錯誤中斷時,通過 OB82 的接口變量可以讀取相應的啟動信息,可以幫助確定事件發生的設備、通道和錯誤原因。
OB82 的接口變量及啟動信息參考下圖1、2。
圖1. OB82 接口變量
圖2. OB82 啟動信息
● 診斷錯誤 OB 的使用示例:
例如:模擬量輸出模塊 SM1232 的電壓輸出通道,對于通道1使能短路診斷,當通道1出現短路錯誤時,隨即觸發診斷錯誤 OB82 ,此時可從 OB82 的啟動參數中讀取診斷信息。
1、按如下步驟創建診斷錯誤 OB82 。如圖3。
圖3. 創建診斷錯誤 OB82
2、OB82 中編程如下圖,創建地址為 MW100、MW102、MW104 的變量用于存儲出現診斷錯誤時讀取到的啟動信息。如圖4。
圖4. OB82 中編程
3、在硬件組態窗口中,選中模擬量輸出模塊,選擇模擬量輸出通道1的“啟用短路診斷”功能。如圖5。
圖5. 設置診斷功能
4、測試結果:程序下載后,在監控表中給“channel1”設置輸出值5000,如果此時出現了短路故障,則將立即觸發診斷錯誤功能。如圖6。
圖6. 測試結果
在 OB82 中使用 SFB 54 進行診斷
支持診斷的信號模塊和功能模塊將檢測內部和外部錯誤,并生成診斷中斷(可通過調用中斷 OB 對其進行響應)。與錯誤事件有關的 OB 編碼和開始信息提供有關錯誤原因和位置的初始信息。
然后可以通過在此錯誤 OB 中調用 SFB54(讀取附加的中斷信息)獲得詳細的錯誤事件信息。
SFB54 功能
SFB54“RALARM”將從支持診斷的所有模塊讀取中斷數據,而不管這些模塊是插入到中央機架中還是用在 PROFIBUS DP 或 PROFINET IO 中。
此信息將寫入到輸出參數 STATUS、ID、LEN、TINFO 和 AINFO。可以在 TINFO 目標區域中找到 OB 啟動和管理信息。頁眉信息和附加的中斷信息(例如,發生短路)位于 AINFO 目標區域中。
通過在 OB82 中調用 SFB54 進行診斷
如果支持診斷的模塊檢測到錯誤,它將向 CPU 輸出診斷中斷請求(不管是進入事件還是離開事件)。這要求已對相關模塊啟用診斷中斷。操作系統調用 OB82 以對診斷請求進行響應。
OB82 的局部變量包含邏輯基址和關于故障模塊的四個字節的診斷數據。如果未對 OB82 進行編程,則 CPU 狀態將更改為 STOP。
使用 SFB54 對 OB82 進行編程 :
要求:
1. 您已創建并命名了新的 STEP 7 項目。
2. 您已添加了帶有 CPU 317-2 PN/DP 的 SIMATIC 300 站。
3. 您已在 CPU 317-2 PN/DP 的 PROFINET 子網上組態了 ET 200S。
執行以下步驟:
1. 生成可以存儲中斷數據的背景數據塊(IDB)。為此 IDB 分配稱“IDB_SFB54”。
2. 插入 OB82
– 在 STEP 7 中打開您的項目
– 選擇 Insert(插入) -> S7 block(S7 塊)-> Organization block(組織塊),然后在對話框中輸入塊名稱“OB82”。
3. 啟動 LAD/STL/FBD 編輯器
– 雙擊“OB82”符號,打開 LAD/STL/FBD 編輯器。
4. 聲明 SFB54 中的變量
– 在對話框中輸入“CALL SFB54, DB54”以調用 SFB。
– 然后為 SFB54 的參數分配從下表中獲取的值。
CALL SFB54, DB54 通過實例 DB54 調用 SFB54
MODE := 1 將設置所有輸出參數(與中斷觸發組件無關)
F_ID := 不必進行設置,因為 F_ID 在模式 1 下不相關
MLEN := 1500 將要讀取的記錄信息的最大長度設置為 1500 字節
NEW := M1000.1 如果已接收新記錄,則存儲器位 1000.1 = 1
STATUS := MD10 MD10 包含錯誤代碼
ID := MD16 存儲器雙字 16 包含模塊或子模塊的邏輯起始地址,該地址用于接收中斷。
LEN := MW24 存儲器字 24 返回讀取的記錄信息的長度
TINFO := P#M 500.0 BYTE 32 指向 MB500 的 ANY 指針,長度為 32 個字節
AINFO := P#M 1500.0 BYTE 1431 指向 MB1500 的 ANY 指針,長度為 1431 個字節
在標志字節 500 或 1500 處開始,輸入 TINFO 和 AINFO 變量中返回信息,長度為 32 字節或 1431 字節。TINFO 和 AINFO 目標區域的數據存儲器未完全分配,取決于哪個 OB 調用 SFB54。
審核編輯:劉清
-
plc
+關注
關注
5008文章
13167瀏覽量
462195 -
存儲器
+關注
關注
38文章
7455瀏覽量
163624 -
cpu
+關注
關注
68文章
10829瀏覽量
211196 -
FBD
+關注
關注
0文章
14瀏覽量
7707 -
S7-1200
+關注
關注
11文章
331瀏覽量
17922
原文標題:西門子PLC 在 OB82 中使用 SFB 54 進行診斷V1.23
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論