肖輝 崔剛 吳翔虎
摘要: 在實時嵌入式工控領(lǐng)域中,系統(tǒng)的實時性和高可靠性尤為重要。針對實時嵌入式領(lǐng)域中的工業(yè)現(xiàn)場分布式控制系統(tǒng),設(shè)計了雙冗余熱備份PROFIBUS主站仲裁模塊,提出了雙冗余主站工作保持數(shù)據(jù)一致性問題以及雙冗余PROFIBUS總線的工作與切換方案,并且設(shè)計了虛擬雙端口存儲器通信協(xié)議,提高了系統(tǒng)的可用性和可靠性。
關(guān)鍵詞:
中圖分類號:TP302.8文獻標識碼:A文章編號:2095-2163(2012)05-0013-03
0 引言
實時嵌入式系統(tǒng)是計算機應(yīng)用領(lǐng)域的一個重要分支,被廣泛應(yīng)用于工業(yè)過程控制領(lǐng)域中。工業(yè)過程控制系統(tǒng)需要進行實時數(shù)據(jù)采集,不僅對系統(tǒng)的實時性要求高,同時,要求系統(tǒng)不間斷運行、可靠性高?眼1-2?演。PROFIBUS總線是一種應(yīng)用于工業(yè)現(xiàn)場控制的總線標準,提供了高速低成本的通信解決方案,保證了系統(tǒng)的實時性。
工業(yè)現(xiàn)場控制系統(tǒng)常采用雙冗余容錯設(shè)計。與以前容錯研究和設(shè)計中使用的多模冗余系統(tǒng)相比,雙冗余系統(tǒng)實現(xiàn)不如多模冗余系統(tǒng)復(fù)雜,實現(xiàn)成本更低。在單機穩(wěn)定性不斷提高,平均無故障時間不斷延長的今天,使用多模容錯系統(tǒng)的代價太高,因此對雙冗余容錯系統(tǒng)的研究具有重要意義。PROFIBUS主站使用雙冗余熱備份,在單個主站出現(xiàn)故障時,可以無縫切換,系統(tǒng)保持連續(xù)運行,提高了系統(tǒng)的可靠性?眼3-4?演。同時,雙冗余PROFIBUS總線設(shè)計,可以在保證系統(tǒng)實時性的基礎(chǔ)之上,提供了總線故障檢測和無縫故障切換功能?眼5?演。
本文重點分析了基于PROFIBUS總線的分布式控制系統(tǒng)中的關(guān)鍵容錯技術(shù),包括仲裁模塊的原理和設(shè)計,雙冗余熱備份PROFIBUS主站數(shù)據(jù)一致性問題,雙冗余PROFIBUS總線切換技術(shù)以及虛擬雙端口存儲器通信協(xié)議設(shè)計。
1 基本原理
1.1雙冗余PROFIBUS總線
PROFIBUS總線是一種廣泛應(yīng)用于工業(yè)現(xiàn)場控制系統(tǒng)的現(xiàn)場總線技術(shù),提供高速度低成本的解決方案。使用雙冗余PROFIBUS總線,在保持PROFIBUS總線的高速度低成本的基礎(chǔ)之上,為系統(tǒng)增加了無縫總線切換,無故障延遲特點,從而保證了系統(tǒng)的可靠性。
1.2 雙冗余熱備份PROFIBUS主站
PROFIBUS主站由通信板和上位機構(gòu)成,通信板負責主站和從站的PROFIBUS數(shù)據(jù)通信,上位機負責數(shù)據(jù)請求和數(shù)據(jù)處理。通信板和上位機之間通過虛擬雙端口存儲器通信。通信板包含四個任務(wù),上位機命令處理任務(wù)、雙網(wǎng)控制任務(wù)以及雙網(wǎng)獨立的兩個通信任務(wù)。在收到上位機命令后,雙網(wǎng)控制任務(wù)負責選擇PROFIBUS網(wǎng)絡(luò)與從站進行數(shù)據(jù)通信。
仲裁模塊是雙冗余熱備系統(tǒng)的關(guān)鍵組成部分,雙冗余熱備份主站通過仲裁模塊來裁決工作狀態(tài),當活動站出現(xiàn)工作故障后,仲裁模塊立即將備份站切換為活動站,系統(tǒng)無縫運行。雙冗余PROFIBUS熱備份容錯分布式控制系統(tǒng)整體框圖如圖1所示。
2 容錯技術(shù)研究
2.1 仲裁模塊
仲裁模塊裁決雙冗余PROFIBUS主站的工作狀態(tài),一個作為活動站,一個作為備份站,并將備份站從PROFIBUS總線中切出?;顒诱具M行正常PROFIBUS通信工作,同時通過心跳線與備份站互檢工作狀態(tài)。仲裁模塊的工作狀態(tài)有以下三種狀態(tài),上電識別、故障切換和故障恢復(fù)。對其分析如下:
(1)上電識別。系統(tǒng)剛上電時,仲裁模塊需要對雙冗余PROFIBUS主站的工作狀態(tài)進行裁決,兩個PROFIBUS主站對仲裁模塊產(chǎn)生的仲裁信號加以識別,并分別進入活動站和備份站狀態(tài)。
(2)故障切換。當活動PROFIBUS主站出現(xiàn)故障時,需要進行切換。備份站從接管成為活動站,活動站被仲裁模塊從PROFIBUS總線中切出?;顒诱竞蛡浞菡镜那袚Q分為兩種類型。一是主動讓出,活動站故障后,看門狗溢出報警,仲裁模塊檢測到報警信號后,進行仲裁切換。二是被動搶占,雙機在通過心跳線互檢工作狀態(tài)時,備份站發(fā)現(xiàn)活動站出現(xiàn)故障,自動向仲裁模塊發(fā)送控制信號,搶占PROFIBUS控制器,成為活動站。
(3)故障恢復(fù)。修復(fù)后的故障站重新加入系統(tǒng)中,首先通過仲裁模塊的仲裁信號判斷工作狀態(tài)。當前另一主站已處于活動站狀態(tài),則自己進入備份站狀態(tài),系統(tǒng)正常工作。
2.2 雙冗余PROFIBUS主站數(shù)據(jù)一致性分析
在系統(tǒng)出現(xiàn)故障時,進行主備切換,備份站需要快速接管活動站的工作與從站進行通信,這就需要備份站在熱備過程中,與活動站的狀態(tài)保持一致。
(1)雙主站同時進入PROFIBUS總線,通過PROFIB-
US總線同步數(shù)據(jù)?;顒诱九c備份站同時進入PROFIBUS網(wǎng)絡(luò),分別設(shè)置不同的站地址?;顒诱臼盏綇恼緮?shù)據(jù)后,通過PROFIBUS總線與備份站同步數(shù)據(jù)。該方案充分利用了PROFIBUS總線進行通信,但是備份站的站地址設(shè)置與活動站不同,在活動站出現(xiàn)故障,進行切換時,備份站需要重新進行初始化,切換時間較慢。
(2)備份主站監(jiān)聽PROFIBUS總線,但屏蔽其PROF-
IBUS數(shù)據(jù)包發(fā)送。開始通信前,需要將其總線地址設(shè)置為與活動站相同,當活動站與從站進行通信時,備份站也能接收總線上的數(shù)據(jù),從而保證雙模主站的數(shù)據(jù)一致。當活動站出現(xiàn)故障時,備份站在規(guī)定時間內(nèi)收不到活動主站發(fā)來的心跳數(shù)據(jù),即進行故障切換,發(fā)送控制信號改變仲裁板的仲裁信號,進入活動站狀態(tài),繼續(xù)與從站通信。當故障站恢復(fù)后,通過檢測仲裁結(jié)果,進入備份狀態(tài),并繼續(xù)與活動主站發(fā)送心跳數(shù)據(jù)。該方案能夠減輕活動主站的工作負載,并且避免心跳線成為系統(tǒng)性能瓶頸。但該方案需要修改PROFIBUS總線協(xié)議,實現(xiàn)較復(fù)雜。
(3)雙主站通過心跳線同步數(shù)據(jù)。備份站在初始化完成后,從PROFIBUS總線中切出,不進行任何PROFIBUS通信,每個周期通過心跳線來接收活動站發(fā)來的從站數(shù)據(jù)。該方案實現(xiàn)更為簡單,但是心跳數(shù)據(jù)周期必須小于PROFIBUS輪詢所有從站一圈的通信周期,活動站的工作負載較大。
2.3雙冗余PROFIBUS總線切換
PROFIBUS總線是主從式令牌環(huán)網(wǎng)絡(luò),采用雙網(wǎng)設(shè)計可以保證系統(tǒng)的高可靠性。為了保證從站采集數(shù)據(jù)的實時性,雙冗余PROFIBUS總線同時工作,活動站能從兩條總線上同時發(fā)送和接收從站數(shù)據(jù),當某個從站或某條總線出現(xiàn)故障時,都能立刻從另外一條總線上獲得數(shù)據(jù),無需任何切換操作,系統(tǒng)能夠保持繼續(xù)運行。同時,通過雙網(wǎng)控制,對上位機隱藏雙冗余總線設(shè)計,簡化上位機軟件設(shè)計。雙冗余PROFIBUS總線的雙網(wǎng)控制設(shè)計方案如圖2所示。
通信任務(wù)0和1分別通過雙冗余PROFIBUS的0網(wǎng)和1網(wǎng)與從站通信,當通信任務(wù)收到從站數(shù)據(jù)包以后,直接將其轉(zhuǎn)發(fā)給雙網(wǎng)控制任務(wù)。然后雙網(wǎng)控制任務(wù)通過數(shù)據(jù)包的狀態(tài),判斷通信是否出錯,如果出錯,則標記數(shù)據(jù)包來源從站在對應(yīng)網(wǎng)絡(luò)上通信錯誤。如果數(shù)據(jù)包狀態(tài)正確,則判斷其來源,這里假設(shè)0網(wǎng)的優(yōu)先級高于1網(wǎng),即0網(wǎng)收到的數(shù)據(jù)正確時,就拋棄1網(wǎng)上接收的數(shù)據(jù),只有當0網(wǎng)出錯時,才從1網(wǎng)接收數(shù)據(jù)。
當數(shù)據(jù)包出錯時,根據(jù)雙網(wǎng)上接收的數(shù)據(jù)狀態(tài)來報警,如果只有一個網(wǎng)絡(luò)上出現(xiàn)錯誤,則可判斷另一網(wǎng)絡(luò)故障,如果兩個網(wǎng)絡(luò)上都沒法收到數(shù)據(jù),則可判斷是相應(yīng)從站故障。
2.4 虛擬雙端口存儲器通信協(xié)議