梁 杰,呂應明,劉艷強
(1.北京航空航天大學 機械工程及自動化學院,北京 100191;2.北京特種機械研究所,北京 100143)
基于以太網的控制器冗余系統設計
梁 杰1,呂應明2,劉艷強1
(1.北京航空航天大學 機械工程及自動化學院,北京 100191;2.北京特種機械研究所,北京 100143)
隨著工業自動化的高速發展,控制器的可靠性以及傳輸能力成為亟待提升的關鍵技術。將以太網技術引入工業控制系統,提出了一種基于以太網的控制器冗余系統的設計方案。介紹了該系統的組成,以此為基礎研究設計了控制器冗余系統的通信結構,并對控制器軟件的工作流程進行了詳細說明,最后對工作過程中可能出現的兩種異常情況進行了故障分析及系統響應。
以太網控制器;控制器冗余;心跳;狀態掃描
在工業自動化領域中,大型化工、石化、冶金、電力等企業,對控制系統長期有效、可靠運行有著特殊的要求。冗余作為重要的容錯技術之一,是提高整機以及系統可靠性的一種重要設計技術。由于控制器是控制系統的核心,因此控制器實現冗余對于控制系統的高可靠性有著重要作用[1]。
隨著工業自動化的高速發展,控制系統向著高度自動化和智能化方向的轉變,多傳感器以及攝像頭的接入,控制系統對數據的處理量越來越大,控制系統對于控制網絡的傳輸帶寬以及傳輸速度要求越來越高。以太網作為目前使用最廣泛的局域網技術,它在數據傳輸能力方面具有獨特的優勢。對基于以太網的控制器冗余系統設計的研究,旨在設計出一種使用以太網技術的控制器冗余解決方案。該系統使用雙控制器進行控制,通過以太網進行數據傳輸,其工作可靠性高,數據傳輸能力強。
以太網技術具有價格低廉、穩定可靠、通信速率高、軟硬件產品豐富、應用廣泛以及支持技術成熟等優點,已成為最受歡迎的通信網絡之一。將以太網技術應用于工業自動化領域構成的工業控制以太網,簡稱工業以太網或以太網現場總線,是當前工業控制領域的一個重要發展方向。與傳統技術相比,工業以太網具有具有以下優點[2]:
1)傳輸速度快,數據包容量大,傳輸距離長,傳輸效率高;
2)使用通用以太網元器件,性能價格比高;
3)以太網是全開放、全數字化的網絡,遵照網絡協議不同廠商的設備可以很容易實現互聯;
4)以太網能實現控制網絡與企業信息網絡的無縫連接,形成企業級管控一體化的全開放網絡。
基于以太網的主控制器冗余系統是由2臺控制器、1臺交換機、若干現場控制單元組成[3],其系統結構如圖1所示。本設計方案重點實現了控制器冗余,對交換機部分的冗余不作研究。控制器采用雙控制器的冗余設計,兩個控制器同時運行,互為熱備份。兩臺控制器作為一個整體共同執行系統的控制命令,其中一臺為主控制器,一臺為備用控制器[4]。雙控制器經過協商處理,通過交換機向現場控制單元發送控制信息,從而完成對多個現場控制單元的控制。

圖1 控制器冗余系統結構圖
在系統工作過程中,控制器的主從模式可以切換,正常狀態下通過輸入操作來確定誰為主控制器,同一時刻只有主控制器進行邏輯運算,對現場控制單元發送控制命令。兩個控制器相互監視對方以及現場控制器的運行情況。當其中一個控制器出現故障或由于維修原因退出,不能支持系統正常工作時,另一個控制器能及時檢測到當前的狀態,在不需要人工干預的情況下切入單控制器模式,繼續當前狀態完成工作的接管,從而完成整個工作流程。
3.1控制器冗余系統通信結構
在系統工作過程中,兩個控制器之間,以及兩個控制器與現場控制單元之間的通信結構如圖2所示。兩個控制器通過網絡1使用UDP/IP協議進行通信,它們之間相互發送“心跳包”,心跳包為以太網數據包,它的作用是監測控制器故障以及同步兩個控制器的狀態,保持兩個控制器協調工作。心跳包數據幀的結構如表1所示,心跳數據包包括普通的以太網頭,以及控制器工作過程中的狀態數據,其狀態數據描述如表2所示。

圖2 系統通信網絡結構圖
在兩個控制器都處于正常狀態時,兩個控制器都能通過網絡1接收到來自對方的心跳數據,從而確定對方處于正常狀態,此時系統正常工作。當其中一個控制器出現故障或處于維修狀態時,控制器接收不到來自對方的心跳數據,兩控制器之間失去聯系。若主控制器出現故障,備用控制器自動升為主控制器,獲取現場控制單元的控制權限,根據現在的工作狀態繼續完成對現場控制單元的操作,并報警“控制器故障”提醒操作人員及時維修出現故障的控制器。若備用控制器出現故障,主控制器繼續保持主用,同時也報警“控制器故障”。

圖3 “控制數據包”數據幀結構

表1 心跳數據幀結構

