本發(fā)明涉及工業(yè)控制自動化技術領域,尤其涉及一種基于MAC的PLC雙機冗余方法及系統(tǒng)。
背景技術:
可編程邏輯控制器(PLC)在工業(yè)控制自動化領域有著及其重要的作用,特別是在控制工藝流程比較復雜、被控對象種類數量較多的過程控制系統(tǒng)中,以通用PLC為核心搭建控制系統(tǒng)比專用控制器方式具有更強的靈活性、適用性和擴展性。PLC作為控制系統(tǒng)的核心控制單元,其可靠性直接關系到整個控制系統(tǒng)的安全性和穩(wěn)定性,因此為了提高控制系統(tǒng)的健壯性,首先要提高PLC的健壯性,而在提升PLC本身健壯性的同時,引入PLC雙機冗余機制可以極大地改善控制系統(tǒng)的整體可靠性。相比于單純提升PLC本身可靠性的方式,PLC雙機冗余方式可以達到若主PLC異常故障、則備PLC接管整個控制系統(tǒng)、并無擾繼續(xù)運行控制邏輯的目標,從而使整個控制系統(tǒng)最大限度地消除異常故障的影響,將控制系統(tǒng)的可用性提高了一個數量級。
目前在控制系統(tǒng)中PLC雙機冗余技術主要有基于PLC站間通信的軟冗余技術和基于專用冗余通信模塊的硬冗余技術。前者需要用戶編寫帶有冗余功能的控制邏輯,并全程參與冗余的故障診斷判決和狀態(tài)切換,對用戶的要求較高,且由于沒有專用的冗余通信通道,冗余的數據同步和狀態(tài)切換帶有很大的滯后性?;趯S萌哂嗤ㄐ拍K的硬冗余技術具有專用的冗余通信通道,可以有效地提升數據同步和狀態(tài)切換的實時性,但是其成本較高、且不易于維護,只能應用到一些投入成本較高、對可靠性極為敏感的控制系統(tǒng)之中,這極大地限制了這種冗余技術的應用和普及。
為了克服PLC軟冗余方式中用戶工程和冗余技術的緊耦合和冗余處理遲滯問題,以及硬冗余技術中成本高、維護困難的問題,需要開發(fā)一種擺脫專用冗余通信模塊限制的PLC雙機冗余技術,無需用戶參與冗余數據同步、故障診斷判決和狀態(tài)切換,靈活地實現高可靠、高健壯性的PLC雙機冗余功能,降低PLC雙機冗余控制系統(tǒng)的構建成本。
技術實現要素:
本發(fā)明的目的是提供一種基于MAC的PLC雙機冗余方法及系統(tǒng),采用MAC作為冗余通信收發(fā)器的方式,由完全相同的冗余主機和冗余備機組成雙機冗余系統(tǒng)。冗余系統(tǒng)無需專用的冗余通信模塊,也無需使用高層級以太網協(xié)議棧;冗余系統(tǒng)提供完全獨立于用戶邏輯的冗余通信、故障診斷判決和狀態(tài)切換機制,無需用戶參與冗余系統(tǒng)具體實現,對用戶水平沒有較高的要求;面向工業(yè)控制自動化系統(tǒng)的高可靠應用需求,能夠提供便捷、靈活、高效、低成本、易于維護的PLC雙機冗余功能。
為達到上述目的,根據發(fā)明的一方面,提出了一種基于MAC的PLC雙機冗余方法,所述PLC雙機冗余方法的雙方為冗余主機和冗余備機,冗余雙方內部均包含MAC控制器芯片作為冗余通信的收發(fā)器,所述PLC雙機冗余的雙方搭載獨立于用戶邏輯的故障診斷判決和主備機切換機制,其特征在于,該方法包括以下步驟:
步驟1,建立所述PLC雙機冗余雙方之間的冗余通信信道;
步驟2,所述PLC雙機冗余雙方利用建立的冗余通信信道同步冗余配置;
步驟3,所述PLC雙機冗余雙方通過收到的對方冗余配置信息,確定所述雙方的主備關系,并分別以主機工作模式或備機工作模式初始化系統(tǒng);
步驟4,所述PLC雙機冗余雙方確定主備關系并以相應的工作模式初始化成功后,所述冗余主機以主機工作模式運行,所述冗余備機以備機工作模式運行。
其中,所述步驟1的最主要特征是冗余雙方控制器都帶有兩個專門用于冗余通信的MAC,分別為MAC0和MAC1,MAC0和MAC1的MAC地址不一樣,但是所有冗余控制器的MAC0都設為同樣的MAC地址,所有冗余控制器的MAC1都設為同樣的MAC地址,所述雙方的冗余通信物理連接采用交叉相連方式,即一個控制器的MAC0連另一個控制器的MAC1,無需路由器或交換機參與組網;MAC直接用作冗余通信的數據收發(fā)器使用,無需更上層的以太網協(xié)議棧參與通信。
所述步驟3的最主要特征是冗余雙方控制器根據自身冗余配置和接收到的對方冗余配置信息確定冗余工作模式,冗余配置信息主要用于區(qū)分冗余雙方的CPU選項(CPU0或CPU1),CPU選項的選擇由控制器背板的撥碼開關實現,通常配置為CPU0的控制器會優(yōu)先工作于主機工作模式。在控制系統(tǒng)中不存在主機且冗余雙方冗余配置不沖突(CPU選項不相同)的情況下,配置為CPU0的控制器會以主機工作模式啟動,配置為CPU1的控制器會以備機工作模式啟動;若冗余雙方冗余配置沖突(CPU選項一樣,都為CPU0或CPU1),冗余雙方都無法啟動。在控制系統(tǒng)中已經存在主機的情況下,若冗余雙方冗余配置不沖突,無論配置成CPU0還是CPU1,本機都以備機工作模式運行;若冗余雙方冗余配置沖突,本機無法啟動。
所述步驟4的最主要特征是冗余系統(tǒng)的冗余主機和冗余備機各司其職,分別執(zhí)行不同的功能,雙方通過冗余通信信道同步過程數據和運行狀態(tài)。處于主機工作模式的所述冗余主機正常運行用戶邏輯,并刷新I/O數據,同時周期性地通過冗余通信信道將控制邏輯運行結果的過程數據同步到所述冗余備機;處于備機工作模式的所述冗余備機不運行用戶邏輯,也不刷新I/O數據,僅將所述主機同步過來的用戶控制邏輯運行結果過程數據更新到相應的過程數據區(qū),同時時刻監(jiān)視著所述主機的工作狀態(tài),隨時在所述主機出現異常故障時升為主機、接管整個控制系統(tǒng),并無擾地開始運行用戶邏輯和執(zhí)行I/O數據刷新操作。
根據本發(fā)明的另一方面,還提出了一種基于MAC的PLC雙機冗余系統(tǒng),其特征在于,該系統(tǒng)包括兩個完全一致的PLC控制器以及多個直接與現場被控對象(采集設備或執(zhí)行設備)相連的從站模塊,其中,
所述PLC雙機冗余系統(tǒng)工作的時候,一個控制器作為冗余主機工作于主機工作模式,另一個控制器作為冗余備機工作于備機工作模式;
所述PLC控制器主要包括用于執(zhí)行用戶控制邏輯的主控單元,用于雙機冗余通信的冗余通信單元,以及用于與從站模塊通信的現場總線主站單元,同時,主控單元還承擔與上位機邏輯組態(tài)軟件交互和提供通用工控通信協(xié)議棧的任務;
作為所述冗余通信單元核心的MAC控制器直接掛到所述主控單元的CPU總線上;
所述現場總線主站單元和所述主控單元之間通過雙口RAM通信并交換數據,主要用于所述PLC控制器與所述從站模塊之間的I/O刷新操作;
所述從站模塊和所述PLC控制器組成工業(yè)現場總線網絡并實現現場I/O數據的刷新操作,從站模塊主要包括用于采集數字量輸入信號的數字量輸入模塊(DI),用于采集模擬量輸入信號的模擬量輸入模塊(AI),用于輸出數字量控制信號的數字量輸出模塊(DO),用于輸出模擬量控制信號的模擬量輸出模塊(AO),以及多種用于通信協(xié)議轉換的網關模塊和實現一些專用功能的功能模塊。
根據本發(fā)明的另一方面,還提出了一種基于MAC的PLC冗余控制器,用作PLC雙機冗余系統(tǒng)的核心控制單元,其特征在于,該控制器包括某國產航天用處理器、MAC控制器、與所述MAC相應的PHY控制器、現場總線主站以及電源變換模塊,其中,
所述處理器用于運行用戶控制邏輯、利用所述現場總線主站單元刷新I/O數據,還用于向所述MAC控制器發(fā)送指令進行數據傳輸,并建立PLC雙機冗余通信信道,從而進行雙機之間的數據同步和狀態(tài)同步;
所述MAC控制器用于根據所述處理器發(fā)送的指令進行數據發(fā)送和接收,建立PLC雙機冗余系統(tǒng)中冗余主機和冗余備機之間的通信連接,從而在二者之間同步數據和狀態(tài);
所述處理器的外圍連接有時鐘電路、復位電路、存儲器外設以及編程接口和調試接口;
所述處理器擴展出3個所述MAC控制器和與之對應的PHY控制器和RJ45接口,其中一個帶有完整的上層以太網協(xié)議棧,用于與上位機通信,另外兩個不帶上層以太網協(xié)議棧、只是作為雙機冗余通信連接的數據收發(fā)器;
所述現場總線主站用于將控制系統(tǒng)從站采集的輸入信號刷新到控制器數據區(qū),同時將控制器用戶控制邏輯運算結果的控制輸出信號刷新到對應的從站,并時刻監(jiān)視現場總線網絡的運行狀態(tài)和從站的工作狀態(tài);
所述電源變換模塊與所述處理器連接,用于將輸入的直流電壓轉換成處理器、所述MAC控制器、所述PHY控制器、現場總線以及存儲器外設所需的電壓。
本發(fā)明的顯著特點在于將MAC控制器應用于PLC雙機冗余通信信道的建立以及數據通信過程中,PLC雙機冗余的雙方冗余主機和冗余備機在物理上采用雙MAC交叉相連的方式建立冗余通信連接,使得冗余的雙方完全對稱,任何一個控制器都可以工作于冗余主機或冗余備機模式,不需要單獨開發(fā)PLC冗余主機和PLC冗余備機,不僅避免了高可靠PLC雙機冗余系統(tǒng)對于控制器具有獨立專用冗余通信模塊的苛刻要求,也無需上層以太網協(xié)議棧的支持,MAC控制器直接作為冗余通信的數據收發(fā)器使用,提高了數據通信的實時性和系統(tǒng)的靈活性,也節(jié)省了PLC雙機冗余系統(tǒng)的構建成本。
本發(fā)明提供獨立于用戶控制邏輯的冗余雙方狀態(tài)同步和數據同步方式,以及對控制邏輯組態(tài)人員透明的故障診斷判決和狀態(tài)切換機制,控制邏輯組態(tài)人員只需要專注于控制系統(tǒng)的工藝流程和控制邏輯本身,無需直接或過多參與PLC雙機冗余系統(tǒng)的搭建和運行,不僅提高了PLC雙機冗余處理機制的時效性,還提高了控制系統(tǒng)開發(fā)的便利性和高效性,節(jié)省了人力開發(fā)成本,同時提升了控制系統(tǒng)的可維護性。
附圖說明
圖1是本發(fā)明基于MAC的PLC雙機冗余方法及系統(tǒng)的組成框圖;
圖2是本發(fā)明基于MAC的PLC雙機冗余方法及系統(tǒng)的系統(tǒng)流程圖;
圖3是本發(fā)明基于MAC的PLC雙機冗余方法及系統(tǒng)的冗余通信流程圖;
圖4是本發(fā)明基于MAC的PLC雙機冗余方法及系統(tǒng)的冗余狀態(tài)機;
圖5是本發(fā)明基于MAC的PLC雙機冗余方法及系統(tǒng)的PLC控制器的硬件電路連接圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
基于MAC的PLC雙機冗余方法,是構建低成本、高可靠工業(yè)控制自動化系統(tǒng)的有效解決方式,直接采用MAC作為冗余通信的數據收發(fā)器、無需上層以太網協(xié)議棧的冗余通信方式,有效地解決了高可靠PLC雙機冗余系統(tǒng)對專用冗余通信模塊的高度依賴問題,降低了控制系統(tǒng)的構建成本;同時提供對控制邏輯組態(tài)人員透明且與用戶控制邏輯無關的冗余系統(tǒng)運行機制,提高了PLC雙機冗余系統(tǒng)在具體應用過程中的便利性和快捷性,也提高了冗余系統(tǒng)的可靠性。以下結合附圖對該發(fā)明的具體實施方式進行說明。需要指出的是,本發(fā)明所提供的實施例只是發(fā)明內容中的一種實施方式,其發(fā)明內容包含但不限于該實施例。
圖1為PLC雙機冗余系統(tǒng)的組成框圖。該系統(tǒng)包含兩個完全一樣的PLC控制器,以及多個與現場被控對象連接的從站模塊,由此構成了PLC雙機冗余系統(tǒng)和現場總線網絡。其中冗余控制器由主控單元、基于MAC的冗余通信單元以及現場總線主站組成,主控單元和現場總線主站之間通過雙口RAM連接,而作為冗余通信單元核心的MAC控制器直接掛到主控單元處理器的總線上。冗余控制器都帶有兩個獨立的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ā)送請求要經過冗余控制器A的MAC0到冗余控制器B的MAC1,冗余控制器B在MAC1上接到來自于冗余控制器A的請求后,會通過自身的MAC0向冗余控制器A的MAC1發(fā)送響應。從站模塊主要包含DI、DO、AI、AO以及其他功能模塊,主要用于連接數據采集和功能控制的功能部件等被控對象,比如傳感器、電動機、電磁閥、繼電器等。從站模塊與冗余控制器之間通過現場總線網絡通信,各個從站模塊之間通過背板總線通信,耦合器模塊將現場總線數據包轉換為背板總線信號。
圖2為所述PLC雙機冗余系統(tǒng)的系統(tǒng)流程圖,所述冗余PLC控制器可以工作于冗余主機和冗余備機兩種工作模式,兩種模式執(zhí)行的功能和所承擔的任務不同。冗余主機工作模式下,控制器的執(zhí)行功能主要包含初始化、通信處理、狀態(tài)切換、I/O輸出、I/O輸入、運行用戶控制邏輯、同步過程數據幾個步驟。冗余備機工作模式下,控制器的執(zhí)行功能主要包含初始化、通信處理、狀態(tài)切換、獲取同步數據。相比于冗余主機,冗余備機不運行用戶控制邏輯,也不刷新I/O數據,其所有用戶控制邏輯的運行結果數據和I/O數據都直接來自于冗余主機的數據同步操作。冗余備機通過冗余通信連接時刻監(jiān)視著冗余主機的運行狀態(tài),在檢測到冗余主機異常故障時升為冗余主機,并接管整個控制系統(tǒng),并無擾地繼續(xù)執(zhí)行控制邏輯。
圖3為所述PLC雙機冗余系統(tǒng)的冗余通信流程圖,主要分為冗余主機和冗余備機兩部分。
如圖3所示,冗余主機采用如下的冗余通信流程:
A1.控制器對冗余通信進行初始化,并與所述PLC雙機冗余系統(tǒng)的另一個控制器建立冗余連接,轉B1;
B1.控制器向與其建立冗余連接的控制器同步冗余配置,冗余配置主要為用于區(qū)分兩個控制器的CPU選項,通過控制器背板的撥碼開關設置,有CPU0和CPU1兩種模式,轉C1;
C1.判斷所述PLC雙機冗余系統(tǒng)的兩個控制器的冗余配置是否沖突,即是否同為CPU0或同為CPU1,如果不沖突轉D1,否則轉I1;
D1.判斷控制器配置為主機,默認設為CPU0選項的控制器以冗余主機模式運行,轉E1;
E1.刷新I/O數據并運行用戶控制邏輯,轉F1;
F1.向冗余備機同步過程數據,過程數據主要包含用戶控制邏輯運行的結果數據和I/O變量數據,轉G1;
G1.向冗余備機發(fā)送冗余心跳,轉H1;
H1.判斷是否接收到用戶結束控制器運行操作,如果沒接收到結束運行操作,轉I1結束運行控制器,否則轉E1繼續(xù)運行控制器;
I1.結束運行控制器。
冗余備機采用如下的冗余通信流程:
A2.控制器對冗余通信進行初始化,并與所述PLC雙機冗余系統(tǒng)的另一個控制器建立冗余連接,轉B2;
B2.控制器向與其建立冗余連接的控制器同步冗余配置,轉C2;
C2.判斷所述PLC雙機冗余系統(tǒng)的兩個控制器的冗余配置是否沖突,如果不沖突轉D2,否則轉I2;
D2.判斷控制器配置為主機,默認設為CPU1選項的控制器以冗余備機模式運行,轉E2;
E2.通過冗余通信連接接收冗余主機同步過來的過程數據,并寫入相應的數據區(qū),轉F2;
F2.通過冗余通信連接獲取冗余主機發(fā)送過來的冗余心跳,轉G2;
G2.診斷主機是否發(fā)生異常故障,如果診斷出主機發(fā)生異常故障,控制器升為主機,并以最近接收到的有效過程數據為起點,繼續(xù)運行用戶控制邏輯和執(zhí)行刷新I/O操作,否則轉H2;
H2.判斷是否接收到用戶結束控制器運行操作,如果沒接收到結束運行操作,轉I2結束運行控制器,否則轉E2繼續(xù)運行控制器;
I2.結束運行控制器。
圖4為所述冗余控制器的狀態(tài)轉移圖,狀態(tài)機主要包含9個狀態(tài),狀態(tài)定義及條件跳轉關系如下表格1所示:
表1冗余狀態(tài)機切換關系
圖5是PLC雙機冗余系統(tǒng)冗余控制器的一種實施例的硬件連接框圖。該冗余控制器包括某國產處理器、現場總線主站模塊、MAC控制器、與所述MAC控制器相連的PHY、電源變換模塊、存儲器外設、時鐘電路、復位電路和編程調試接口。
所述MAC主要用于冗余控制器之間冗余通信連接的數據收發(fā)器,PHY主要用于通信電平信號轉換。
現場總線主站用于提供現場總線協(xié)議棧支持、維持控制器與從站之間的通信連接以及執(zhí)行實際的I/O變量刷新操作。
該冗余控制器以某國產處理器(該實施例中采用國產宇航用CPU)為核心,在處理器上運行業(yè)務處理程序、用戶控制邏輯、冗余通信以及冗余故障診斷判決和狀態(tài)切換程序。具體來說,所屬某國產處理器通過所述現場總線主站采集現場設備的輸入信號,然后執(zhí)行用戶控制邏輯,最后將控制邏輯的執(zhí)行結果的控制輸出信息通過所述現場總線主站發(fā)送到被控設備,同時處于冗余主機工作模式的所述處理器還會實時地將用戶控制邏輯的過程數據通過所述MAC控制器構成的冗余通信連接同步到冗余備機,而工作于冗余備機工作模式的所述處理器會將冗余主機同步過來的過程數據寫入到相應的數據區(qū),并時刻監(jiān)視著冗余主機的運行狀態(tài),隨時準備升主從而接管整個控制系統(tǒng)。
在處理器外圍提供時鐘電路、復位電路、存儲器外設以及編程調試接口,構成某國產處理器的最小系統(tǒng)。該冗余控制器還包含與處理器連接的電源轉換模塊,將輸入的9~30V直流電壓轉換為處理器、MAC控制器、現場總線主站模塊等外圍器件所需的5V和3.3V電壓。
本發(fā)明采用基于MAC的PLC雙機冗余方法,以MAC控制器作為冗余通信的數據收發(fā)器,提供對控制邏輯組態(tài)開發(fā)人員完全透明的冗余數據通信、冗余故障診斷判決以及冗余狀態(tài)切換機制,使PLC雙機冗余系統(tǒng)可以靈活、便捷地應用在構建成本低、可靠度高的控制系統(tǒng)中,不受專用冗余通信模塊的制約,也不受具體用戶控制邏輯的影響,大大方便了PLC雙機冗余系統(tǒng)在工業(yè)自動化控制系統(tǒng)中的應用。
以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。