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