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