劉成俊,彭文才,趙 涌
(南瑞集團公司(國網電力科學研究院),南京 211106)
可編程邏輯控制器PLC主要用于采集生產過程的信號,經過邏輯處理及運算,對被控對象進行調節和控制,實現高效優質運行。PLC硬件一般采用機架式模塊化結構設計,機架用于安裝模塊并提供彼此間互聯的總線,模塊按功能設計,包括電源供應、信息處理與運算、通訊、信號采集、控制輸出等。PLC軟件通常基于IEC61131-3標準提供梯形圖、結構化文本等編程語言,并將PID等關鍵控制算法規范化、模塊化,使用方便,且有利于提高編程質量。由于PLC硬件可配置、軟件可編程,軟硬件的靈活性充分滿足各種控制系統要求而被大量應用。
工業領域中的電力、石油化工、鋼鐵冶煉、軌道交通等關系國計民生的生產過程都是長期不間斷運行,對作為其控制系統核心的PLC在穩定性和可靠性方面提出了很高的要求。在PLC各個部件都經過反復試驗確保穩定性的前提下,采用冗余技術提高PLC可靠性是簡單而有效的方法。冗余會增加硬件投資和系統復雜度,因此,需要綜合考慮性能要求、重要程度,作出高效易行的冗余設計。
在滿足基本功能要求的設備之外,重復增加部分或全部設備,這配置多余設備的方式就是冗余。冗余分類方法很多,按冗余部件的數量比例分為1∶1、1∶n等多種冗余;按冗余部件的層次可分為元件級、模塊級和系統級冗余;按冗余部件的設計原理和實現方法是否相同,可分為同型冗余和異型冗余。
熱備即“熱備用”,是冗余部件的運行方式,主要相對“冷備用”而言。“冷備用”是指備用設備平時不運行,當運行的主設備出現故障時,需要人為去投入備用設備,退出主設備,隔離故障;“熱備用”是指備用設備與主設備同時運行,當主設備出現故障時,系統自動投入備用設備,將故障設備轉為備用或退出[1]。熱備按照負載分擔情況分為2種模式,一種是online模式,主用和備用設備分擔不同的任務;一種是standby模式,主用設備運行全部任務,備用設備只監測但不承擔運行任務,即主從熱備方式。
當前,主流大中型PLC的冗余普遍針對關鍵部件采取1∶1基于模件級雙重化配置,實現雙機主從熱備運行。從而避免PLC單模塊故障引發停機等事故,同時方便系統在線維護、升級,提高系統平均無故障時間(MTBF),縮短平均故障修復時間(MTTR)[2]。
(1)確定雙機各自的主、從狀態;
(2)主機向從機實時備份同步數據信息;
(3)雙機分別進行自診斷;
(4)條件滿足時進行雙機主從切換。
運行過程中主機定時或按周期把實時數據信息備份到從機,以便主從切換后,采用相同的數據繼續運行,實現無擾動切換[3]。
主、從機在運行過程中定期對自身硬件、關鍵任務的運行情況進行檢測,依照設定的標準判斷是否出現故障,并給出診斷信息。故障自診斷為冗余設備的狀態轉換提供了判斷依據。
冗余PLC出現主從熱備之外的異常狀態,根據設計的轉換機制,使系統轉入相對安全的狀態,將故障影響降到最低。
主機關鍵任務發生故障,若從機自檢正常,通過主從切換,從機升級為主機,而故障設備降為備用或退出運行,并報警提示需要維護。
系統運行時,帶電插拔更換機架上的故障模塊,不影響其它模塊正常工作,新更換的模塊自動加載運行。
根據上述PLC熱備冗余的關鍵技術,結合主流通用PLC產品,選取典型的冗余模式,介紹其在體系架構、電源、CPU模塊、通訊等方面的冗余設計,以及為方便冗余PLC在線升級維護而設計的主從文件拷貝功能。
體系架構上,冗余PLC對關鍵環節和薄弱環節采用雙重化配置,典型的冗余架構如圖1所示。

