利用PLC設計故障診斷系統
1 引言
plc作為一種成熟穩定可靠的控制器,目前已經在工業控制中得到了越來越廣泛的應用。plc系統的設計直接影響著工業控制系統的安全可靠運行。一個完善的plc系統除了能夠正常運行,滿足工業控制的要求,還必須能在系統出現故障時及時進行故障診斷和故障處理。故障自診斷功能是工業控制系統的智能化的一個重要標志,對于工業控制具有較高的意義和實用價值。
故障診斷一般有兩種途徑:故障樹方法和專家系統方法。故障樹方法利用系統的故障邏輯結構進行邏輯推理,由錯誤的輸出找到可能的輸入錯誤。這種方法比較適用于系統結構相對簡單,各部分耦合少的情況。專家系統方法通過建立系統故障的知識庫與推理機,計算機借助現場的數據利用知識庫和推理機進行深入的邏輯推理,找出故障原因。這種方法適用于系統結構復雜,各部分耦合強的大型工業系統。
本文根據故障樹推理與專家經驗規則推理相結合的方法,以某火電廠輸煤控制系統的設計為例,介紹了一種利用plc和上位計算機進行故障診斷的plc系統設計。
2 系統設計
故障診斷系統建立在基于plc和上位計算機組成的控制系統上。plc在故障診斷系統中的功能主要是完成輸煤系統設備故障信號檢測、預處理,轉化存儲并傳輸給上位計算機。上位計算機由于具有強大的科學計算功能,利用專家知識和專家庫,完成從故障特征到故障原因的識別工作。并通過人機界面,給出故障定位,報告和解釋故障診斷結果,并為操作員給出相應的排除故障的建議。
3 plc程序設計
在進行故障診斷設計時,首先必須對整個系統可能會發生的故障進行分析,得到系統的故障層次結構,利用這種層次結構進行故障診斷部分的設計。以火電廠輸煤控制系統的故障結構為例。為了描述簡單,這里作了一定的簡化。圖1為系統的故障層次結構。

系統故障結構的層次性為故障診斷提供了一個合理的層次模型。在進行系統的plc梯形圖程序設計時,應充分考慮到故障結構的層次,合理安排邏輯流程。在引入故障輸入點時應注意:必須將系統所有可能引起故障的檢測點引入plc,以便系統能及時進行故障處理;應在系統允許的條件下盡可能多的將最底層的故障輸入信息引入plc的程序中,以便得到更多的故障檢測信息為系統的故障自診斷提供服務。
(1) 故障點的記錄
為了得到系統的故障情況實現系統的故障自診斷,plc必須將所有故障檢測點的狀態反映給內部寄存器,圖2是用來記錄故障點的部分程序。
ir4.02是輸入的io節點,表示a側皮帶信號,當輸煤系統使用a側皮帶正常運行時4.02的值為1,當4.02變為0時,說明a側皮帶信號出了故障,此時利用上升沿微分指令記錄這次的信號跳變。這樣這次事故就記錄在ir31.00中。程序設計中將ir31作為記錄底層故障信息的寄存器,由于內部寄存器ir有16位,所以能夠記錄16種不同的故障原因。如果有更多的故障需要記錄,可以設置多個寄存器字。需要說明的是,有時引起故障的原因可能不止一個,往往一個故障會引起另一些故障的發生,因此還有關鍵的一點是程序要能記錄最先發生的故障。這也需要通過plc編程實現,程序只對最開始發生的故障敏感。

