《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于MAC的PLC雙機(jī)冗余方法及系統(tǒng)
基于MAC的PLC雙機(jī)冗余方法及系統(tǒng)
2017年電子技術(shù)應(yīng)用第8期
趙德政,黃 兵,豐大軍,張曉莉,徐一鳳
華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 針對(duì)目前PLC控制系統(tǒng)雙機(jī)冗余方法的缺陷和不足,提出了一種基于MAC的PLC雙機(jī)冗余系統(tǒng)。PLC雙機(jī)冗余系統(tǒng)由兩個(gè)完全相同的PLC控制器組成,每個(gè)控制器都帶有專用的MAC控制器作為冗余通信的數(shù)據(jù)收發(fā)器?;贛AC的PLC雙機(jī)冗余系統(tǒng)避免了高可靠PLC雙機(jī)冗余系統(tǒng)對(duì)于控制器必須具有獨(dú)立專用冗余通信模塊的苛刻要求,直接使用MAC作為冗余通信的數(shù)據(jù)收發(fā)器,省略了上層以太網(wǎng)協(xié)議棧,降低了冗余系統(tǒng)的構(gòu)建成本,提高了冗余通信的實(shí)時(shí)性,增強(qiáng)了冗余系統(tǒng)的靈活性。
中圖分類號(hào): TP273
文獻(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.
Dual redundant method and system for PLC based on MAC
Zhao Dezheng,Huang Bing,F(xiàn)eng Dajun,Zhang Xiaoli,Xu Yifeng
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: One dual redundant system for PLC based on MAC is presented to cope the defective or inadequate of current dual redundancy method. The presented PLC dual redundant system is comprised of two identical PLC controllers, each with specialized MAC as the data transceiver for redundancy communication. The proposed dual redundant system avoids strict requirements of having independent and specialized redundancy communication module in the high reliability PLC dual redundancy system. The corresponding dual redundancy system directly uses MAC as the data transceiver of redundancy communication without upper-layer Ethernet protocol stack, which can reduce the building costs for redundant system, improve the real-time ability of redundancy communication, and enhance the flexibility of the redundant system.
Key words : PLC;dual redundancy;MAC;state machine

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)切換帶有很大的滯后性。基于專用冗余通信模塊的硬冗余技術(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)的組成框圖。

ck3-t1.gif

    整個(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ù)位電路和電源變換模塊等部件。

ck3-t2.gif

    所選用的MAC控制器主要用于冗余控制器之間進(jìn)行冗余同步通信的數(shù)據(jù)收發(fā)器,PHY主要用于通信電平信號(hào)轉(zhuǎn)換。現(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í)行用戶控制邏輯。

ck3-t3.gif

3.2 冗余通信

    在PLC雙機(jī)冗余控制系統(tǒng)中,冗余主機(jī)和冗余備機(jī)具有不同的工作方式,其冗余通信方式也不盡相同,冗余通信流程如圖4所示。

ck3-t4.gif

    冗余主機(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所示。

ck3-t5.gif

    系統(tǒng)的冗余狀態(tài)機(jī)主要包含9個(gè)狀態(tài),狀態(tài)定義及條件跳轉(zhuǎn)關(guān)系如表1所示。

ck3-b1.gif

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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。