圖1 冗余PLC典型體系架構Fig.1 Typical construct of redundant PLC
主機架上的模塊負責信息處理、運算控制、通訊管理,集中了PLC的主要功能,因此主機架采用1∶1完全冗余配置。每個主機架與擴展機架間的通訊采用雙通道冗余通訊總線,提高系統通訊可靠性。PLC的2塊CPU之間通過電纜互聯,實現主從數據實時同步備份。
PLC冗余也可設計成通過仲裁模塊或者專用熱備模塊實現,但這樣不僅增加了硬件投資,而且增加了故障隱患點和系統同步步驟。采取雙CPU間直接同步熱備,由CPU決定其所在機架的主從狀態,實現以機架為單位的系統級冗余,簡化軟硬件設計,節省投資,易于維護。
電源模塊是PLC機架上其它模塊正常工作的重要保障。單電源模塊工作,若其發生故障或供電不足,往往會導致整個PLC機架控制失效,影響生產過程[4]。PLC每個機架配置2塊冗余電源模塊,每塊電源都具備對整個機架供電的能力,正常工作時均衡分擔負載,每個電源都工作在輕負荷狀態,有利于電源長期穩定工作。若其中一塊電源發生故障,其自動切斷輸出,并從系統中隔離,另一塊電源承擔起全部供電負荷。
PLC的通訊功能可分為“對外”與“對內”。“對外”是與外部其它現場設備通訊的串口,以及與工程師站等監控系統通訊的以太網接口;“對內”是與PLC自身擴展機架通訊的總線接口。
PLC的CPU模塊可以集成串口和以太網接口,并可以通過專用串口通訊模塊、專用以太網通訊模塊擴展更多的對外通訊接口。對外通訊的熱備狀態由CPU模塊決定。作為備用只能響應外部通訊的讀數據請求,不接收寫數據報文。
與擴展機架的I/O通訊采用雙總線冗余,由為主的通訊管理模塊來負責調度;為從的通訊管理模塊周期性地向為主的模塊發送“心跳”報文,告知自身運行狀態,以便主從切換時進行判斷。主通訊管理模塊先分別通過2個總線通道對每個I/O模塊輪詢,并初始化I/O模塊通訊狀態管理表,若某個通道出現故障,則通過另一通道與相應I/O模塊通訊,此后對故障通道周期性地檢測其是否修復,若雙通道都發生故障,則給出該I/O模塊通訊故障的報警。通訊過程中實時更新狀態管理表。冗余通訊的管理如圖2所示。

圖2 冗余通訊管理Fig.2 Management of redundant communication
PLC根據控制需要,對重要測點可以在同類型的不同I/O模塊上實現冗余配置。其中開關量輸入和模擬量輸入可以多通道采集,由CPU模塊對多個測值邏輯表決或運算求平均值;若被控對象具備多個冗余信號的仲裁表決功能,輸出量通道也可冗余配置。
CPU模塊作為PLC的核心,是熱備冗余設計的重點。PLC的冗余CPU采用相同的硬件、軟件設計,安裝無固定順序要求,同型號的模塊可自由互換。CPU模塊基于嵌入式實時操作系統將要實現的功能劃分為多個優先級不同的任務。主CPU模塊啟動全部任務,獲取I/O信息、運算PLC程序、控制I/O輸出、進行自診斷,并將實時數據通過互聯的以太網接口同步備份給從CPU模塊。從CPU模塊啟動部分任務,接收主CPU的同步信息并進行應答,不斷判斷是否需要主從切換,獲得控制權。
PLC冗余CPU間同步基于專用以太網接口建立有連接通訊服務,該任務出錯將導致熱備無法正常進行。同步的內容可分為2類:一類是編程軟件聯機PLC時產生,主要包括PLC程序在線修改的部分、測點和變量強制值、對時等調試命令,從而確保主、從CPU程序版本和運行結果一致;另一類是周期產生的實時過程信息,主要包括主CPU的自診斷信息、PLC程序執行情況記錄表、I/O模塊通訊管理表、過程值(涉及I/O測點、寄存器、定時器、計數器、變量、PID、掉電保持區、事件指針等),由主CPU每個程序執行周期組織一次,并發送給從CPU,確保兩者數據同步。從CPU根據收到的同步信息更新自己的實時數據庫,并把本側自診斷信息發送給主CPU作為應答報文。冗余CPU間同步如圖3所示。

