如何使用中斷組織塊OB82對(duì)系統(tǒng)進(jìn)行故障診斷?
設(shè)備在運(yùn)行過程中不可避免的會(huì)發(fā)生一些故障(比如外圍傳感器的斷線或者短路),設(shè)備維護(hù)人員希望在故障發(fā)生后,能快速的找到故障的原因,以便最快的采取措施進(jìn)行處理。西門子S7-300/400系列PLC的CPU內(nèi)部有診斷緩沖區(qū),通過在線讀取緩沖區(qū)的數(shù)據(jù)可以獲取故障信息,但是這種方法需要維修人員拿著筆記本電腦到現(xiàn)場(也可以遠(yuǎn)程)連接到CPU中進(jìn)行在線讀取,對(duì)故障的反應(yīng)速度比較慢,也不直觀。有沒有一種方法能在故障發(fā)生后把故障源直接顯示在現(xiàn)場的屏幕上,從而免去了再次連線的繁瑣?今天這篇文章,我們以西門子ET200S的模擬量模塊的傳感器斷線故障為例,介紹如何通過S7的診斷中斷組織OB82來快速獲得診斷信息。

要使用診斷功能,首先模塊本身要支持診斷功能,其次需要在硬件組態(tài)上把診斷功能開啟。比如使用ET200S的2AI 2/4WIRE HF模擬量模塊,該模塊支持?jǐn)嗑€診斷功能。通過勾選“Diagnostics:Wire Break(診斷:斷線)”選項(xiàng),可以開啟通道0和通道1的斷線診斷功能,如下圖:

硬件組態(tài)開啟診斷功能后,把組態(tài)信息下載到CPU中。
若在某個(gè)時(shí)刻通道0發(fā)生了斷線故障,則AI模塊會(huì)向CPU發(fā)出一個(gè)中斷請(qǐng)求。CPU檢測到中斷請(qǐng)求后,會(huì)調(diào)用診斷中斷組織塊OB82進(jìn)行處理。
若此時(shí)PLC的程序中沒有OB82,則PLC會(huì)進(jìn)入停機(jī)(STOP)狀態(tài)。停機(jī)的是保證系統(tǒng)安全,防止意外的發(fā)生。
若編程人員下載了OB82組織塊,但是里面沒有任何處理中斷的代碼,那么PLC不會(huì)停機(jī),而是會(huì)繼續(xù)帶故障運(yùn)行。這種方法可以避免因?yàn)镻LC停機(jī)造成的停線,但是并不推薦。因?yàn)閿嗑€可能產(chǎn)生的危害是未知的,PLC帶故障運(yùn)行存在很大的安全隱患。正確的做法是在OB82中對(duì)中斷請(qǐng)求進(jìn)行處理,獲取中斷地址,判斷故障等級(jí),以進(jìn)行警告或者緊急停機(jī)。
OB82是PLC的操作系統(tǒng)和用戶程序溝通的橋梁,它有很多的臨時(shí)變量,如下圖:

CPU在調(diào)用OB82的時(shí)候,會(huì)將相應(yīng)的臨時(shí)變量賦值。通過讀取相應(yīng)臨時(shí)變量的值,就可以獲取診斷信息。
接下來我們在OB82中寫兩段簡單的代碼,將故障發(fā)生時(shí)模塊的地址和事件等級(jí)保存到一個(gè)全局?jǐn)?shù)據(jù)塊中。
首先,新建一個(gè)全局?jǐn)?shù)據(jù)塊,命名為DB82。在DB82中新建兩個(gè)變量“Diagnostic_Address”和“Event_Class”,如下圖:

然后在OB82中,加入兩段代碼分別對(duì)模塊的地址和事件等級(jí)進(jìn)行保存,如下圖:

通過以上的代碼,我們可以讀取并保存診斷事件的等級(jí)及發(fā)生故障的模塊的地址??梢栽谛枰臅r(shí)候把故障模塊顯示在觸摸屏上,這樣維修人員就可以直觀的發(fā)現(xiàn)問題的所在,以便盡快處理。
OB82還支持很多診斷功能,比如外部低電壓、通信故障、看門狗停止等等,可以根據(jù)實(shí)際需要讀取或保存。
好了,關(guān)于S7-300/400的診斷中斷組織塊OB82就先介紹到這里
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
