梁 杰,呂應(yīng)明,劉艷強(qiáng)
(1.北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京 100191;2.北京特種機(jī)械研究所,北京 100143)
基于以太網(wǎng)的控制器冗余系統(tǒng)設(shè)計(jì)
梁 杰1,呂應(yīng)明2,劉艷強(qiáng)1
(1.北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京 100191;2.北京特種機(jī)械研究所,北京 100143)
隨著工業(yè)自動(dòng)化的高速發(fā)展,控制器的可靠性以及傳輸能力成為亟待提升的關(guān)鍵技術(shù)。將以太網(wǎng)技術(shù)引入工業(yè)控制系統(tǒng),提出了一種基于以太網(wǎng)的控制器冗余系統(tǒng)的設(shè)計(jì)方案。介紹了該系統(tǒng)的組成,以此為基礎(chǔ)研究設(shè)計(jì)了控制器冗余系統(tǒng)的通信結(jié)構(gòu),并對(duì)控制器軟件的工作流程進(jìn)行了詳細(xì)說明,最后對(duì)工作過程中可能出現(xiàn)的兩種異常情況進(jìn)行了故障分析及系統(tǒng)響應(yīng)。
以太網(wǎng)控制器;控制器冗余;心跳;狀態(tài)掃描
在工業(yè)自動(dòng)化領(lǐng)域中,大型化工、石化、冶金、電力等企業(yè),對(duì)控制系統(tǒng)長期有效、可靠運(yùn)行有著特殊的要求。冗余作為重要的容錯(cuò)技術(shù)之一,是提高整機(jī)以及系統(tǒng)可靠性的一種重要設(shè)計(jì)技術(shù)。由于控制器是控制系統(tǒng)的核心,因此控制器實(shí)現(xiàn)冗余對(duì)于控制系統(tǒng)的高可靠性有著重要作用[1]。
隨著工業(yè)自動(dòng)化的高速發(fā)展,控制系統(tǒng)向著高度自動(dòng)化和智能化方向的轉(zhuǎn)變,多傳感器以及攝像頭的接入,控制系統(tǒng)對(duì)數(shù)據(jù)的處理量越來越大,控制系統(tǒng)對(duì)于控制網(wǎng)絡(luò)的傳輸帶寬以及傳輸速度要求越來越高。以太網(wǎng)作為目前使用最廣泛的局域網(wǎng)技術(shù),它在數(shù)據(jù)傳輸能力方面具有獨(dú)特的優(yōu)勢(shì)。對(duì)基于以太網(wǎng)的控制器冗余系統(tǒng)設(shè)計(jì)的研究,旨在設(shè)計(jì)出一種使用以太網(wǎng)技術(shù)的控制器冗余解決方案。該系統(tǒng)使用雙控制器進(jìn)行控制,通過以太網(wǎng)進(jìn)行數(shù)據(jù)傳輸,其工作可靠性高,數(shù)據(jù)傳輸能力強(qiáng)。
以太網(wǎng)技術(shù)具有價(jià)格低廉、穩(wěn)定可靠、通信速率高、軟硬件產(chǎn)品豐富、應(yīng)用廣泛以及支持技術(shù)成熟等優(yōu)點(diǎn),已成為最受歡迎的通信網(wǎng)絡(luò)之一。將以太網(wǎng)技術(shù)應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域構(gòu)成的工業(yè)控制以太網(wǎng),簡稱工業(yè)以太網(wǎng)或以太網(wǎng)現(xiàn)場(chǎng)總線,是當(dāng)前工業(yè)控制領(lǐng)域的一個(gè)重要發(fā)展方向。與傳統(tǒng)技術(shù)相比,工業(yè)以太網(wǎng)具有具有以下優(yōu)點(diǎn)[2]:
1)傳輸速度快,數(shù)據(jù)包容量大,傳輸距離長,傳輸效率高;
2)使用通用以太網(wǎng)元器件,性能價(jià)格比高;
3)以太網(wǎng)是全開放、全數(shù)字化的網(wǎng)絡(luò),遵照網(wǎng)絡(luò)協(xié)議不同廠商的設(shè)備可以很容易實(shí)現(xiàn)互聯(lián);
4)以太網(wǎng)能實(shí)現(xiàn)控制網(wǎng)絡(luò)與企業(yè)信息網(wǎng)絡(luò)的無縫連接,形成企業(yè)級(jí)管控一體化的全開放網(wǎng)絡(luò)。
基于以太網(wǎng)的主控制器冗余系統(tǒng)是由2臺(tái)控制器、1臺(tái)交換機(jī)、若干現(xiàn)場(chǎng)控制單元組成[3],其系統(tǒng)結(jié)構(gòu)如圖1所示。本設(shè)計(jì)方案重點(diǎn)實(shí)現(xiàn)了控制器冗余,對(duì)交換機(jī)部分的冗余不作研究??刂破鞑捎秒p控制器的冗余設(shè)計(jì),兩個(gè)控制器同時(shí)運(yùn)行,互為熱備份。兩臺(tái)控制器作為一個(gè)整體共同執(zhí)行系統(tǒng)的控制命令,其中一臺(tái)為主控制器,一臺(tái)為備用控制器[4]。雙控制器經(jīng)過協(xié)商處理,通過交換機(jī)向現(xiàn)場(chǎng)控制單元發(fā)送控制信息,從而完成對(duì)多個(gè)現(xiàn)場(chǎng)控制單元的控制。
圖1 控制器冗余系統(tǒng)結(jié)構(gòu)圖
在系統(tǒng)工作過程中,控制器的主從模式可以切換,正常狀態(tài)下通過輸入操作來確定誰為主控制器,同一時(shí)刻只有主控制器進(jìn)行邏輯運(yùn)算,對(duì)現(xiàn)場(chǎng)控制單元發(fā)送控制命令。兩個(gè)控制器相互監(jiān)視對(duì)方以及現(xiàn)場(chǎng)控制器的運(yùn)行情況。當(dāng)其中一個(gè)控制器出現(xiàn)故障或由于維修原因退出,不能支持系統(tǒng)正常工作時(shí),另一個(gè)控制器能及時(shí)檢測(cè)到當(dāng)前的狀態(tài),在不需要人工干預(yù)的情況下切入單控制器模式,繼續(xù)當(dāng)前狀態(tài)完成工作的接管,從而完成整個(gè)工作流程。
3.1控制器冗余系統(tǒng)通信結(jié)構(gòu)
在系統(tǒng)工作過程中,兩個(gè)控制器之間,以及兩個(gè)控制器與現(xiàn)場(chǎng)控制單元之間的通信結(jié)構(gòu)如圖2所示。兩個(gè)控制器通過網(wǎng)絡(luò)1使用UDP/IP協(xié)議進(jìn)行通信,它們之間相互發(fā)送“心跳包”,心跳包為以太網(wǎng)數(shù)據(jù)包,它的作用是監(jiān)測(cè)控制器故障以及同步兩個(gè)控制器的狀態(tài),保持兩個(gè)控制器協(xié)調(diào)工作。心跳包數(shù)據(jù)幀的結(jié)構(gòu)如表1所示,心跳數(shù)據(jù)包包括普通的以太網(wǎng)頭,以及控制器工作過程中的狀態(tài)數(shù)據(jù),其狀態(tài)數(shù)據(jù)描述如表2所示。
圖2 系統(tǒng)通信網(wǎng)絡(luò)結(jié)構(gòu)圖
在兩個(gè)控制器都處于正常狀態(tài)時(shí),兩個(gè)控制器都能通過網(wǎng)絡(luò)1接收到來自對(duì)方的心跳數(shù)據(jù),從而確定對(duì)方處于正常狀態(tài),此時(shí)系統(tǒng)正常工作。當(dāng)其中一個(gè)控制器出現(xiàn)故障或處于維修狀態(tài)時(shí),控制器接收不到來自對(duì)方的心跳數(shù)據(jù),兩控制器之間失去聯(lián)系。若主控制器出現(xiàn)故障,備用控制器自動(dòng)升為主控制器,獲取現(xiàn)場(chǎng)控制單元的控制權(quán)限,根據(jù)現(xiàn)在的工作狀態(tài)繼續(xù)完成對(duì)現(xiàn)場(chǎng)控制單元的操作,并報(bào)警“控制器故障”提醒操作人員及時(shí)維修出現(xiàn)故障的控制器。若備用控制器出現(xiàn)故障,主控制器繼續(xù)保持主用,同時(shí)也報(bào)警“控制器故障”。
圖3 “控制數(shù)據(jù)包”數(shù)據(jù)幀結(jié)構(gòu)
表1 心跳數(shù)據(jù)幀結(jié)構(gòu)
表2 心跳狀態(tài)數(shù)據(jù)描述
控制器通過交換機(jī)經(jīng)過網(wǎng)絡(luò)2或網(wǎng)絡(luò)3使用UDP/IP協(xié)議向現(xiàn)場(chǎng)控制單元收發(fā)“控制數(shù)據(jù)包”,控制數(shù)據(jù)包也為以太網(wǎng)包[2]??刂破魍ㄟ^控制數(shù)據(jù)包向現(xiàn)場(chǎng)控制單元發(fā)送控制命令,并完成對(duì)現(xiàn)場(chǎng)控制單元狀態(tài)的掃描??刂茢?shù)據(jù)包數(shù)據(jù)幀的結(jié)構(gòu)如圖3所示,每個(gè)控制數(shù)據(jù)包包括普通以太網(wǎng)頭、控制數(shù)據(jù)包頭以及控制單元數(shù)據(jù)。數(shù)據(jù)區(qū)由一個(gè)或多個(gè)控制單元數(shù)據(jù)組成,每個(gè)控制單元數(shù)據(jù)由控制單元狀態(tài)、控制信息長度以及控制數(shù)據(jù)組成,它們對(duì)應(yīng)獨(dú)立的現(xiàn)場(chǎng)控制單元。
現(xiàn)場(chǎng)控制單元接收到控制數(shù)據(jù)包后,根據(jù)數(shù)據(jù)包中的控制數(shù)據(jù)完成相應(yīng)的控制命令,并把控制單元狀態(tài)的值由初值0改為1,再把數(shù)據(jù)包發(fā)送給雙控制器,控制器對(duì)返回的數(shù)據(jù)包進(jìn)行掃描,主控制器根據(jù)控制單元狀態(tài)值來確定現(xiàn)場(chǎng)控制單元是否正常工作,備用控制器對(duì)控制單元狀態(tài)進(jìn)行備份。
3.2控制器軟件工作流程
控制器軟件是構(gòu)建控制器冗余系統(tǒng)的核心,實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)工作狀態(tài)的監(jiān)測(cè)、心跳信息的收發(fā)、邏輯運(yùn)算、故障響應(yīng)和向現(xiàn)場(chǎng)控制單元發(fā)送控制命令等功能[4]??刂破鬈浖扇哂嗖糠殖绦蚨魏头侨哂嗖糠殖绦蚨谓M成,非冗余部分程序段主要包括心跳發(fā)送、狀態(tài)監(jiān)測(cè)、故障響應(yīng)和界面顯示,冗余部分程序段主要包括邏輯運(yùn)算和控制命令發(fā)送。在兩個(gè)控制器都正常工作時(shí),兩個(gè)控制器獨(dú)立運(yùn)行,通過輸入操作來確定主控制器,主控制器執(zhí)行冗余部分程序段和非冗余部分程序段組成的全部程序段,備用控制器只執(zhí)行非冗余部分程序段,跳過冗余部分程序段??刂破鬈浖膬?nèi)部運(yùn)行過程如圖4所示。
圖4 控制器軟件工作流程
3.3故障分析及響應(yīng)
控制器冗余系統(tǒng)在工作過程中可能會(huì)出現(xiàn)設(shè)備故障以及網(wǎng)絡(luò)通信故障,設(shè)備故障包括控制器故障和現(xiàn)場(chǎng)控制單元故障,網(wǎng)絡(luò)故障包括心跳網(wǎng)絡(luò)故障和控制器與現(xiàn)場(chǎng)控制單元連接網(wǎng)絡(luò)故障。以上故障都會(huì)影響系統(tǒng)的正常運(yùn)轉(zhuǎn),控制系統(tǒng)需要及時(shí)對(duì)系統(tǒng)運(yùn)行狀態(tài)和異常情況作出判斷,根據(jù)判斷的故障類型進(jìn)行響應(yīng)及故障報(bào)警,保證控制系統(tǒng)能夠繼續(xù)工作,并為系統(tǒng)的故障恢復(fù)提供依據(jù),提高系統(tǒng)的穩(wěn)定性與可靠性[5]。
對(duì)于如圖2所示的控制器冗余通信結(jié)構(gòu),判斷故障的依據(jù)主要為心跳包的接收,以及對(duì)控制數(shù)據(jù)包中控制單元狀態(tài)的掃描。心跳包接收出現(xiàn)異常對(duì)應(yīng)的故障可能為控制器故障或心跳網(wǎng)絡(luò)1故障,控制單元狀態(tài)掃描出現(xiàn)異常對(duì)應(yīng)的故障可能為現(xiàn)場(chǎng)控制單元故障、網(wǎng)絡(luò)2故障、網(wǎng)絡(luò)3故障或網(wǎng)絡(luò)4故障。
在控制系統(tǒng)工作時(shí),若不能對(duì)出現(xiàn)的異常情況正確的判斷故障原因,就會(huì)造成雙控制器爭(zhēng)奪系統(tǒng)的控制權(quán)限,導(dǎo)致雙控制器都不能正常的工作,或者系統(tǒng)出現(xiàn)邏輯操作異常,造成控制信息發(fā)送混亂。下面對(duì)系統(tǒng)出現(xiàn)故障時(shí),心跳包接收異常和控制單元狀態(tài)掃描異常兩種異常情況進(jìn)行分析,判斷故障原因以及進(jìn)行相應(yīng)的響應(yīng)。
1)心跳包接收異常
心跳包接收異常可能出現(xiàn)的故障為控制器故障或心跳網(wǎng)絡(luò)1故障。在心跳包接收異常時(shí),通過雙控制器與交換機(jī)連接的網(wǎng)絡(luò)2和網(wǎng)絡(luò)3所構(gòu)成的網(wǎng)絡(luò)通道發(fā)送心跳確認(rèn)包,來確認(rèn)對(duì)方控制器能不能正常工作。若確認(rèn)對(duì)方控制器能正常工作,則說明是心跳網(wǎng)絡(luò)1出現(xiàn)故障,反之則是對(duì)方控制器故障。
在心跳包接收正常的情況下,兩控制器通過心跳包中的狀態(tài)數(shù)據(jù)獲取對(duì)方的工作狀態(tài),通過輸入操作來確定主控制器,主備控制器同步協(xié)調(diào)工作。在心跳包接收異常的情況下,雙控制器通過另一務(wù)網(wǎng)絡(luò)通道來判斷故障原因。若故障原因?yàn)樾奶W(wǎng)絡(luò)1故障,則保持原來的主備關(guān)系,防止操作混亂禁用備用控制器,進(jìn)入單控制器模式,同時(shí)報(bào)警“網(wǎng)絡(luò)1故障”。若故障原因?yàn)榭刂破鞴收希瑒t處于正常狀態(tài)的控制器接管系統(tǒng)的控制權(quán)限,進(jìn)入單控制器模式,同時(shí)報(bào)警“控制器故障”。
2)控制單元狀態(tài)掃描異常
控制單元狀態(tài)掃描異??赡艹霈F(xiàn)的故障為現(xiàn)場(chǎng)控制單元故障、網(wǎng)絡(luò)2故障、網(wǎng)絡(luò)3故障或網(wǎng)絡(luò)4故障。在主控制器對(duì)控制單元狀態(tài)掃描異常時(shí),通過備用控制器對(duì)控制單元經(jīng)行狀態(tài)掃描。若備用控制器掃描結(jié)果顯示正常,則說明是主控制器與交換機(jī)連接的網(wǎng)絡(luò)(網(wǎng)絡(luò)2或網(wǎng)絡(luò)3)出現(xiàn)故障,對(duì)此故障的響應(yīng)為禁用主控制器,備用控制器升為主用,接管系統(tǒng)的控制權(quán)限,同時(shí)報(bào)警“網(wǎng)絡(luò)2或網(wǎng)絡(luò)3故障”。若備用控制器掃描結(jié)果也顯示異常,此時(shí)再通過雙控制器與交換機(jī)連接的網(wǎng)絡(luò)2和網(wǎng)絡(luò)3所構(gòu)成的網(wǎng)絡(luò)通道發(fā)送心跳確認(rèn)包,來確認(rèn)該通道是否正常。若確認(rèn)通道正常,則說明是控制單元故障或網(wǎng)絡(luò)4故障,對(duì)此故障的響應(yīng)為保持雙控制器的工作狀態(tài),禁用雙控制器的控制權(quán)限,同時(shí)報(bào)警“現(xiàn)場(chǎng)控制單元或網(wǎng)絡(luò)4故障”。若確認(rèn)通道異常,則說明網(wǎng)絡(luò)2與網(wǎng)絡(luò)3同時(shí)故障,對(duì)此故障的響應(yīng)為,保持雙控制器的工作狀態(tài),禁用雙控制器的控制權(quán)限,同時(shí)報(bào)警“網(wǎng)絡(luò)2與網(wǎng)絡(luò)3故障”,提醒維修人員及時(shí)維修,維修后可以繼續(xù)當(dāng)前的工作狀態(tài)進(jìn)行工作。
【】【】
該系統(tǒng)采用雙控制器的冗余控制,雙控制器通過交換機(jī)向現(xiàn)場(chǎng)控制單元發(fā)送控制命令并進(jìn)行狀態(tài)掃描,主備控制器之間以及控制器與現(xiàn)場(chǎng)控制單元之間都通過以太網(wǎng)進(jìn)行通信。在此基礎(chǔ)上針對(duì)主備控制器之間心跳異常、控制單元狀態(tài)掃描異常兩種異常情況,控制器增加了故障分析以及響應(yīng),提高了系統(tǒng)控制的可靠性。整個(gè)系統(tǒng)相比傳統(tǒng)的控制系統(tǒng),在可靠性以及通信能力方面具備了更加優(yōu)異的性能。
[1] 王劍,趙海燕.基于CPLD的控制器冗余設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,13:114-116.
[2] 郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)成總線EtherCAT驅(qū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué),2010:5.
[3] 黃翌,陳麗娟.氣球控制安全中的雙機(jī)冗余設(shè)計(jì)[J].信息與電子工程,2010,03:357-359.
[4] 王飛,曹桂均.雙機(jī)熱備系統(tǒng)心跳失效的防護(hù)方案[J].鐵路計(jì)算機(jī)應(yīng)用,2013,03:35-37.
[5] 劉麗軍,楊耿杰,郭謀發(fā).雙以太網(wǎng)冗余通信系統(tǒng)的設(shè)計(jì)及應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2005,07:15-16.
Design of controller redundancy system based on ethernet
LIANG Jie1, LYU Ying-ming2, LIU Yan-qiang1
TP311
A
1009-0134(2016)10-0061-03
2016-08-03
梁杰(1992 -),男,山西寧縣人,碩士生,研究方向?yàn)榍度胧郊皵?shù)控系統(tǒng)。