基于數(shù)據(jù)同步的主備同步方法
【專利摘要】本發(fā)明公開(kāi)了一種基于數(shù)據(jù)同步的主備同步方法,包括:設(shè)置主、備兩系為互鎖關(guān)系;每個(gè)同步周期開(kāi)始前,備系發(fā)送數(shù)據(jù)至主系;主系判斷接收到的備系數(shù)據(jù)是否同步,若不同步則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若同步則輸出同步標(biāo)志并輸出計(jì)算結(jié)果;備系若接收到同步標(biāo)志則輸出同步標(biāo)志并輸出搶主標(biāo)志,備系同時(shí)輸出計(jì)算結(jié)果;若備系收到不同步標(biāo)志和主系發(fā)出的同步數(shù)據(jù),則備系同步主系同步數(shù)據(jù)后輸出不同步標(biāo)志,并不輸出計(jì)算結(jié)果。本發(fā)明能解決實(shí)時(shí)工業(yè)自動(dòng)化控制領(lǐng)域中由于冗余切換同步數(shù)據(jù)量大,周期時(shí)間短,造成的數(shù)據(jù)同步失敗或同步錯(cuò)誤。
【專利說(shuō)明】基于數(shù)據(jù)同步的主備同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種實(shí)時(shí)工業(yè)自動(dòng)化控制中用于安全計(jì)算機(jī)的基于數(shù)據(jù)同步的主備同步方法。
【背景技術(shù)】
[0002]冗余切換是目前比較主流的安全計(jì)算機(jī)結(jié)構(gòu)中用于提高系統(tǒng)可用性的常見(jiàn)分方法,其典型結(jié)構(gòu)如圖1所示(以2乘2oo2安全計(jì)算機(jī)架構(gòu)為例)。從圖1可以看到該結(jié)構(gòu)中有兩套2取2系統(tǒng)。主備系統(tǒng)之間依靠切換板的自動(dòng)/手動(dòng)切換開(kāi)關(guān)實(shí)現(xiàn)整個(gè)2乘系統(tǒng)的熱切換。當(dāng)然也有一些安全系統(tǒng)采用冷備的策略,但是冷備策略在工業(yè)控制實(shí)時(shí)系統(tǒng)上有很多的缺點(diǎn),不能提高整個(gè)系統(tǒng)的可用性,不常采用。
[0003]熱備系統(tǒng)通常有以下兩種輸出方式:
[0004]一、在主系工作正常時(shí)切換板輸出主系的計(jì)算結(jié)果;當(dāng)主系出現(xiàn)故障時(shí)切換板輸出備系的計(jì)算結(jié)果;
[0005]二、在僅有主系工作正常,且備系與主系的數(shù)據(jù),狀態(tài)不一致時(shí),僅輸出主系數(shù)據(jù)。當(dāng)備系與主系的數(shù)據(jù),狀態(tài)一致時(shí),此時(shí)備系進(jìn)入同步狀態(tài),切換板同時(shí)輸出主系與備系的輸出。
[0006]第一種切換冗余方法可以提高系統(tǒng)的可用性,維護(hù)性。但無(wú)法避免系統(tǒng)隨機(jī)故障帶來(lái)的安全問(wèn)題,也就是需要保證輸入的完全一致,如果發(fā)生隨機(jī)干擾導(dǎo)致輸入不正確,可能影響到主備系同時(shí)故障。這就需要系統(tǒng)設(shè)計(jì)時(shí)考慮這些干擾,并增加容忍。這種方式通常可用在輸入都是信號(hào)量(都是O和I可以表示的),沒(méi)有模擬量的系統(tǒng)中,例如軌道交通信號(hào)中的聯(lián)鎖系統(tǒng)。
[0007]第二種切換冗余方式由于同步的策略是備系跟隨主系,因此軟件處理中有一定的差異,減少了由于隨機(jī)干擾導(dǎo)致的系統(tǒng)故障,因此有廣泛的應(yīng)用領(lǐng)域,例如軌道交通信號(hào)中的車載系統(tǒng)。第二種切換冗余方式的現(xiàn)有方法基本思路是(如圖2所示):
[0008]雙系(王,備兩系)啟動(dòng)后輸出驅(qū)動(dòng)王系繼電器,由于雙系存在互鎖關(guān)系,也就是說(shuō),在同一個(gè)周期,只有一系可以是主系,另外一系必定是備系;雙系采集切換板的繼電器,得到本系及對(duì)方系的主備系狀態(tài)。主系比較備系過(guò)來(lái)的數(shù)據(jù)是否與本系數(shù)據(jù)一致,如果一致,則輸出同步標(biāo)志,否則輸出不同步標(biāo)志,并發(fā)送本系的數(shù)據(jù)。最后驅(qū)動(dòng)主系繼電器;備系接收主系過(guò)來(lái)的數(shù)據(jù),如果不同步則采用主系的數(shù)據(jù)作為輸入運(yùn)行,并不輸出計(jì)算結(jié)果;如果同步則運(yùn)行本系數(shù)據(jù),并驅(qū)動(dòng)主系繼電器,最后將計(jì)算結(jié)果輸出。而切換板則采用或的關(guān)系來(lái)處理主備系的計(jì)算結(jié)果,也就是說(shuō),只要有一系輸出則輸出。從圖2所示步驟可以看出備系需要每周期發(fā)送同步數(shù)據(jù)給主系,主系需要每周期判斷備系的數(shù)據(jù)是否同步,輸出同步狀態(tài)和同步數(shù)據(jù)給備系。在這個(gè)過(guò)程中,最關(guān)鍵的是同步數(shù)據(jù)的選擇和同步策略。對(duì)于雙系間需要同步的數(shù)據(jù)量較小,周期較長(zhǎng)的系統(tǒng)來(lái)說(shuō),該冗余切換方式可以滿足其需要。但對(duì)于數(shù)據(jù)量較大,周期較短的系統(tǒng)來(lái)說(shuō),該冗余切換方式會(huì)導(dǎo)致數(shù)據(jù)不可能在一個(gè)周期內(nèi)發(fā)送完成,造成數(shù)據(jù)同步錯(cuò)誤/數(shù)據(jù)同步失敗。
【發(fā)明內(nèi)容】
[0009]本發(fā)明要解決的技術(shù)問(wèn)題是提供一種能改善現(xiàn)有冗余切換方式在一個(gè)周期內(nèi)同步數(shù)據(jù)無(wú)法發(fā)送完成造成數(shù)據(jù)同步錯(cuò)誤/數(shù)據(jù)同步失敗的基于數(shù)據(jù)同步的主備同步方法。
[0010]本發(fā)明要解決的技術(shù)問(wèn)題是提供一種能改善由于冗余切換同步數(shù)據(jù)量大,周期時(shí)間短,造成數(shù)據(jù)同步失敗或同步錯(cuò)誤的基于數(shù)據(jù)同步的主備同步方法。
[0011]為解決上述技術(shù)問(wèn)題,本發(fā)明提供的基于數(shù)據(jù)同步的主備同步方法,包括以下步驟:
[0012]I)設(shè)置主、備兩系為互鎖關(guān)系;
[0013]2)每個(gè)同步周期開(kāi)始前,備系發(fā)送數(shù)據(jù)至主系;
[0014]3)主系判斷接收到的備系數(shù)據(jù)是否同步,若不同步則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若同步則輸出同步標(biāo)志并輸出計(jì)算結(jié)果;
[0015]4)備系若接收到同步標(biāo)志則輸出同步標(biāo)志并輸出搶主標(biāo)志,備系輸出計(jì)算結(jié)果;
[0016]5)若備系收到不同步標(biāo)志和主系發(fā)出的同步數(shù)據(jù),則備系同步主系同步數(shù)據(jù)后輸出不同步標(biāo)志,并不輸出結(jié)算結(jié)果。
[0017]本發(fā)明提供的另一種基于數(shù)據(jù)同步的主備同步方法,將需要同步的數(shù)據(jù)劃分為安全數(shù)據(jù)和非安全數(shù)據(jù)。安全數(shù)據(jù)包括狀態(tài)值及影響到安全的不能通過(guò)本周期的輸入計(jì)算得到的值,例如一些狀態(tài)量,時(shí)間及計(jì)數(shù)值;非安全數(shù)據(jù)包括中間臨時(shí)變量,有延遲及容忍的值,例如可以通過(guò)狀態(tài)量及輸入計(jì)算得到的值,包括以下步驟:
[0018]I)設(shè)置主、備兩系為互鎖關(guān)系;
[0019]2)將數(shù)據(jù)根據(jù)預(yù)定義規(guī)則劃分為安全數(shù)據(jù)和非安全數(shù)據(jù);
[0020]3)每個(gè)同步周期開(kāi)始前,備系發(fā)送安全數(shù)據(jù)和非安全數(shù)據(jù)至主系;
[0021]4)主系判斷接收到的備系非安全數(shù)據(jù)是否在預(yù)設(shè)的容忍范圍內(nèi),若超過(guò)容忍范圍則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若在容忍范圍內(nèi)則輸出判斷標(biāo)志“是”;
[0022]5)主系判斷接收到的備系安全數(shù)據(jù)是否與主系安全數(shù)據(jù)一致,若不一致則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若一致則輸出判斷標(biāo)志“是”;
[0023]6)將步驟4)和步驟5)的判斷標(biāo)志進(jìn)行“與”關(guān)系判斷,若為“真”則輸出同步標(biāo)志,若為“假”則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系;
[0024]7)備系若接收到同步標(biāo)志則輸出同步標(biāo)志并輸出搶主標(biāo)志,備系同時(shí)輸出計(jì)算結(jié)果;
[0025]8)若備系收到不同步標(biāo)志和主系發(fā)出的同步數(shù)據(jù),則備系同步主系同步數(shù)據(jù)后輸出不同步標(biāo)志,并不輸出計(jì)算結(jié)果。
[0026]本發(fā)明用于解決實(shí)時(shí)工業(yè)自動(dòng)化控制領(lǐng)域中由于冗余切換同步數(shù)據(jù)量大,周期時(shí)間短,造成數(shù)據(jù)同步失敗或同步錯(cuò)誤的冗余切換問(wèn)題。本發(fā)明提出了基于數(shù)據(jù)的主備同步方法,同步數(shù)據(jù)僅需在每周期的輸出中選取,減少了數(shù)據(jù)量的大小。本發(fā)明在2乘結(jié)構(gòu)中采用了相同的輸入源,并且進(jìn)行了表決,因此兩系得到的輸入都是正確的。但兩系由于采用了跟隨策略,也就是兩系之間不要求任務(wù)級(jí)的嚴(yán)格同步,因此兩系的輸入是允許有時(shí)間差的,避免了隨機(jī)故障產(chǎn)生的干擾。而備系在不同步時(shí)采用了主系過(guò)來(lái)的數(shù)據(jù),加快了與主系的同步,從而大大提高了狀態(tài)同步的效率。主備系同步狀態(tài)下,由于主備系是同時(shí)輸出計(jì)算結(jié)果,當(dāng)主系發(fā)生故障時(shí),主系切斷輸出,而備系處于搶主狀態(tài),將搶主成功,并將計(jì)算結(jié)果輸出,從而縮減了切換的響應(yīng)時(shí)間。
【專利附圖】
【附圖說(shuō)明】
[0027]下面結(jié)合附圖與【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明:
[0028]圖1是一種典型的2乘2oo2系統(tǒng)結(jié)構(gòu)示意圖。
[0029]圖2是一種現(xiàn)有主備系運(yùn)行時(shí)序圖。
[0030]圖3是本發(fā)明第一實(shí)施例的示意圖一。
[0031]圖4是本發(fā)明第一實(shí)施例的示意圖二。
[0032]圖5是本發(fā)明第一實(shí)施例的示意圖三。
[0033]圖6是本發(fā)明第一實(shí)施例的示意圖四。
[0034]圖7是本發(fā)明第二實(shí)施例的示意圖。
【具體實(shí)施方式】
[0035]參考圖3所示,從系統(tǒng)的運(yùn)行模式分為兩個(gè)狀態(tài);一個(gè)是初始化狀態(tài);一個(gè)是運(yùn)行狀態(tài)。在初始化狀態(tài)中,系統(tǒng)內(nèi)部不運(yùn)行業(yè)務(wù)邏輯而是將內(nèi)部數(shù)據(jù)進(jìn)行初始化,并將初始化的數(shù)據(jù)輸出。
[0036]參考圖4所示,在運(yùn)行下的狀態(tài),系統(tǒng)內(nèi)部的軟件模塊輸入有本周期外部的輸入,上周期的輸出(包括狀態(tài)值),其他模塊的輸出及內(nèi)部的靜態(tài)數(shù)據(jù)。
[0037]參考圖5所示,從上面的分析可以看到基于數(shù)據(jù)的系統(tǒng)實(shí)現(xiàn)是依據(jù)本周期的外部輸入和上周期的輸出(包括了軟件內(nèi)部的狀態(tài)值及計(jì)算值),從而計(jì)算出本周期的結(jié)果。
[0038]基于數(shù)據(jù)同步的主備系切換應(yīng)該從軟件設(shè)計(jì)階段開(kāi)始,圖1-5是基于數(shù)據(jù)流的軟件開(kāi)發(fā)流程,說(shuō)明了數(shù)據(jù)的分類。從圖中可以看到數(shù)據(jù)其實(shí)可以分為三類:
[0039]靜態(tài)數(shù)據(jù):軟件中自帶的數(shù)據(jù),這部分只要保證主備系軟件是相同的數(shù)據(jù)版本,是不需要同步的;
[0040]輸入數(shù)據(jù):實(shí)時(shí)系統(tǒng)中每周期的輸入數(shù)據(jù),這部分是外部的輸入,通過(guò)外部的表決機(jī)制可以保證主備系得到輸入數(shù)據(jù)的一致性,因此也不需要同步;
[0041]輸出數(shù)據(jù):實(shí)時(shí)系統(tǒng)中每周期得輸出數(shù)據(jù),這部分是軟件根據(jù)外部輸入計(jì)算得到的,由于軟件中處理的時(shí)機(jī)存在差異,且有些狀態(tài)是連續(xù)的,因此這部分是同步數(shù)據(jù)的關(guān)鍵。
[0042]通過(guò)以上分析,同步數(shù)據(jù)的選擇在于輸出數(shù)據(jù),包括內(nèi)部的狀態(tài)值,計(jì)算值。這部分?jǐn)?shù)據(jù)經(jīng)過(guò)詳細(xì)分析,可以將一些僅需根據(jù)輸入值就能得到數(shù)據(jù)排除在同步數(shù)據(jù)之外,而連續(xù)的狀態(tài)值則是安全的同步數(shù)據(jù),需要累計(jì)的計(jì)算值則是可以設(shè)置容忍的非安全同步數(shù)據(jù)。
[0043]參考圖6所示,本發(fā)明第一實(shí)施例,包括一下步驟:
[0044]I)設(shè)置主、備兩系為互鎖關(guān)系;
[0045]2)每個(gè)同步周期開(kāi)始前,備系發(fā)送數(shù)據(jù)至主系;
[0046]3)主系判斷接收到的備系數(shù)據(jù)是否同步,若不同步則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若同步則輸出同步標(biāo)志并輸出計(jì)算結(jié)果;
[0047]4)備系若接收到同步標(biāo)志則輸出同步標(biāo)志并輸出搶主標(biāo)志,備系同時(shí)輸出計(jì)算結(jié)果;
[0048]5)若備系收到不同步標(biāo)志和主系發(fā)出的同步數(shù)據(jù),則備系同步主系同步數(shù)據(jù)后輸出不同步標(biāo)志,并不輸出結(jié)算結(jié)果。
[0049]如圖7所示,本發(fā)明提供的第二實(shí)施例,包括以下步驟:
[0050]I)設(shè)置主、備兩系為互鎖關(guān)系;
[0051]2)將數(shù)據(jù)根據(jù)預(yù)定義規(guī)則劃分為安全數(shù)據(jù)和非安全數(shù)據(jù);
[0052]安全數(shù)據(jù)包括狀態(tài)值及影響到安全的不能通過(guò)本周期的輸入計(jì)算得到的值,例如一些狀態(tài)量,時(shí)間及計(jì)數(shù)值;非安全數(shù)據(jù)包括中間臨時(shí)變量,有延遲及容忍的值,例如可以通過(guò)狀態(tài)量及輸入計(jì)算得到的值;
[0053]3)每個(gè)同步周期開(kāi)始前,備系發(fā)送安全數(shù)據(jù)和非安全數(shù)據(jù)至主系;
[0054]4)主系判斷接收到的備系非安全數(shù)據(jù)是否在預(yù)設(shè)的容忍范圍內(nèi),若超過(guò)容忍范圍則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若在容忍范圍內(nèi)則輸出判斷標(biāo)志“是”;
[0055]5)主系判斷接收到的備系安全數(shù)據(jù)是否與主系安全數(shù)據(jù)一致,若不一致則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若一致則輸出判斷標(biāo)志“是”;
[0056]6)將步驟4)和步驟5)的判斷標(biāo)志進(jìn)行“與”關(guān)系判斷,若為“真”則輸出同步標(biāo)志,若為“假”則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系;
[0057]7)備系若接收到同步標(biāo)志則輸出同步標(biāo)志并輸出搶主標(biāo)志,備系同時(shí)輸出計(jì)算結(jié)果;
[0058]8)若備系收到不同步標(biāo)志和主系發(fā)出的同步數(shù)據(jù),則備系同步主系同步數(shù)據(jù)后輸出不同步標(biāo)志,并不輸出計(jì)算結(jié)果。
[0059]以上通過(guò)【具體實(shí)施方式】和實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,但這些并非構(gòu)成對(duì)本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域的技術(shù)人員還可做出許多變形和改進(jìn),這些也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種基于數(shù)據(jù)同步的主備同步方法,其特征是,包括以下步驟: 1)設(shè)置主、備兩系為互鎖關(guān)系; 2)每個(gè)同步周期開(kāi)始前,備系發(fā)送數(shù)據(jù)至主系; 3)主系判斷接收到的備系數(shù)據(jù)是否同步,若不同步則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若同步則輸出同步標(biāo)志并輸出計(jì)算結(jié)果; 4)備系若接收到同步標(biāo)志則輸出同步標(biāo)志并輸出搶主標(biāo)志,備系同時(shí)輸出計(jì)算結(jié)果; 5)若備系收到不同步標(biāo)志和主系發(fā)出的同步數(shù)據(jù),則備系同步主系同步數(shù)據(jù)后輸出不冋步標(biāo)志,并不輸出計(jì)算結(jié)果。
2.一種基于數(shù)據(jù)同步的主備同步方法,其特征是,包括以下步驟: 1)設(shè)置主、備兩系為互鎖關(guān)系; 2)將數(shù)據(jù)根據(jù)預(yù)定義規(guī)則劃分為安全數(shù)據(jù)和非安全數(shù)據(jù); 3)每個(gè)同步周期開(kāi)始前,備系發(fā)送安全數(shù)據(jù)和非安全數(shù)據(jù)至主系; 4)主系判斷接收到的備系非安全數(shù)據(jù)是否在預(yù)設(shè)的容忍范圍內(nèi),若超過(guò)容忍范圍則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若在容忍范圍內(nèi)則輸出判斷標(biāo)志“是”; 5)主系判斷接收到的備系安全數(shù)據(jù)是否與主系安全數(shù)據(jù)一致,若不一致則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系,若一致則輸出判斷標(biāo)志“是”; 6)將步驟4)和步驟5)的判斷標(biāo)志進(jìn)行“與”關(guān)系判斷,若為“真”則輸出同步標(biāo)志,若為“假”則輸出不同步標(biāo)志并發(fā)送同步數(shù)據(jù)至備系; 7)備系若接收到同步標(biāo)志則輸出同步標(biāo)志并輸出搶主標(biāo)志,備系同時(shí)輸出計(jì)算結(jié)果; 8)若備系收到不同步標(biāo)志和主系發(fā)出的同步數(shù)據(jù),則備系同步主系同步數(shù)據(jù)后輸出不冋步標(biāo)志,并不輸出計(jì)算結(jié)果。
【文檔編號(hào)】G06F11/20GK104360916SQ201410668432
【公開(kāi)日】2015年2月18日 申請(qǐng)日期:2014年11月20日 優(yōu)先權(quán)日:2014年11月20日
【發(fā)明者】王慶勝, 王軍偉, 杜建新, 袁亮, 邱磊 申請(qǐng)人:上海富欣智能交通控制有限公司