表2 心跳狀態數據描述
控制器通過交換機經過網絡2或網絡3使用UDP/IP協議向現場控制單元收發“控制數據包”,控制數據包也為以太網包[2]。控制器通過控制數據包向現場控制單元發送控制命令,并完成對現場控制單元狀態的掃描。控制數據包數據幀的結構如圖3所示,每個控制數據包包括普通以太網頭、控制數據包頭以及控制單元數據。數據區由一個或多個控制單元數據組成,每個控制單元數據由控制單元狀態、控制信息長度以及控制數據組成,它們對應獨立的現場控制單元。
現場控制單元接收到控制數據包后,根據數據包中的控制數據完成相應的控制命令,并把控制單元狀態的值由初值0改為1,再把數據包發送給雙控制器,控制器對返回的數據包進行掃描,主控制器根據控制單元狀態值來確定現場控制單元是否正常工作,備用控制器對控制單元狀態進行備份。
3.2控制器軟件工作流程
控制器軟件是構建控制器冗余系統的核心,實現對整個系統工作狀態的監測、心跳信息的收發、邏輯運算、故障響應和向現場控制單元發送控制命令等功能[4]。控制器軟件由冗余部分程序段和非冗余部分程序段組成,非冗余部分程序段主要包括心跳發送、狀態監測、故障響應和界面顯示,冗余部分程序段主要包括邏輯運算和控制命令發送。在兩個控制器都正常工作時,兩個控制器獨立運行,通過輸入操作來確定主控制器,主控制器執行冗余部分程序段和非冗余部分程序段組成的全部程序段,備用控制器只執行非冗余部分程序段,跳過冗余部分程序段。控制器軟件的內部運行過程如圖4所示。

圖4 控制器軟件工作流程
3.3故障分析及響應
控制器冗余系統在工作過程中可能會出現設備故障以及網絡通信故障,設備故障包括控制器故障和現場控制單元故障,網絡故障包括心跳網絡故障和控制器與現場控制單元連接網絡故障。以上故障都會影響系統的正常運轉,控制系統需要及時對系統運行狀態和異常情況作出判斷,根據判斷的故障類型進行響應及故障報警,保證控制系統能夠繼續工作,并為系統的故障恢復提供依據,提高系統的穩定性與可靠性[5]。
對于如圖2所示的控制器冗余通信結構,判斷故障的依據主要為心跳包的接收,以及對控制數據包中控制單元狀態的掃描。心跳包接收出現異常對應的故障可能為控制器故障或心跳網絡1故障,控制單元狀態掃描出現異常對應的故障可能為現場控制單元故障、網絡2故障、網絡3故障或網絡4故障。
在控制系統工作時,若不能對出現的異常情況正確的判斷故障原因,就會造成雙控制器爭奪系統的控制權限,導致雙控制器都不能正常的工作,或者系統出現邏輯操作異常,造成控制信息發送混亂。下面對系統出現故障時,心跳包接收異常和控制單元狀態掃描異常兩種異常情況進行分析,判斷故障原因以及進行相應的響應。
1)心跳包接收異常
心跳包接收異常可能出現的故障為控制器故障或心跳網絡1故障。在心跳包接收異常時,通過雙控制器與交換機連接的網絡2和網絡3所構成的網絡通道發送心跳確認包,來確認對方控制器能不能正常工作。若確認對方控制器能正常工作,則說明是心跳網絡1出現故障,反之則是對方控制器故障。
在心跳包接收正常的情況下,兩控制器通過心跳包中的狀態數據獲取對方的工作狀態,通過輸入操作來確定主控制器,主備控制器同步協調工作。在心跳包接收異常的情況下,雙控制器通過另一務網絡通道來判斷故障原因。若故障原因為心跳網絡1故障,則保持原來的主備關系,防止操作混亂禁用備用控制器,進入單控制器模式,同時報警“網絡1故障”。若故障原因為控制器故障,則處于正常狀態的控制器接管系統的控制權限,進入單控制器模式,同時報警“控制器故障”。
2)控制單元狀態掃描異常
控制單元狀態掃描異常可能出現的故障為現場控制單元故障、網絡2故障、網絡3故障或網絡4故障。在主控制器對控制單元狀態掃描異常時,通過備用控制器對控制單元經行狀態掃描。若備用控制器掃描結果顯示正常,則說明是主控制器與交換機連接的網絡(網絡2或網絡3)出現故障,對此故障的響應為禁用主控制器,備用控制器升為主用,接管系統的控制權限,同時報警“網絡2或網絡3故障”。若備用控制器掃描結果也顯示異常,此時再通過雙控制器與交換機連接的網絡2和網絡3所構成的網絡通道發送心跳確認包,來確認該通道是否正常。若確認通道正常,則說明是控制單元故障或網絡4故障,對此故障的響應為保持雙控制器的工作狀態,禁用雙控制器的控制權限,同時報警“現場控制單元或網絡4故障”。若確認通道異常,則說明網絡2與網絡3同時故障,對此故障的響應為,保持雙控制器的工作狀態,禁用雙控制器的控制權限,同時報警“網絡2與網絡3故障”,提醒維修人員及時維修,維修后可以繼續當前的工作狀態進行工作。
【】【】
該系統采用雙控制器的冗余控制,雙控制器通過交換機向現場控制單元發送控制命令并進行狀態掃描,主備控制器之間以及控制器與現場控制單元之間都通過以太網進行通信。在此基礎上針對主備控制器之間心跳異常、控制單元狀態掃描異常兩種異常情況,控制器增加了故障分析以及響應,提高了系統控制的可靠性。整個系統相比傳統的控制系統,在可靠性以及通信能力方面具備了更加優異的性能。
[1] 王劍,趙海燕.基于CPLD的控制器冗余設計[J].微計算機信息,2005,13:114-116.
[2] 郇極,劉艷強.工業以太網現成總線EtherCAT驅動程序設計及應用[M].北京:北京航空航天大學,2010:5.
[3] 黃翌,陳麗娟.氣球控制安全中的雙機冗余設計[J].信息與電子工程,2010,03:357-359.
[4] 王飛,曹桂均.雙機熱備系統心跳失效的防護方案[J].鐵路計算機應用,2013,03:35-37.
[5] 劉麗軍,楊耿杰,郭謀發.雙以太網冗余通信系統的設計及應用[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 -),男,山西寧縣人,碩士生,研究方向為嵌入式及數控系統。