圖3 冗余CPU間同步Fig.3 Synchronization between redundant CPU
主CPU發送完同步報文后,繼續運行其它任務,若發現致命故障,則主從切換,從CPU轉變成主CPU,繼續執行PLC程序。在此間隙內如果采集值發生變化,下一個PLC掃描周期將及時更新,針對重要的測點(如SOE)會產生帶時標的事件保存在I/O模件中,待CPU獲取并確認后才會清除,因此在細時間粒度不斷的PLC周期循環下,不會發生數據丟失或突變,主從切換對生產過程也是無擾動的。
PLC在CPU中創建高優先級的系統自診斷任務,對關鍵任務進行實時監視。程序設計時根據每個任務的功能特點插入相應的診斷節點,運行時產生診斷信息并自動記錄在任務控制塊中。自診斷任務綜合上述信息,若發現故障,則置位故障標記、產生報警事件、點亮故障燈等。
如圖4所示,首先,在PLC編程組態軟件中對冗余CPU模塊起始的主、從狀態確定機制進行配置,可以指定某個CPU為主、或者自啟動快的為主等多種規則,避免出現同時為主的現象。正常運行時,根據雙CPU各自的診斷信息進行判斷,若發生主CPU無法與所有I/O模塊互聯、PLC程序執行出錯、對外通訊中斷等情況,且從CPU運行狀態優于主CPU,則自動觸發一次主從切換。主、從CPU之間除了數據同步的以太網接口之外,還設計了信號互聯電纜,相互監視對側的主備狀態、故障情況。這樣即使CPU間同步發生故障,也能根據互聯電纜上的信號,將系統引導至相對安全的穩定狀態。

圖4 冗余CPU狀態轉換機制Fig.4 State mechanism of redundant CPU
除了可以CPU自動主從切換,還可以通過編程軟件聯機發命令或者CPU模件撥碼實現主從切換,方便調試、維護。同時,編程軟件提供支持主從切換功能的編程功能塊,用戶可以根據具體需求設計冗余狀態轉換,充分發揮PLC的靈活性。
當主CPU模塊發生故障,觸發主從切換后,該模塊變為備用狀態,并發出告警提示。維護人員及時將故障模塊退出,更換同型號的備件,但新CPU模塊沒有下載配置文件和PLC程序,不能真正成為熱備用。設計主從文件拷貝功能,只需在新CPU模塊上通過撥碼啟動,就會在主CPU模塊運行間隙把配置文件和PLC程序一一拷貝至新CPU,比較文件一致后加載運行,新CPU轉變為熱備用狀態,從而方便現場在線維護,快速排除故障。
冗余PLC在國內外眾多水電廠監控、火電廠DCS、軌道交通等工程中應用,需要長期穩定運行,合理的熱備冗余設計尤為關鍵。本文介紹了熱備冗余原理,分析了PLC熱備冗余的關鍵技術,結合實例重點闡述了PLC冗余設計方案,為冗余PLC選型和類似產品開發提供參考。
[1]趙豫峰,張善從.一種雙機熱備的嵌入式計算機系統設計[J].國外電子測量技術,2013,32(5):77-78.
[2]吳名歡,劉羽,張烈平.高可靠性網絡的研究與實現[J].計算機與信息技術,2008(Z1):65-66.
[3]胡軍.基于Cortex-M3的控制器冗余設計[J].工業控制計算機,2012,25(6):9-13.
[4]路通達.ControlNet冗余控制系統的應用[J].石油化工自動化,2012,48(5):18-20.