(2) 多次故障事件的記錄
由于系統實際長時間的運行中,可能會出現多次故障,為了檢修和維護方便,還需要plc能夠將多次故障事件記錄下來。omronc200h型plc的數據存儲區(dm區)可以間接尋址,利用這一點,可以在dm區劃出一定的區域,用來記錄每次故障事件,包括故障類型和事件發生的時間(日期,小時,分鐘,秒)。這一段dm區域可以循環記錄,實際使用中記錄了最后50次故障的情況,這些記錄是系統運行的重要資料,方便了運行人員了解設備情況,對其進行檢修和維護。
(3) 模擬量故障的診斷
對于模擬量信號例如犁煤車,給煤車電機電流的故障診斷,首先利用模擬量模塊,接收來自電流變送器的模擬信號,將其轉換為數字信號,然后與整定值或系統允許的極限值比較,若在允許范圍之內則表明對應的設備處于正常運行狀態,如果實際值接近或達到極限值,則為不正常狀態。判斷故障發生與否的極限值根據實際系統相應的參數變化范圍確定。
(4) 各種故障信息的串行通信
上位機通過串行通訊及時讀取plc的內部寄存器區的各種故障信息。利用plc的rs232通信接口,可與上位計算機進行hostlink方式串行通信。通信時,上位計算機首先向plc發出一幀命令幀,包括操作命令、寄存器類型、起始地址與要讀取的寄存區數目等。plc收到命令幀后會做出響應,如果沒有錯誤則向上位計算機發出響應幀,響應幀中包含了上位機需要查詢的寄存器值。
上位計算機通過讀取數據寄存區的值來獲取當前plc的工作狀況,同時上位計算機對plc的控制也可通過對該區的寫操作來完成。具體的通信實現可以參考相關資料,這里不作詳細論述。
4 借鑒專家系統故障診斷方法的實現
系統故障結構的層次性為故障診斷提供了一個清晰的層次模型,可以利用基于模型的故障樹法。但是在進行比較詳盡的故障診斷以及系統故障存在耦合時,僅僅使用故障樹法是不夠的,必須借鑒專家系統的方法。
(1) 面向對象的“知識對象”, 大大提高了故障診斷的推理效率
在傳統的專家系統中,知識被組織成知識庫的形式,推理機進行推理時,要從知識庫表示的所有空間中搜索所需的知識。這種方法有搜索空間大,推理效率低的缺點。“知識對象”的概念可以解決這一問題。“知識對象”是一個邏輯概念,它利用面向對象的方法,將知識源和黑板都表達為對象,在知識對象的內部封裝了專家系統和推理機、解釋器。當相應的知識對象被激活后,就在對象內部進行推理,大大提高了推理效率。根據系統的實際情況和故障推理的過程,在這里知識對象被具體化為故障節點。故障節點是進行診斷推理的基本單位,診斷信息在故障節點間層層傳遞,故障節點內部利用這些信息進行推理并最終確定故障原因。
圖3為系統部分故障節點的層次結構。圖3可以看出,故障節點在結構上以虛線為分界線分為兩個部分。上一部分層次清晰,在這一部分可以采用基于故障模型的故障樹方法;下一部分由于結構復雜,耦合性較強,構造模型困難,可采用專家系統的推導方法。

故障節點呈網狀分布,1個節點可能有1個或多個父節點,也可能有1個或多個子節點。子節點和父節點之間的關系由故障層次和子節點故障層次來表示。如節點1的子節點故障層次為1,而節點2和節點3的故障層次為1,則節點2和節點3是節點1的子節點。故障層次和子節點故障層次不僅指明了故障節點結構上的層次,而且也隱含了推理規則。
(2) 對象類型與推理節點
對象類型表示該故障節點在故障推理中的作用,它可分為3類:根節點,葉節點,推理節點。根節點的故障由它的子節點產生,應到其子節點中去繼續推理。葉節點是底層故障。葉節點沒有子節點。推理節點是故障診斷規則最為集中的節點,檢測節點可以視為推理節點的子節點,它為推理節點的推理過程提供相關的信息。我們在推理節點并不是判斷該節點是否存在故障,而是利用推理節點封裝的規則庫與推理機,結合檢測節點提供的信息進行故障推理,找出故障原因。
(3) 故障節點的檢測方式
地址段是節點的位置(本系統中是plc中的寄存器)。數據段根據用戶的需要可以為一個或幾個,數據段中數據的定義與節點的性質有關。檢測方式表明在該節點系統進行何種操作。主程序根據故障節點的檢測方式選取相應的處理函數。該函數是檢測手段與推理規則的結合,故可稱之為檢測/推理函數。一方面它可以檢測故障節點本身的狀態,另一方面使用推理機制進一步推斷故障原因。性質類似的節點使用相同的檢測/推理函數,利用地址段和數據段中的值加以區別。
(4) 各節點的注釋段要有相應幫助信息
各節點的注釋段不僅能記錄故障的原因和維修方法,還可以記錄其他的幫助信息。有時因系統的檢測手段不完備,或規則不完全,推導過程要進行人機對話。這時候如果節點的注釋段中有相應幫助信息,可以給用戶以提示或指導用戶進行操作,使推理能順利進行。
本系統的故障診斷通過在上位計算機上用vc6.0開發的應用程序實現,集成在上位機監控系統中。在運行中給操作人員提示,指導用戶進行操作,了解設備狀態,判斷故障發生原因,并可給出相應的維修建議。用戶也可以對故障診斷進行指導和修正。
5 結束語
按以上故障診斷原理構造的故障診斷系統在火電廠輸煤plc控制系統中得到了應用。從實際運行來看,故障診斷系統能準確而迅速地判斷出故障的原因,方便運行人員維護和檢修,大大地提高了控制系統的穩定性和智能化水平。這種設計對類似的工業控制系統提供了一定的參考。
文章版權歸西部工控xbgk所有,未經許可不得轉載。