1 引言
PLC作為一種成熟穩(wěn)定可靠的控制器,目前已經(jīng)在工業(yè)控制中得到了越來越廣泛的應(yīng)用。PLC系統(tǒng)的設(shè)計(jì)直接影響著工業(yè)控制系統(tǒng)的安全可靠運(yùn)行。一個(gè)完善的PLC系統(tǒng)除了能夠正常運(yùn)行,滿足工業(yè)控制的要求,還必須能在系統(tǒng)出現(xiàn)故障時(shí)及時(shí)進(jìn)行故障診斷和故障處理。故障自診斷功能是工業(yè)控制系統(tǒng)的智能化的一個(gè)重要標(biāo)志,對(duì)于工業(yè)控制具有較高的意義和實(shí)用價(jià)值。
故障診斷一般有兩種途徑:故障樹方法和專家系統(tǒng)方法。故障樹方法利用系統(tǒng)的故障邏輯結(jié)構(gòu)進(jìn)行邏輯推理,由錯(cuò)誤的輸出找到可能的輸入錯(cuò)誤。這種方法比較適用于系統(tǒng)結(jié)構(gòu)相對(duì)簡(jiǎn)單,各部分耦合少的情況。專家系統(tǒng)方法通過建立系統(tǒng)故障的知識(shí)庫與推理機(jī),計(jì)算機(jī)借助現(xiàn)場(chǎng)的數(shù)據(jù)利用知識(shí)庫和推理機(jī)進(jìn)行深入的邏輯推理,找出故障原因。這種方法適用于系統(tǒng)結(jié)構(gòu)復(fù)雜,各部分耦合強(qiáng)的大型工業(yè)系統(tǒng)。
本文根據(jù)故障樹推理與專家經(jīng)驗(yàn)規(guī)則推理相結(jié)合的方法,以某火電廠輸煤控制系統(tǒng)的設(shè)計(jì)為例,介紹了一種利用PLC和上位計(jì)算機(jī)進(jìn)行故障診斷的PLC系統(tǒng)設(shè)計(jì)。
2 系統(tǒng)設(shè)計(jì)
故障診斷系統(tǒng)建立在基于PLC和上位計(jì)算機(jī)組成的控制系統(tǒng)上。PLC在故障診斷系統(tǒng)中的功能主要是完成輸煤系統(tǒng)設(shè)備故障信號(hào)檢測(cè)、預(yù)處理,轉(zhuǎn)化存儲(chǔ)并傳輸給上位計(jì)算機(jī)。上位計(jì)算機(jī)由于具有強(qiáng)大的科學(xué)計(jì)算功能,利用專家知識(shí)和專家?guī)欤瓿蓮墓收咸卣鞯焦收显虻淖R(shí)別工作。并通過人機(jī)界面,給出故障定位,報(bào)告和解釋故障診斷結(jié)果,并為操作員給出相應(yīng)的排除故障的建議。
3 PLC程序設(shè)計(jì)
在進(jìn)行故障診斷設(shè)計(jì)時(shí),首先必須對(duì)整個(gè)系統(tǒng)可能會(huì)發(fā)生的故障進(jìn)行分析,得到系統(tǒng)的故障層次結(jié)構(gòu),利用這種層次結(jié)構(gòu)進(jìn)行故障診斷部分的設(shè)計(jì)。以火電廠輸煤控制系統(tǒng)的故障結(jié)構(gòu)為例。為了描述簡(jiǎn)單,這里作了一定的簡(jiǎn)化。圖1為系統(tǒng)的故障層次結(jié)構(gòu)。
系統(tǒng)故障結(jié)構(gòu)的層次性為故障診斷提供了一個(gè)合理的層次模型。在進(jìn)行系統(tǒng)的PLC梯形圖程序設(shè)計(jì)時(shí),應(yīng)充分考慮到故障結(jié)構(gòu)的層次,合理安排邏輯流程。在引入故障輸入點(diǎn)時(shí)應(yīng)注意:必須將系統(tǒng)所有可能引起故障的檢測(cè)點(diǎn)引入PLC,以便系統(tǒng)能及時(shí)進(jìn)行故障處理;應(yīng)在系統(tǒng)允許的條件下盡可能多的將最底層的故障輸入信息引入PLC的程序中,以便得到更多的故障檢測(cè)信息為系統(tǒng)的故障自診斷提供服務(wù)。
(1) 故障點(diǎn)的記錄
為了得到系統(tǒng)的故障情況實(shí)現(xiàn)系統(tǒng)的故障自診斷,PLC必須將所有故障檢測(cè)點(diǎn)的狀態(tài)反映給內(nèi)部寄存器,圖2是用來記錄故障點(diǎn)的部分程序。
IR4.02是輸入的IO節(jié)點(diǎn),表示A側(cè)皮帶信號(hào),當(dāng)輸煤系統(tǒng)使用A側(cè)皮帶正常運(yùn)行時(shí)4.02的值為1,當(dāng)4.02變?yōu)?時(shí),說明A側(cè)皮帶信號(hào)出了故障,此時(shí)利用上升沿微分指令記錄這次的信號(hào)跳變。這樣這次事故就記錄在IR31.00中。程序設(shè)計(jì)中將IR31作為記錄底層故障信息的寄存器,由于內(nèi)部寄存器IR有16位,所以能夠記錄16種不同的故障原因。如果有更多的故障需要記錄,可以設(shè)置多個(gè)寄存器字。需要說明的是,有時(shí)引起故障的原因可能不止一個(gè),往往一個(gè)故障會(huì)引起另一些故障的發(fā)生,因此還有關(guān)鍵的一點(diǎn)是程序要能記錄最先發(fā)生的故障。這也需要通過PLC編程實(shí)現(xiàn),程序只對(duì)最開始發(fā)生的故障敏感。
(2) 多次故障事件的記錄
由于系統(tǒng)實(shí)際長(zhǎng)時(shí)間的運(yùn)行中,可能會(huì)出現(xiàn)多次故障,為了檢修和維護(hù)方便,還需要PLC能夠?qū)⒍啻喂收鲜录涗浵聛?。OMRON C200H型PLC的數(shù)據(jù)存儲(chǔ)區(qū)(DM區(qū))可以間接尋址,利用這一點(diǎn),可以在DM區(qū)劃出一定的區(qū)域,用來記錄每次故障事件,包括故障類型和事件發(fā)生的時(shí)間(日期,小時(shí),分鐘,秒)。這一段DM區(qū)域可以循環(huán)記錄,實(shí)際使用中記錄了最后50次故障的情況,這些記錄是系統(tǒng)運(yùn)行的重要資料,方便了運(yùn)行人員了解設(shè)備情況,對(duì)其進(jìn)行檢修和維護(hù)。
(3) 模擬量故障的診斷
對(duì)于模擬量信號(hào)例如犁煤車,給煤車電機(jī)電流的故障診斷,首先利用模擬量模塊,接收來自電流變送器的模擬信號(hào),將其轉(zhuǎn)換為數(shù)字信號(hào),然后與整定值或系統(tǒng)允許的極限值比較,若在允許范圍之內(nèi)則表明對(duì)應(yīng)的設(shè)備處于正常運(yùn)行狀態(tài),如果實(shí)際值接近或達(dá)到極限值,則為不正常狀態(tài)。判斷故障發(fā)生與否的極限值根據(jù)實(shí)際系統(tǒng)相應(yīng)的參數(shù)變化范圍確定。
(4) 各種故障信息的串行通信
上位機(jī)通過串行通訊及時(shí)讀取PLC的內(nèi)部寄存器區(qū)的各種故障信息。利用PLC的RS232通信接口,可與上位計(jì)算機(jī)進(jìn)行Host Link方式串行通信。通信時(shí),上位計(jì)算機(jī)首先向PLC發(fā)出一幀命令幀,包括操作命令、寄存器類型、起始地址與要讀取的寄存區(qū)數(shù)目等。PLC收到命令幀后會(huì)做出響應(yīng),如果沒有錯(cuò)誤則向上位計(jì)算機(jī)發(fā)出響應(yīng)幀,響應(yīng)幀中包含了上位機(jī)需要查詢的寄存器值。
上位計(jì)算機(jī)通過讀取數(shù)據(jù)寄存區(qū)的值來獲取當(dāng)前PLC的工作狀況,同時(shí)上位計(jì)算機(jī)對(duì)PLC的控制也可通過對(duì)該區(qū)的寫操作來完成。具體的通信實(shí)現(xiàn)可以參考相關(guān)資料,這里不作詳細(xì)論述。
4 借鑒專家系統(tǒng)故障診斷方法的實(shí)現(xiàn)
系統(tǒng)故障結(jié)構(gòu)的層次性為故障診斷提供了一個(gè)清晰的層次模型,可以利用基于模型的故障樹法。但是在進(jìn)行比較詳盡的故障診斷以及系統(tǒng)故障存在耦合時(shí),僅僅使用故障樹法是不夠的,必須借鑒專家系統(tǒng)的方法。
(1) 面向?qū)ο蟮摹爸R(shí)對(duì)象”, 大大提高了故障診斷的推理效率
在傳統(tǒng)的專家系統(tǒng)中,知識(shí)被組織成知識(shí)庫的形式,推理機(jī)進(jìn)行推理時(shí),要從知識(shí)庫表示的所有空間中搜索所需的知識(shí)。這種方法有搜索空間大,推理效率低的缺點(diǎn)。“知識(shí)對(duì)象”的概念可以解決這一問題?!爸R(shí)對(duì)象”是一個(gè)邏輯概念,它利用面向?qū)ο蟮姆椒?,將知識(shí)源和黑板都表達(dá)為對(duì)象,在知識(shí)對(duì)象的內(nèi)部封裝了專家系統(tǒng)和推理機(jī)、解釋器。當(dāng)相應(yīng)的知識(shí)對(duì)象被激活后,就在對(duì)象內(nèi)部進(jìn)行推理,大大提高了推理效率。根據(jù)系統(tǒng)的實(shí)際情況和故障推理的過程,在這里知識(shí)對(duì)象被具體化為故障節(jié)點(diǎn)。故障節(jié)點(diǎn)是進(jìn)行診斷推理的基本單位,診斷信息在故障節(jié)點(diǎn)間層層傳遞,故障節(jié)點(diǎn)內(nèi)部利用這些信息進(jìn)行推理并最終確定故障原因。
圖3為系統(tǒng)部分故障節(jié)點(diǎn)的層次結(jié)構(gòu)。圖3可以看出,故障節(jié)點(diǎn)在結(jié)構(gòu)上以虛線為分界線分為兩個(gè)部分。上一部分層次清晰,在這一部分可以采用基于故障模型的故障樹方法;下一部分由于結(jié)構(gòu)復(fù)雜,耦合性較強(qiáng),構(gòu)造模型困難,可采用專家系統(tǒng)的推導(dǎo)方法。
故障節(jié)點(diǎn)呈網(wǎng)狀分布,1個(gè)節(jié)點(diǎn)可能有1個(gè)或多個(gè)父節(jié)點(diǎn),也可能有1個(gè)或多個(gè)子節(jié)點(diǎn)。子節(jié)點(diǎn)和父節(jié)點(diǎn)之間的關(guān)系由故障層次和子節(jié)點(diǎn)故障層次來表示。如節(jié)點(diǎn)1的子節(jié)點(diǎn)故障層次為1,而節(jié)點(diǎn)2和節(jié)點(diǎn)3的故障層次為1,則節(jié)點(diǎn)2和節(jié)點(diǎn)3是節(jié)點(diǎn)1的子節(jié)點(diǎn)。故障層次和子節(jié)點(diǎn)故障層次不僅指明了故障節(jié)點(diǎn)結(jié)構(gòu)上的層次,而且也隱含了推理規(guī)則。
(2) 對(duì)象類型與推理節(jié)點(diǎn)
對(duì)象類型表示該故障節(jié)點(diǎn)在故障推理中的作用,它可分為3類:根節(jié)點(diǎn),葉節(jié)點(diǎn),推理節(jié)點(diǎn)。根節(jié)點(diǎn)的故障由它的子節(jié)點(diǎn)產(chǎn)生,應(yīng)到其子節(jié)點(diǎn)中去繼續(xù)推理。葉節(jié)點(diǎn)是底層故障。葉節(jié)點(diǎn)沒有子節(jié)點(diǎn)。推理節(jié)點(diǎn)是故障診斷規(guī)則最為集中的節(jié)點(diǎn),檢測(cè)節(jié)點(diǎn)可以視為推理節(jié)點(diǎn)的子節(jié)點(diǎn),它為推理節(jié)點(diǎn)的推理過程提供相關(guān)的信息。我們?cè)谕评砉?jié)點(diǎn)并不是判斷該節(jié)點(diǎn)是否存在故障,而是利用推理節(jié)點(diǎn)封裝的規(guī)則庫與推理機(jī),結(jié)合檢測(cè)節(jié)點(diǎn)提供的信息進(jìn)行故障推理,找出故障原因。
(3) 故障節(jié)點(diǎn)的檢測(cè)方式
地址段是節(jié)點(diǎn)的位置(本系統(tǒng)中是PLC中的寄存器)。數(shù)據(jù)段根據(jù)用戶的需要可以為一個(gè)或幾個(gè),數(shù)據(jù)段中數(shù)據(jù)的定義與節(jié)點(diǎn)的性質(zhì)有關(guān)。檢測(cè)方式表明在該節(jié)點(diǎn)系統(tǒng)進(jìn)行何種操作。主程序根據(jù)故障節(jié)點(diǎn)的檢測(cè)方式選取相應(yīng)的處理函數(shù)。該函數(shù)是檢測(cè)手段與推理規(guī)則的結(jié)合,故可稱之為檢測(cè)/推理函數(shù)。一方面它可以檢測(cè)故障節(jié)點(diǎn)本身的狀態(tài),另一方面使用推理機(jī)制進(jìn)一步推斷故障原因。性質(zhì)類似的節(jié)點(diǎn)使用相同的檢測(cè)/推理函數(shù),利用地址段和數(shù)據(jù)段中的值加以區(qū)別。
(4) 各節(jié)點(diǎn)的注釋段要有相應(yīng)幫助信息
各節(jié)點(diǎn)的注釋段不僅能記錄故障的原因和維修方法,還可以記錄其他的幫助信息。有時(shí)因系統(tǒng)的檢測(cè)手段不完備,或規(guī)則不完全,推導(dǎo)過程要進(jìn)行人機(jī)對(duì)話。這時(shí)候如果節(jié)點(diǎn)的注釋段中有相應(yīng)幫助信息,可以給用戶以提示或指導(dǎo)用戶進(jìn)行操作,使推理能順利進(jìn)行。
本系統(tǒng)的故障診斷通過在上位計(jì)算機(jī)上用VC6.0開發(fā)的應(yīng)用程序?qū)崿F(xiàn),集成在上位機(jī)監(jiān)控系統(tǒng)中。在運(yùn)行中給操作人員提示,指導(dǎo)用戶進(jìn)行操作,了解設(shè)備狀態(tài),判斷故障發(fā)生原因,并可給出相應(yīng)的維修建議。用戶也可以對(duì)故障診斷進(jìn)行指導(dǎo)和修正。
5 結(jié)束語
按以上故障診斷原理構(gòu)造的故障診斷系統(tǒng)在火電廠輸煤PLC控制系統(tǒng)中得到了應(yīng)用。從實(shí)際運(yùn)行來看,故障診斷系統(tǒng)能準(zhǔn)確而迅速地判斷出故障的原因,方便運(yùn)行人員維護(hù)和檢修,大大地提高了控制系統(tǒng)的穩(wěn)定性和智能化水平。這種設(shè)計(jì)對(duì)類似的工業(yè)控制系統(tǒng)提供了一定的參考。