專利名稱:一種避免冗余主站對串行總線鏈路訪問沖突的方法
技術領域:
本發(fā)明涉及一種避免冗余主站對串行總線鏈路訪問沖突的方法,特別涉及一種在主從應答規(guī)約中避免冗余主站對串行總線鏈路訪問沖突的方法。
背景技術:
冗余技術是計算機系統(tǒng)可靠性設計中常用的一種技術,雙機冗余熱備結(jié)構(gòu)更是被廣泛應用于許多過程控制領域的各種監(jiān)控系統(tǒng)中。這種結(jié)構(gòu)的冗余主站與從站之間具有雙通道,圖1是這種結(jié)構(gòu)的一個示例,其中作為主站的兩個冗余IO站中的主機和從機分別通過一根串行總線或者其它類型的總線與作為從站的設備相連。主機和從機同時采集設備的數(shù)據(jù),由主機對設備發(fā)出控制指令,此時不會產(chǎn)生對串行總線鏈路的訪問沖突。
然而,目前國內(nèi)一些設備的通信只支持單通道,冗余主站(如IO站)的主機和從機只通過一根串行總線連接到設備,其結(jié)構(gòu)如圖2所示。此時,必須保證主機和從機不會同時向設備發(fā)送數(shù)據(jù)請求、控制指令等,否則將會導致鏈路數(shù)據(jù)混亂,通信失敗。但是,主機和從機又都需要通過與設備的不斷通訊來驗證與設備間的通訊是否正常。因此,如果作為從站的設備和作為主站的IO站之間的通信規(guī)約采用主從應答方式,就必須對主機和從機對總線鏈路的訪問加以管理。
發(fā)明內(nèi)容
本發(fā)明即是針對上述現(xiàn)有技術中存在的缺點而提出的一種避免冗余主站對串行總線鏈路訪問沖突的方法,本方法能夠保證冗余主站的雙機與設備間采用單通道時,不會同時對設備執(zhí)行操作。
本發(fā)明是通過下述技術方案來實現(xiàn)的
一種避免冗余主站對串行總線鏈路訪問沖突的方法,應用于冗余主站系統(tǒng),所述冗余主站中雙機通過一根串行總線鏈路與作為從站的設備連接,雙機之間可以相互通信,其特征在于,該方法包括下述步驟(a)熱機進行數(shù)據(jù)采集處理,組包向設備下發(fā)數(shù)據(jù)請求、采集數(shù)據(jù)并處理數(shù)據(jù),備機處于靜默狀態(tài);(b)每隔一段時間進行一次備機的狀態(tài)檢測過程,由熱機組包向備機發(fā)送一個數(shù)據(jù)請求,備機將該請求下發(fā)到從站設備,進行一次數(shù)據(jù)采集,判斷備機的在線離線狀態(tài)并作出標識,此時熱機為靜默狀態(tài);(c)備機將數(shù)據(jù)采集結(jié)果發(fā)送給熱機,由熱機進行數(shù)據(jù)處理,備機轉(zhuǎn)為靜默狀態(tài),熱機繼續(xù)執(zhí)行步驟(a)。
進一步地,所述冗余主站中的雙機分別配置為默認主機和默認從機,所述的步驟(b)中,備機的狀態(tài)檢測過程由默認主機發(fā)起,若默認主機為熱機,則其定時向默認從機發(fā)送一個數(shù)據(jù)請求;若默認主機為備機,則其定時向默認從機發(fā)出啟動檢測請求,由默認從機回復一個數(shù)據(jù)請求給默認主機。
進一步地,所述冗余主站中的雙機分別配置為默認主機和默認從機,所述的步驟(b)中,備機的狀態(tài)檢測過程由默認從機發(fā)起,若默認從機為熱機,則其定時向默認主機發(fā)送一個數(shù)據(jù)請求;若默認從機為備機,則其定時向默認主機發(fā)出啟動檢測請求,由默認主機回復一個數(shù)據(jù)請求給默認從機。
進一步地,所述步驟(b)中,由熱機來觸發(fā)備機的狀態(tài)檢測過程,即確認自己為熱機后,每隔一段時間向備機發(fā)送一次數(shù)據(jù)請求。
進一步地,所述的步驟(b)中,所述熱機發(fā)送數(shù)據(jù)請求后,等待從機返回數(shù)據(jù)采集結(jié)果的靜默時間為一次采集超時時間的1.5~2.5倍。
進一步地,判斷熱機或備機的在線離線狀態(tài)是通過下述方法實現(xiàn)的若熱機或備機與設備能夠正常通信,則在線,若不能夠正常通信,則為離線。
進一步地,所述熱機在采集處理過程中還檢測與設備間的在線離線狀態(tài),當其由在線狀態(tài)變?yōu)殡x線狀態(tài)時,雙機實現(xiàn)熱備轉(zhuǎn)換。
與現(xiàn)有技術相比,本發(fā)明主站的冗余雙方數(shù)據(jù)采集時互為熱備機,保證只有一方對從站進行操作,保證從站的測試數(shù)據(jù)在主站能夠得到處理,并且能夠隨時檢測熱機和備機的在線或離線狀態(tài),適于從站設備為單通道設備使用。
圖1為現(xiàn)有技術中冗余雙機熱備結(jié)構(gòu)的示意圖。
圖2為本發(fā)明實施例中冗余雙機通過單通道與設備連接的示意圖。
圖3為本發(fā)明實施例中系統(tǒng)啟動后默認主機的工作流程圖。
圖4為本發(fā)明實施例中系統(tǒng)啟動后默認從機的工作流程圖。
具體實施例方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步的介紹,但不作為對本發(fā)明的限定。
一個冗余主站的監(jiān)控系統(tǒng)中,冗余雙方分別為IO站A機和IO站B機,設定A機為默認主機,B機默認從機,從站為待監(jiān)控設備。該系統(tǒng)中,A機和B機通過串行總線鏈路分別與作為從站的設備連接,同時A機和B機之間設置以太網(wǎng)或者專用串口通道連接,也可以如圖2所示在A機和B機之間同時設置以太網(wǎng)或者串行通道,并確定它們的優(yōu)先級的方式實現(xiàn)連接。
首先說明的是,在下述論述中,IO站A機和IO站B機的在線狀態(tài)或者離線狀態(tài)是指其與某個設備的連接狀態(tài),認為IO站A機和IO站B機之間的通信狀態(tài)始終保持正常。
在本實施例中,該監(jiān)控系統(tǒng)啟動后,設定A機為熱機,B機為備機,A機不斷循環(huán)進行數(shù)據(jù)的采集處理過程,包括組包,向從站設備發(fā)送數(shù)據(jù)請求,接收來自從站設備的數(shù)據(jù)并進行處理等操作。同時,A機每隔30秒啟動一次備機(此時為B機)的狀態(tài)檢測過程,將組包的數(shù)據(jù)請求發(fā)送到B機,由B機向設備下發(fā)一次請求,接收數(shù)據(jù),以檢測B機和設備間的在線/離線狀態(tài),并將接收到的數(shù)據(jù)返回A機,由A機進行處理。如果因A機離線或其它原因需要將B機切換為熱機后,則改由B機循環(huán)進行數(shù)據(jù)的采集處理過程,但仍由A機啟動備機(此時為A機)的狀態(tài)檢測過程,每隔30秒向B機發(fā)送一次啟動檢測的請求,由B機將此次組包后的數(shù)據(jù)請求發(fā)送到A機,A機再下發(fā)到相應設備,進行一次數(shù)據(jù)采集,并將此次數(shù)據(jù)采集的結(jié)果返回到B機,由B機進行處理。當A機正常后或根據(jù)策略需要將A機切換為熱機時,B機會自動轉(zhuǎn)換為備機,此時A機恢復為熱機。
參考圖3所示的A機的工作流程圖。A機為默認主機;設定第一定時器的定時時間為30秒,用于設定A機向B機發(fā)送請求命令的時間間隔。A機啟動后,執(zhí)行下述步驟步驟100第一定時器清零,重新啟動,根據(jù)A機的在線離線標識,判斷A機是否為熱機,如果A機標識為在線,則為熱機,執(zhí)行步驟101,如果A機的標識為離線,則A不是熱機,為備機,執(zhí)行步驟107;步驟101A機進行一次采集處理過程,包括組包、向從站設備發(fā)請求,采集數(shù)據(jù)和處理數(shù)據(jù);步驟102判斷A機是否在線,如果是,執(zhí)行步驟103,如果否,更新A機的在線離線標識,并通知B機,返回執(zhí)行步驟100;若在步驟101中,A機與從站設備通信時,若發(fā)現(xiàn)通道不通,則表明A機對應于相應的設備為離線狀態(tài),反之,A機在線;步驟103判斷第一定時器是否計時到30秒,如果是,則執(zhí)行步驟104,如果否,則返回執(zhí)行步驟101;步驟104A機與B機通信,組包后向B機發(fā)送數(shù)據(jù)請求;步驟105A機進入靜默狀態(tài),等待時間為采集周期超時時間的2倍,以保證B機能有足夠的處理時間;步驟106A機接收到B機返回的此次數(shù)據(jù)采集結(jié)果,處理數(shù)據(jù),返回步驟100。
步驟107A機等待30秒,向B機發(fā)送一個啟動檢測的請求;步驟108A機接收到B機回復的一個數(shù)據(jù)請求;步驟109A機接收到的B機回復的請求后,下發(fā)設備,執(zhí)行一次數(shù)據(jù)采集過程,同時根據(jù)設備的應答情況確定A機在線離線狀態(tài);
步驟110更新A機的在線離線標識;步驟111A機將此次數(shù)據(jù)采集的結(jié)果返回給B機,再返回執(zhí)行步驟100。
以上流程中,熱機是在每次采集處理過程后就判斷一次在線離線狀態(tài),其反應比較靈敏。但在另一實施例中,也可以在進行了多次采集處理過程并根據(jù)設備的應答判斷其狀態(tài)不變時,再置在線離線標志識,這樣比較穩(wěn)定。備機的處理也是一樣的。
參考圖4所示的本系統(tǒng)中,B機的工作流程圖。B機為默認從機,執(zhí)行下述步驟步驟200判斷B機是否為備機,如果是,則執(zhí)行步驟201,如果否,B則為熱機,執(zhí)行步驟205;在B機工作過程中,可以根據(jù)A機的狀態(tài)變化通知來設置自己是熱機或備機的標志,當A機作為熱機時,B機為備機,A機從熱機切換為備機時,則B機從備機切換為熱機。
步驟201判斷是否接收到A機的數(shù)據(jù)請求,如果是,則執(zhí)行步驟202,如果否,則繼續(xù)執(zhí)行步驟201;步驟202B機將接收到的A機的數(shù)據(jù)請求下發(fā)設備,執(zhí)行一次采集過程,并根據(jù)設備應答情況判斷B機在線狀態(tài);當B機與從站設備通信時,若發(fā)現(xiàn)通道不通,則表明B機對應于相應的設備為離線狀態(tài),反之,B機在線;步驟203更新B機在線離線標志;步驟204B機將此次數(shù)據(jù)采集的結(jié)果返回給A機,再返回執(zhí)行步驟200。
步驟205B機進行一次采集處理過程,包括組包、向從站設備發(fā)數(shù)據(jù)請求,采集數(shù)據(jù),處理數(shù)據(jù),并根據(jù)設備應答情況判斷B機的在線離線狀態(tài)并置B機的在線離線標志,如果在線,執(zhí)行下一步,否則,作異常處理;步驟206判斷是否接收到A機發(fā)送的啟動檢測請求,如果是,執(zhí)行步驟207,如果否,返回執(zhí)行步驟205;步驟207B機組包,向A機回復一個數(shù)據(jù)請求;步驟208B機處于靜默狀態(tài),等待時間為采集周期超時時間的2倍,以保證A機能有足夠的處理時間;在此步驟208進行過程中,相應的A機執(zhí)行步驟109和步驟110;步驟209B機接收到A機的返回數(shù)據(jù),進行數(shù)據(jù)處理,返回執(zhí)行步驟200。
上述實施例中,熱機在循環(huán)采集處理的過程中,每隔一段時間向備機發(fā)送一次數(shù)據(jù)請求,等待備機完成此次數(shù)據(jù)采集并返回數(shù)據(jù)。這樣,即達到了避免熱機和備機發(fā)生總線鏈路訪問沖突,同時,也沒有擾亂正常的數(shù)據(jù)采集過程。和通過發(fā)送專門的檢測包相比,簡化了處理流程,并且不會因為等待檢測包響應而導致設備上傳的重要事件丟失。
需要說明的是,備機的狀態(tài)檢測過程由誰來觸發(fā)并不局限于實施例中由默認主機觸發(fā)的方式。在另一實施例中,同樣可以由默認從機觸發(fā),即默認從機為熱機時,每隔一段時間向備機發(fā)送數(shù)據(jù)請求,由備機下發(fā)到設備并完成一次數(shù)據(jù)采集,返回到熱機。默認從機為備機時,則每隔一段時間向熱機發(fā)送一次啟動檢測請求,由熱機返回一個數(shù)據(jù)請求,再下發(fā)到設備。
或者,在另一實施例中,由熱機來觸發(fā)備機的狀態(tài)檢測過程,即確認自己為熱機后,每隔一段時間向備機發(fā)送一次數(shù)據(jù)請求,由備機下發(fā)到設備并完成一次數(shù)據(jù)采集,返回到熱機。
另外,熱機和備機的切換策略也不僅僅局限于實施例中的方式,即默認主機在線時為熱機,離線時將默認從機切換為熱機。在另一實施例中,可以不設置兩臺機子為默認主機或默認從機,在雙機均在線時,可以根據(jù)其各自所帶的在線設備的多少來確定是作為熱機還是備機。
權(quán)利要求
1.一種避免冗余主站對串行總線鏈路訪問沖突的方法,應用于冗余主站系統(tǒng),所述冗余主站中雙機通過一根串行總線鏈路與作為從站的設備連接,雙機之間可以相互通信,其特征在于,該方法包括下述步驟(a)熱機進行數(shù)據(jù)采集處理,組包向設備下發(fā)數(shù)據(jù)請求、采集數(shù)據(jù)并處理數(shù)據(jù),備機處于靜默狀態(tài);(b)每隔一段時間進行一次備機的狀態(tài)檢測過程,由熱機組包向備機發(fā)送一個數(shù)據(jù)請求,備機將該請求下發(fā)到從站設備,進行一次數(shù)據(jù)采集,判斷備機的在線離線狀態(tài)并作出標識,此時熱機為靜默狀態(tài);(c)備機將數(shù)據(jù)采集結(jié)果發(fā)送給熱機,由熱機進行數(shù)據(jù)處理,備機轉(zhuǎn)為靜默狀態(tài),熱機繼續(xù)執(zhí)行步驟(a)。
2.如權(quán)利要求1所述的一種避免冗余主站對串行總線鏈路訪問沖突的方法,其特征在于所述冗余主站中的雙機分別配置為默認主機和默認從機,所述的步驟(b)中,備機的狀態(tài)檢測過程由默認主機發(fā)起,若默認主機為熱機,則其定時向默認從機發(fā)送一個數(shù)據(jù)請求;若默認主機為備機,則其定時向默認從機發(fā)出啟動檢測請求,由默認從機回復一個數(shù)據(jù)請求給默認主機。
3.如權(quán)利要求1所述的一種避免冗余主站對串行總線鏈路訪問沖突的方法,其特征在于所述冗余主站中的雙機分別配置為默認主機和默認從機,所述的步驟(b)中,備機的狀態(tài)檢測過程由默認從機發(fā)起,若默認從機為熱機,則其定時向默認主機發(fā)送一個數(shù)據(jù)請求;若默認從機為備機,則其定時向默認主機發(fā)出啟動檢測請求,由默認主機回復一個數(shù)據(jù)請求給默認從機。
4.如權(quán)利要求1所述的一種避免冗余主站對串行總線鏈路訪問沖突的方法,其特征在于所述步驟(b)中,由熱機來觸發(fā)備機的狀態(tài)檢測過程,即確認自己為熱機后,每隔一段時間向備機發(fā)送一次數(shù)據(jù)請求。
5.如權(quán)利要求1所述的一種避免冗余主站對串行總線鏈路訪問沖突的方法,其特征在于所述的步驟(b)中,所述熱機發(fā)送數(shù)據(jù)請求后,等待從機返回數(shù)據(jù)采集結(jié)果的靜默時間為一次采集超時時間的1.5~2.5倍。
6.如權(quán)利要求1所述的一種避免冗余主站對串行總線鏈路訪問沖突的方法,其特征在于判斷熱機或備機的在線離線狀態(tài)是通過下述方法實現(xiàn)的若熱機或備機與設備能夠正常通信,則在線,若不能夠正常通信,則為離線。
7.如權(quán)利要求1所述的一種避免冗余主站對串行總線鏈路訪問沖突的方法,其特征在于所述熱機在采集處理過程中還檢測與設備間的在線離線狀態(tài),當其由在線狀態(tài)變?yōu)殡x線狀態(tài)時,雙機實現(xiàn)熱備轉(zhuǎn)換。
全文摘要
本發(fā)明提供了一種避免冗余主站對串行總線鏈路訪問沖突的方法,應用于冗余主站系統(tǒng),主站雙機之間可以相互通信,包括下述步驟(a)熱機進行數(shù)據(jù)采集處理,組包向設備下發(fā)數(shù)據(jù)請求、采集數(shù)據(jù)并處理數(shù)據(jù),備機處于靜默狀態(tài);(b)每隔一段時間進行一次備機的狀態(tài)檢測過程,由熱機組包向備機發(fā)送一個數(shù)據(jù)請求,備機將該請求下發(fā)到從站設備,進行一次數(shù)據(jù)采集,判斷備機的在線離線狀態(tài)并作出標識,此時熱機為靜默狀態(tài);(c)備機將數(shù)據(jù)采集結(jié)果發(fā)送給熱機,由熱機進行數(shù)據(jù)處理,備機轉(zhuǎn)為靜默狀態(tài),熱機繼續(xù)執(zhí)行步驟(a)。本方法能保證主從應答規(guī)約中從站設備為單通道時,冗余主站不會同時對設備執(zhí)行操作。
文檔編號H04B1/74GK1753377SQ200510115559
公開日2006年3月29日 申請日期2005年11月4日 優(yōu)先權(quán)日2005年11月4日
發(fā)明者賀學文, 趙云飛 申請人:北京和利時系統(tǒng)工程股份有限公司