文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.179001
中文引用格式: 趙德政,黃兵,豐大軍,等. 基于MAC的PLC雙機冗余方法及系統(tǒng)[J].電子技術應用,2017,43(8):81-84.
英文引用格式: Zhao Dezheng,Huang Bing,F(xiàn)eng Dajun,et al. Dual redundant method and system for PLC based on MAC[J].Application of Electronic Technique,2017,43(8):81-84.
0 引言
可編程邏輯控制器(Programmable Logic Controller,PLC)[1-2]在工業(yè)控制自動化領域有著及其重要的作用,特別是在控制工藝流程比較復雜、被控參數(shù)較多的過程控制系統(tǒng)中,以通用PLC為核心搭建控制系統(tǒng)比專用控制器方式具有更強的靈活性、適用性和擴展性[3-4]。核心控制單元PLC的可靠性直接關系到整個控制系統(tǒng)的安全性和穩(wěn)定性,因此為了提高控制系統(tǒng)的健壯性,首先要提高PLC的健壯性,而在提升PLC本身健壯性的同時,引入PLC雙機冗余機制可以極大地改善控制系統(tǒng)的整體可用性[5-6]。相比于單純提升PLC本身健壯性的方式,PLC雙機冗余方式可以達到主PLC異常故障、備PLC接管控制邏輯、控制系統(tǒng)無擾運行的目標,從而使整個控制系統(tǒng)最大限度地消除異常故障的影響,大幅提升控制系統(tǒng)的可用性。
目前在控制系統(tǒng)中PLC雙機冗余技術主要有兩種,即基于PLC站間通信的軟冗余技術[7-8]和基于專用冗余通信模塊的硬冗余技術[9-10]。前者需要用戶編寫帶有冗余功能的控制邏輯,并全程參與冗余的故障診斷判決和狀態(tài)切換,對用戶的要求較高,且由于沒有專用的冗余通信通道,冗余的數(shù)據(jù)同步和狀態(tài)切換帶有很大的滯后性。基于專用冗余通信模塊的硬冗余技術具有專用的冗余通信通道,可以有效地提升數(shù)據(jù)同步和狀態(tài)切換的實時性,但是其成本較高,且不易于維護,只能應用到一些投入成本較高、對可靠性極為敏感的控制系統(tǒng)之中,這極大地限制了這種冗余技術的應用和普及。
為了克服PLC軟冗余方式中用戶工程與冗余技術的緊耦合和冗余處理遲滯問題,以及硬冗余技術中構建成本高、維護困難的問題,需要開發(fā)一種擺脫專用冗余通信模塊限制的PLC雙機冗余技術,無需用戶參與冗余數(shù)據(jù)同步、故障診斷判決和狀態(tài)切換,靈活地實現(xiàn)高可靠、高健壯性的PLC雙機冗余功能,降低PLC雙機冗余控制系統(tǒng)的構建成本。
本文利用MAC(Medium/Media Access Control,介質訪問控制)控制器作為冗余系統(tǒng)的數(shù)據(jù)同步收發(fā)器,構成PLC雙機冗余系統(tǒng),并設計了與用戶控制邏輯無關的故障診斷判決和主備機切換機制,以及無需用戶參與的冗余狀態(tài)機和狀態(tài)轉移機制,可有效提升PLC雙機冗余系統(tǒng)的易用性,且能極大地提升冗余系統(tǒng)的運行性能。下面將從總體方案設計、硬件平臺設計和軟件系統(tǒng)設計三個方面對所提出的PLC雙機冗余方法及系統(tǒng)進行介紹。
1 總體方案
PLC雙機冗余的雙方為冗余主機和冗余備機,冗余雙方內部均包含MAC控制器芯片作為冗余通信的收發(fā)器,PLC雙機冗余的雙方搭載獨立于用戶控制邏輯的故障診斷判決和主備機切換機制,圖1為PLC雙機冗余系統(tǒng)的組成框圖。
整個PLC雙機冗余系統(tǒng)包含兩個完全一樣的PLC控制器,以及多個與現(xiàn)場被控對象連接的從站模塊,由此構成了PLC雙機冗余系統(tǒng)和現(xiàn)場總線網(wǎng)絡。其中冗余控制器由主控單元、基于MAC的冗余通信單元以及現(xiàn)場總線主站組成,主控單元與現(xiàn)場總線主站之間通過雙口RAM連接,而作為冗余通信單元核心的MAC控制器直接掛到主控單元CPU的總線上。冗余控制器都帶有兩個獨立的MAC,分別為MAC0和MAC1,其MAC地址不一樣,所有控制器的MAC0都共用一個MAC地址,所有控制器的MAC1也都共用一個MAC地址。組成PLC雙機冗余系統(tǒng)的兩個控制器在物理上通過交叉方式構成冗余連接,即冗余控制器A的MAC0接冗余控制器B的MAC1,冗余控制器A的MAC1接冗余控制器B的MAC0,如圖1所示。冗余連接通信的方向永遠是從MAC0到MAC1,比如冗余控制器A向冗余控制器B發(fā)送請求要經(jīng)過冗余控制器A的MAC0到冗余控制器B的MAC1,冗余控制器B在MAC1上接到來自于冗余控制器A的請求后,會通過自身的MAC0向冗余控制器A的MAC1發(fā)送響應。從站模塊通常包含I/O模塊以及其他用于特定功能控制的功能模塊,主要用于連接傳感器、電動機、電磁閥、繼電器等現(xiàn)場被控對象。
2 系統(tǒng)硬件平臺設計
PLC雙機冗余系統(tǒng)中冗余控制器的硬件平臺如圖2所示。冗余控制器包括處理器、MAC控制器、PHY(Physical Layer)芯片、現(xiàn)場總線主站、存儲器外設、時鐘電路、復位電路和電源變換模塊等部件。
所選用的MAC控制器主要用于冗余控制器之間進行冗余同步通信的數(shù)據(jù)收發(fā)器,PHY主要用于通信電平信號轉換。現(xiàn)場總線主站用于現(xiàn)場總線協(xié)議棧支持、控制器與從站之間的通信連接以及實際的I/O變量刷新操作。
該冗余控制器以處理器為核心,在處理器上運行業(yè)務處理程序、用戶控制邏輯、冗余同步通信以及冗余故障診斷判決和狀態(tài)切換程序。該處理器通過現(xiàn)場總線主站采集現(xiàn)場設備的輸入信號,然后執(zhí)行用戶控制邏輯,最后將控制邏輯執(zhí)行結果的控制輸出信息通過現(xiàn)場總線主站發(fā)送到被控設備,同時處于冗余主機工作模式的處理器還會實時地將用戶控制邏輯運行結果的過程數(shù)據(jù)通過由MAC控制器控制的冗余通信連接同步到冗余備機,而工作于冗余備機工作模式的處理器會將冗余主機同步過來的過程數(shù)據(jù)寫入到相應的數(shù)據(jù)區(qū),同時時刻監(jiān)視著冗余主機的運行狀態(tài),隨時準備升為冗余主機并接管整個控制系統(tǒng)。
3 軟件設計
3.1 軟件總體方案
冗余PLC控制器可以工作于冗余主機和冗余備機兩種工作模式,兩種模式執(zhí)行的功能和所承擔的任務不同,其系統(tǒng)流程如圖3所示。冗余主機工作模式下,控制器的執(zhí)行功能主要包含初始化、通信處理、狀態(tài)切換、I/O輸出、I/O輸入、運行用戶控制邏輯、同步過程數(shù)據(jù)幾個步驟。冗余備機工作模式下,控制器的執(zhí)行功能主要包含初始化、通信處理、狀態(tài)切換、獲取同步數(shù)據(jù)。相比于冗余主機,冗余備機不運行用戶控制邏輯,也不刷新I/O數(shù)據(jù),其所有用戶控制邏輯的運行結果數(shù)據(jù)和I/O數(shù)據(jù)都直接來自于冗余主機的數(shù)據(jù)同步操作。冗余備機通過冗余通信連接時刻監(jiān)視著冗余主機的運行狀態(tài),當檢測到冗余主機發(fā)生異常故障時,升為冗余主機,同時接管整個控制系統(tǒng),并無擾地繼續(xù)執(zhí)行用戶控制邏輯。
3.2 冗余通信
在PLC雙機冗余控制系統(tǒng)中,冗余主機和冗余備機具有不同的工作方式,其冗余通信方式也不盡相同,冗余通信流程如圖4所示。
冗余主機采用的冗余通信流程如下:
(1)控制器對冗余通信進行初始化,并與PLC雙機冗余系統(tǒng)的另一個控制器建立冗余連接,轉(2);
(2)控制器向與其建立冗余連接的控制器同步冗余配置,冗余配置主要為用于區(qū)分兩個控制器的CPU選項,通過控制器背板的撥碼開關設置,有CPU0和CPU1兩種模式,轉(3);
(3)判斷PLC雙機冗余系統(tǒng)的兩個控制器的冗余配置是否沖突,即是否同為CPU0或同為CPU1,如果不沖突轉(4),否則轉(9);
(4)判斷控制器配置為主機,默認設為CPU0選項的控制器以冗余主機工作模式運行,轉(5);
(5)刷新I/O數(shù)據(jù)并運行用戶控制邏輯,轉(6);
(6)向冗余備機同步過程數(shù)據(jù),過程數(shù)據(jù)主要包含用戶控制邏輯的運行結果數(shù)據(jù)和I/O變量數(shù)據(jù),轉(7);
(7)向冗余備機發(fā)送冗余心跳,轉(8);
(8)判斷是否接收到用戶結束控制器運行操作,如果接收到結束運行操作,轉(9)結束運行控制器,否則轉(5)繼續(xù)運行控制器;
(9)結束運行控制器。
冗余備機采用的冗余通信流程如下:
(1)控制器對冗余通信進行初始化,并與PLC雙機冗余系統(tǒng)的另一個控制器建立冗余連接,轉(2);
(2)控制器向與其建立冗余連接的控制器同步冗余配置,轉(3);
(3)判斷PLC雙機冗余系統(tǒng)的兩個控制器的冗余配置是否沖突,如果不沖突轉(4),否則轉(9);
(4)判斷控制器配置為主機,默認設為CPU1選項的控制器以冗余備機工作模式運行,轉(5);
(5)通過冗余通信連接接收冗余主機同步過來的過程數(shù)據(jù),并寫入相應的數(shù)據(jù)區(qū),轉(6);
(6)通過冗余通信連接獲取冗余主機發(fā)送過來的冗余心跳,轉(7);
(7)診斷主機是否發(fā)生異常故障,如果診斷出主機發(fā)生異常故障,控制器升為主機,并以最近接收到的有效過程數(shù)據(jù)為起點,繼續(xù)運行用戶控制邏輯和執(zhí)行刷新I/O操作,否則轉(8);
(8)判斷是否接收到用戶結束控制器運行操作,如果接收到結束運行操作,轉(9)結束運行控制器,否則轉(5)繼續(xù)運行控制器;
(9)結束運行控制器。
3.3 冗余狀態(tài)機
為了方便冗余方法及冗余系統(tǒng)的軟件實現(xiàn),根據(jù)所提出的冗余方法,其系統(tǒng)運行狀態(tài)機如圖5所示。
系統(tǒng)的冗余狀態(tài)機主要包含9個狀態(tài),狀態(tài)定義及條件跳轉關系如表1所示。
4 功能驗證和測試
為了驗證本文設計的PLC雙機冗余系統(tǒng),總共設計了538個測試用例來對整個冗余系統(tǒng)的功能進行測試。測試用例可以分為以下幾類:單機運行模式測試(冗余狀態(tài)機)、雙機切換過程測試(冗余狀態(tài)機)、冗余同步數(shù)據(jù)測試(冗余通信)、雙機搶主測試等。測試結果表明,所設計的PLC雙機冗余方法及系統(tǒng)能夠在系統(tǒng)發(fā)生異常故障時保證整個控制系統(tǒng)的正常運行,滿足提高PLC控制系統(tǒng)可用性的需求。
5 結論
本文設計了一種基于MAC的PLC雙機冗余系統(tǒng)。首先對雙機冗余系統(tǒng)的整體結構進行了闡述,然后分別對系統(tǒng)的硬件平臺設計和軟件系統(tǒng)設計進行了詳細解釋,最后通過多種測試用例對整個PLC雙機冗余系統(tǒng)進行了功能驗證和測試。測試結果表明,本文設計的雙機冗余系統(tǒng)避免了PLC硬冗余技術對于控制器具有獨立專用冗余通信模塊的苛刻要求,降低了冗余系統(tǒng)的構建成本,也克服了PLC軟冗余技術中冗余異常判決機制依賴于用戶的弊端,提高了系統(tǒng)的易用性,降低了用戶學習、使用成本。本文所提出的PLC雙機冗余方法及系統(tǒng)直接使用MAC作為冗余通信的數(shù)據(jù)收發(fā)器,省略了上層以太網(wǎng)協(xié)議棧,提高了冗余通信的實時性,增強了冗余系統(tǒng)的靈活性,也保證了冗余系統(tǒng)的便利性。后續(xù)可繼續(xù)對冗余狀態(tài)機的轉換算法進行優(yōu)化,以減小冗余主備切換時間,從而提高整個系統(tǒng)的性能。
參考文獻
[1] 羅維平.基于PLC的太陽能電池板自動跟蹤系統(tǒng)的研究[J].電子技術應用,2009,35(9):138-140.
[2] 葉曉暉.PLC在電氣自動化中的應用現(xiàn)狀及發(fā)展前景概述[J].工業(yè)控制計算機,2010,23(1):144-145.
[3] 劉爽,朱凱,董宸.基于PLC一維極軸自動控制的對日跟蹤系統(tǒng)[J].電子技術應用,2009,35(9):1-2.
[4] 王洪猛,謝建君,曾云,等.基于PLC的過程控制系統(tǒng)設計與實現(xiàn)[J].自動化技術與應用,2004,23(7):25-27.
[5] 孟君.基于不同冗余結構的PLC系統(tǒng)可靠性與可用性研究[J].電子技術應用,2016,42(9):80-83.
[6] 陳子平.淺談控制系統(tǒng)冗余控制的實現(xiàn)[J].自動化儀表,2005,26(9):4-6.
[7] 呂京梅.PLC軟冗余系統(tǒng)的研究與應用[D].西安:西安電子科技大學,2008.
[8] 路建強,王華強,王聯(lián)慶,等.S7-300軟冗余在壓縮機控制中的應用[J].工業(yè)儀表與自動化裝置,2012(1):80-83.
[9] 陳加杰.中型PLC冗余架構研究與同步技術[D].哈爾濱:哈爾濱工業(yè)大學,2008.
[10] 韋杰.西門子400H PLC在天然氣輸配系統(tǒng)中的運用[J].工業(yè)控制計算機,2014,27(7):157-158.
作者信息:
趙德政,黃 兵,豐大軍,張曉莉,徐一鳳
(華北計算機系統(tǒng)工程研究所,北京100083)