亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于鏈路狀態(tài)在線實時診斷的總線冗余方法和系統(tǒng)的制作方法

文檔序號:7889049閱讀:422來源:國知局
專利名稱:基于鏈路狀態(tài)在線實時診斷的總線冗余方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及工業(yè)控制領(lǐng)域,尤其涉及一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法和系統(tǒng)。
背景技術(shù)
在工業(yè)控制領(lǐng)域,通常采用冗余總線的方法實現(xiàn)設(shè)備間數(shù)據(jù)的可靠通訊,即當(dāng)默認(rèn)數(shù)據(jù)總線出現(xiàn)故障時切換到備用總線進行通訊。在現(xiàn)有的串行通訊方案中,設(shè)備間的通訊多依賴于主設(shè)備進行,普通設(shè)備一般無法獲知整個鏈路的節(jié)點狀態(tài)。一般情況下,對基于CAN (Controller Area Network,控制器局域網(wǎng)絡(luò))總線設(shè)計的控制系統(tǒng)的底層通訊總線,在總線通訊之前,主設(shè)備需要向鏈路廣播信息,以查詢從節(jié)點是否處于在線狀態(tài),從節(jié)點通過回復(fù)響應(yīng)以通知主設(shè)備所述從節(jié)點在線,如果所述從節(jié)點未回復(fù)響應(yīng)即不在線,說明此通訊總線出現(xiàn)故障,則需要切換至備用的數(shù)據(jù)總線進行通訊。但是,由于主設(shè)備對通訊總線中從節(jié)點在線狀態(tài)的查詢,存在一個建立鏈接的過程,同時冗余總線的切換也需要周期,會存在較大的延時,一般在30 100ms,在這期間通訊總線處于斷路狀態(tài),因此,在通訊總線的查詢診斷和冗余總線切換這一較長的時間片內(nèi), 由于通訊總線斷路無法進行通訊,會存在極易導(dǎo)致數(shù)據(jù)丟失的問題。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法和系統(tǒng),以解決現(xiàn)有冗余通訊鏈路中,在通訊總線對從節(jié)點進行在線狀態(tài)查詢及冗余總線切換這段時間內(nèi),由于通訊總線斷路,而導(dǎo)致數(shù)據(jù)丟失的問題。為了達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法,包括選取串行總線上具有同等地位的設(shè)備中的任意一個為鏈路調(diào)度設(shè)備,并設(shè)置所述鏈路調(diào)度設(shè)備中的鏈路模塊為鏈路調(diào)度器,其他未被選取的設(shè)備則為普通設(shè)備;通過所述鏈路調(diào)度器實時監(jiān)測并獲取當(dāng)前鏈路節(jié)點的在線信息;當(dāng)所述鏈路調(diào)度器監(jiān)測到所述鏈路節(jié)點的在線信息變化時,所述鏈路調(diào)度器通過鏈路狀態(tài)發(fā)布幀向所述普通設(shè)備發(fā)布所述當(dāng)前鏈路節(jié)點的在線信息; 所述普通設(shè)備收到所述鏈路狀態(tài)發(fā)布幀后進行保存;所述鏈路調(diào)度設(shè)備和所述普通設(shè)備在數(shù)據(jù)發(fā)布前,查詢所述保存的鏈路狀態(tài)發(fā)布幀中包含的所述當(dāng)前鏈路節(jié)點的在線信息,選取無故障的鏈路進行通訊。優(yōu)選地,所述鏈路調(diào)度器實時監(jiān)測并獲取當(dāng)前鏈路節(jié)點的在線信息,包括所述鏈路調(diào)度器向總線上的各設(shè)備依次發(fā)送令牌;所述各設(shè)備在線時,收到令牌后依次回復(fù)響應(yīng),其中所述回復(fù)響應(yīng)的幀中包含回復(fù)設(shè)備的地址標(biāo)簽;
所述鏈路調(diào)度器獲得所述地址標(biāo)簽后,將鏈路節(jié)點在線表中對應(yīng)節(jié)點的在線標(biāo)志位置位,所述標(biāo)志位對應(yīng)內(nèi)部的一個N狀態(tài)計數(shù)器;所述計數(shù)器在定時器的驅(qū)動下逐次遞減,且在收到所述回復(fù)設(shè)備的地址標(biāo)簽后將計數(shù)器重置為N,當(dāng)所述計數(shù)器為0時,表示節(jié)點下線,其他狀態(tài)均表示節(jié)點在線;其中,對于不在線的設(shè)備,不會發(fā)送回復(fù)響應(yīng),所述鏈路節(jié)點在線表中對應(yīng)的標(biāo)志位不會被置位;所述鏈路調(diào)度設(shè)備通過其它節(jié)點的回復(fù)響應(yīng)來判斷所述鏈路調(diào)度設(shè)備是否在線。優(yōu)選地,所述N值的設(shè)定要保證下線周期時間至少為一個掃描周期;其中,所述下線周期時間為所述N值減為0所用的時間,所述掃描周期為所述鏈路調(diào)度器向鏈路中所有設(shè)備都發(fā)布完一幀令牌并收到所有普通設(shè)備的回復(fù)響應(yīng)的時間。優(yōu)選地,所述回復(fù)響應(yīng)包括令牌幀或有效數(shù)據(jù)幀。優(yōu)選地,所述鏈路節(jié)點在線表包括對應(yīng)各個普通設(shè)備的內(nèi)部包含計數(shù)器的子模塊。優(yōu)選地,所述查詢保存的鏈路狀態(tài)發(fā)布幀中包含的所述當(dāng)前鏈路節(jié)點的在線信息,選取無故障的鏈路進行通訊,包括所述鏈路調(diào)度設(shè)備和所述普通設(shè)備在發(fā)布數(shù)據(jù)前,查詢其中一路總線上本節(jié)點是否在線,當(dāng)所述本節(jié)點處于在線狀態(tài)時,查詢目標(biāo)節(jié)點是否在線,當(dāng)所述目標(biāo)節(jié)點在線時, 則在此路總線發(fā)布數(shù)據(jù);當(dāng)所述本節(jié)點不在線或所述目標(biāo)節(jié)點不在線時,查詢另一路總線上的本節(jié)點是否在線,當(dāng)所述另一路總線上本節(jié)點在線時,查詢所述另一路總線上的目標(biāo)節(jié)點是否在線,當(dāng)所述目標(biāo)節(jié)點在線時,則在所述另一路總線發(fā)布數(shù)據(jù);當(dāng)所述本節(jié)點或目標(biāo)節(jié)點在所述另一路總線上不在線時,則返回執(zhí)行所述設(shè)備在發(fā)布數(shù)據(jù)前,查詢其中一路總線上本節(jié)點是否在線這一步驟。優(yōu)選地,本發(fā)明公開的方法還包括CPU查詢所述鏈路節(jié)點在線表,獲得鏈路的拓?fù)浣Y(jié)構(gòu);當(dāng)所述CPU向某個設(shè)備發(fā)送數(shù)據(jù)時,采用數(shù)據(jù)重發(fā)機制,設(shè)定其中一路總線先發(fā), 當(dāng)該總線不可達(dá)時,則調(diào)用另一路總線發(fā)送數(shù)據(jù)。優(yōu)選地,本發(fā)明公開的方法還包括CPU程序獲取鏈路狀態(tài)信息的過程,包括在所述設(shè)備初始化鏈路層通訊后,所述CPU定時查詢是否有鏈路狀態(tài)中斷,當(dāng)有鏈路狀態(tài)中斷時,更新所述CPU中維護的鏈路狀態(tài),否則繼續(xù)定時查詢;當(dāng)所述CPU中維護的鏈路狀態(tài)更新后,檢測鏈路中是否有節(jié)點上線或下線,當(dāng)有節(jié)點上線或下線時,通知用戶層,否則繼續(xù)查詢是否有鏈路狀態(tài)中斷。一種基于鏈路狀態(tài)在線實時診斷的總線冗余系統(tǒng),包括兩路串行通訊數(shù)據(jù)總線;鏈路調(diào)度設(shè)備,所述鏈路調(diào)度設(shè)備為所述兩路串行通訊數(shù)據(jù)總線上具有同等地位的設(shè)備中的任意一個設(shè)備,用于實時監(jiān)測、獲取并發(fā)布當(dāng)前鏈路節(jié)點的在線信息;普通設(shè)備,所述普通設(shè)備為所述兩路串行通訊數(shù)據(jù)總線上具有同等地位的設(shè)備中除去所述鏈路調(diào)度設(shè)備的設(shè)備,用于接收所述鏈路狀態(tài)發(fā)布幀并保存。
通過上述技術(shù)方案可知,本發(fā)明具有如下有益效果本發(fā)明通過令牌輪詢的方式, 對鏈路中普通節(jié)點數(shù)據(jù)中地址標(biāo)簽進行解析,在鏈路調(diào)度設(shè)備中分析獲得相應(yīng)普通節(jié)點的在線狀態(tài)信息,并通過實時廣播發(fā)布使整個鏈路上的所有設(shè)備均獲得鏈路狀態(tài)信息。由于令牌周期較短,在較短的時間片內(nèi),總線節(jié)點的狀態(tài)更新可及時的被發(fā)現(xiàn)。因此,各設(shè)備在數(shù)據(jù)發(fā)送前,可提前預(yù)知鏈路狀態(tài),及時診斷總線故障,并主動發(fā)起通訊切換,同時配合CPU 數(shù)據(jù)重發(fā)機制,達(dá)到了數(shù)據(jù)不丟失的目的。


圖1是本發(fā)明實施例公開的一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法的實現(xiàn)流程圖;圖2是本發(fā)明實施例公開的一種基于鏈路狀態(tài)在線實時診斷的總線冗余系統(tǒng);圖3是本發(fā)明實施例公開的鏈路調(diào)度器向普通設(shè)備發(fā)布鏈路節(jié)點狀態(tài)信息的示意圖;圖4是本發(fā)明實施例公開的鏈路調(diào)度器實時監(jiān)測并獲取鏈路節(jié)點的在線信息的結(jié)構(gòu)示意圖;圖5是本發(fā)明實施例公開的鏈路調(diào)度器實時監(jiān)測并獲取鏈路節(jié)點的在線信息的實現(xiàn)流程圖;圖6是本發(fā)明實施例公開的設(shè)備查詢鏈路節(jié)點狀態(tài)及單路通情況下發(fā)起數(shù)據(jù)切換的實現(xiàn)流程圖;圖7是本發(fā)明實施例公開的CPU數(shù)據(jù)重發(fā)的結(jié)構(gòu)示意圖;圖8是本發(fā)明實施例公開的CPU獲取鏈路狀態(tài)信息的實現(xiàn)流程圖。
具體實施例方式本發(fā)明公開了一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法,主要包括在采用冗余總線進行數(shù)據(jù)通訊時,通過令牌輪詢的方式,對鏈路中普通節(jié)點數(shù)據(jù)中地址標(biāo)簽進行解析,在鏈路調(diào)度設(shè)備中分析獲得相應(yīng)普通節(jié)點的在線狀態(tài)信息,并通過實時廣播發(fā)布, 使整個鏈路上的所有設(shè)備均獲得鏈路狀態(tài)信息。由于令牌周期較短,在較短的時間片內(nèi),總線節(jié)點的狀態(tài)更新可及時的被發(fā)現(xiàn)。因此,各設(shè)備在數(shù)據(jù)發(fā)送前,可提前預(yù)知鏈路狀態(tài),及時診斷總線故障,并主動發(fā)起通訊切換,同時配合CPU數(shù)據(jù)重發(fā)機制,達(dá)到了數(shù)據(jù)不丟失的目的。為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示,為本發(fā)明實施例公開的一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法的實現(xiàn)流程圖。具體步驟為步驟SlOl 選取串行總線上具有同等地位的設(shè)備中的任意一個為鏈路調(diào)度設(shè)備, 并設(shè)置所述鏈路調(diào)度設(shè)備中的鏈路模塊為鏈路調(diào)度器,其他未被選取的設(shè)備則為普通設(shè)備;
其中,如圖2所示,為所述串行總線的調(diào)度結(jié)構(gòu),即基于鏈路狀態(tài)在線實時診斷的總線冗余系統(tǒng),包括A路與B路兩路串行通訊數(shù)據(jù)總線,及所述兩路串行通訊數(shù)據(jù)總線上的鏈路調(diào)度設(shè)備和普通設(shè)備。如圖2所示,本實施例中選取設(shè)備A為鏈路調(diào)度設(shè)備,未被選取的設(shè)備如設(shè)備B、設(shè)備C及設(shè)備D則為普通設(shè)備,其中,可選總線上的任一設(shè)備為鏈路調(diào)度設(shè)備,所述鏈路調(diào)度設(shè)備的選擇包括但不僅限于此。步驟S102 通過所述鏈路調(diào)度器實時監(jiān)測并獲取當(dāng)前鏈路節(jié)點的在線信息;步驟S103 當(dāng)所述鏈路調(diào)度器監(jiān)測到所述鏈路節(jié)點的在線信息變化時,所述鏈路調(diào)度器通過鏈路狀態(tài)發(fā)布幀向所述普通設(shè)備發(fā)布所述當(dāng)前鏈路節(jié)點的在線信息;其中,如圖3所示,為鏈路調(diào)度器向普通設(shè)備發(fā)布所述鏈路節(jié)點的在線信息的示意圖。即鏈路調(diào)度器A通過鏈路狀態(tài)發(fā)布幀向各普通設(shè)備即普通設(shè)備B、普通設(shè)備C、普通設(shè)備D廣播鏈路節(jié)點狀態(tài)。由于鏈路狀態(tài)維護功能主要由鏈路調(diào)度設(shè)備負(fù)責(zé),普通設(shè)備沒有自身獨立的獲得鏈路狀態(tài)的機制,鏈路狀態(tài)需要通過鏈路調(diào)度設(shè)備的發(fā)布以獲得,因此鏈路設(shè)計中規(guī)定了除令牌和普通數(shù)據(jù)幀外的第三種幀鏈路狀態(tài)發(fā)布幀。所述鏈路狀態(tài)發(fā)布幀即包括了所述鏈路調(diào)度設(shè)備中維護的所述鏈路節(jié)點的在線信息。步驟S104 所述普通設(shè)備收到所述鏈路狀態(tài)發(fā)布幀后進行保存;通過執(zhí)行步驟S104的過程,實現(xiàn)了鏈路上普通設(shè)備對整個鏈路節(jié)點在線狀態(tài)的獲得,這樣可以保證數(shù)據(jù)發(fā)送前,提前預(yù)知鏈路節(jié)點在線狀態(tài),保證在一路通訊出現(xiàn)故障, 進行通訊線路切換的過程內(nèi),數(shù)據(jù)不會丟失。步驟S105 所述鏈路調(diào)度設(shè)備和所述普通設(shè)備在數(shù)據(jù)發(fā)布前,查詢所述保存的鏈路狀態(tài)發(fā)布幀中包含的所述當(dāng)前鏈路節(jié)點的在線信息,選取無故障的鏈路進行通訊。通過執(zhí)行上述步驟SlOl 步驟S105的過程,在串行通訊時,通過鏈路調(diào)度器對普通節(jié)點數(shù)據(jù)中的地址標(biāo)簽進行解析,可在鏈路調(diào)度設(shè)備中分析獲得相應(yīng)普通節(jié)點的在線狀態(tài)信息,并在檢測到鏈路節(jié)點拓?fù)浒l(fā)送變化即存在某個節(jié)點上線或下線時,實時地通過鏈路廣播發(fā)布,使整個鏈路上的所有設(shè)備均獲得鏈路狀態(tài)信息,因此保證了數(shù)據(jù)發(fā)送前可以預(yù)知鏈路狀態(tài),當(dāng)一路數(shù)據(jù)通訊出現(xiàn)故障時,可以通過查詢鏈路在線表及時查詢,保證數(shù)據(jù)的切換過程不丟失。需要說明的是,所述鏈路節(jié)點的在線信息是以鏈路狀態(tài)表的形式,儲存于鏈路調(diào)度設(shè)備中,應(yīng)用于如圖2所示的總線冗余系統(tǒng)時,具體到鏈路狀態(tài)表的發(fā)布方式,可以有兩種,具體為1)在AB兩路實際的物理鏈路中,發(fā)布的鏈路狀態(tài)發(fā)布幀中包含AB兩路鏈路節(jié)點狀態(tài)的整體信息,即當(dāng)A路節(jié)點狀態(tài)改變時,B路可以收到整個鏈路的節(jié)點狀態(tài)信息的發(fā)布。2)在AB兩路實際物理鏈路中,發(fā)布的鏈路狀態(tài)發(fā)布幀中僅包含本路鏈路信息,即當(dāng)A路節(jié)點狀態(tài)改變時,只有A路可以收到鏈路節(jié)點狀態(tài)信息的發(fā)布,B路由于無節(jié)點狀態(tài)改變,因此不會收到鏈路狀態(tài)發(fā)布幀。此外,如圖4所示,為在上述本發(fā)明公開的實施例的基礎(chǔ)上,執(zhí)行步驟S102中所述鏈路調(diào)度器實時監(jiān)測并獲取當(dāng)前鏈路節(jié)點的在線信息的結(jié)構(gòu)示意圖;如圖5所示,為通過所述鏈路調(diào)度器實時監(jiān)測并獲取當(dāng)前鏈路節(jié)點的在線信息的實現(xiàn)流程圖,具體過程為
步驟501 所述鏈路調(diào)度器向總線上的各設(shè)備依次發(fā)送令牌;步驟502 所述各設(shè)備在線時,收到令牌后,依次回復(fù)響應(yīng),其中所述回復(fù)響應(yīng)的幀中包含回復(fù)設(shè)備的地址標(biāo)簽;其中,上述步驟501 步驟502執(zhí)行過程,如圖4中所示的鏈路調(diào)度器向設(shè)備A發(fā)布令牌0,設(shè)備A回復(fù)令牌0 ;鏈路調(diào)度器向設(shè)備B發(fā)布令牌1,設(shè)備B回復(fù)令牌1 ;鏈路調(diào)度器向設(shè)備C發(fā)布令牌2,設(shè)備C回復(fù)令牌2等。另外,鏈路調(diào)度設(shè)備擁有通過發(fā)布令牌調(diào)度總線的權(quán)利,普通設(shè)備在接收到所述令牌時,必須做出回復(fù)響應(yīng)。對于總線上不在線的設(shè)備,則不會發(fā)送回復(fù)響應(yīng)。其中,所述回復(fù)響應(yīng)可以為令牌幀也可以為有效數(shù)據(jù)幀,且必須包含本設(shè)備的地址標(biāo)簽。步驟503 所述鏈路調(diào)度器獲得所述地址標(biāo)簽后,將鏈路節(jié)點在線表中對應(yīng)節(jié)點的在線標(biāo)志位置位,所述標(biāo)志位對應(yīng)內(nèi)部的一個N狀態(tài)計數(shù)器;其中,所述鏈路節(jié)點在線表包括對應(yīng)各個普通設(shè)備的內(nèi)部包含計數(shù)器的子模塊。 通過計數(shù)器來判斷節(jié)點的上下線狀態(tài)。如圖4所示,其中每個設(shè)備在所述鏈路節(jié)點在線表中都有其對應(yīng)的子模塊。步驟504 所述計數(shù)器在定時器的驅(qū)動下逐次遞減,且在收到回復(fù)設(shè)備的地址標(biāo)簽后將計數(shù)器重置為N,當(dāng)所述計數(shù)器為0時,表示節(jié)點下線,其他狀態(tài)均表示節(jié)點在線。因此,只有在N-I個定時周期內(nèi)收到對應(yīng)普通設(shè)備的回復(fù)令牌才能保證設(shè)備不下線。其中,由于鏈路調(diào)度器是依次向鏈路上的普通設(shè)備發(fā)布令牌,因此,一個新上線的普通設(shè)備收到鏈路調(diào)度器分配的令牌需要等待一定的時間。對此,將所述鏈路調(diào)度器向鏈路中所有設(shè)備都發(fā)布完一幀令牌并收到所有普通設(shè)備的回復(fù)響應(yīng)的時間稱為掃描時間;所述N值減為0的時間,即N-I級*定時器輸入間隔時間稱為下線周期時間。因此,所述下線周期時間需要至少保持在一個掃描周期以上,才能保證鏈路調(diào)度器已經(jīng)在該段時間內(nèi)對整個鏈路進行了掃描。這就要求對于N值的設(shè)定要保證設(shè)備的下線周期時間至少為一個掃描周期,優(yōu)選地,可通過N值的設(shè)定將下線周期設(shè)定為1 3個掃描周期。通過執(zhí)行上述步驟501 步驟504的過程,實現(xiàn)了鏈路調(diào)度器對鏈路節(jié)點在線信息的獲得,需要說明的是,對于不在線的設(shè)備,不會發(fā)送回復(fù)令牌,且所述鏈路節(jié)點在線表中對應(yīng)的標(biāo)志位不會被置位;作為鏈路調(diào)度器自身,其不能收到發(fā)自本設(shè)備的回復(fù)響應(yīng),因此所述鏈路調(diào)度設(shè)備是通過其它節(jié)點的回復(fù)響應(yīng)來判斷所述鏈路調(diào)度設(shè)備是否在線。如圖6所示,為在上述本發(fā)明公開的實施例的基礎(chǔ)上,執(zhí)行步驟S105中所述查詢所述保存的鏈路狀態(tài)發(fā)布幀中包含的所述當(dāng)前鏈路節(jié)點的在線信息,選取無故障的鏈路進行通訊的實現(xiàn)流程圖,具體包括以下步驟步驟201 所述鏈路調(diào)度設(shè)備和所述普通設(shè)備是否要發(fā)布數(shù)據(jù),如果是,則轉(zhuǎn)步驟 202 ;如果否,則返回步驟201查詢所述鏈路調(diào)度設(shè)備和所述普通設(shè)備是否要發(fā)布數(shù)據(jù);步驟S202 查詢A路總線上本節(jié)點是否在線,如果所述本節(jié)點在線,則轉(zhuǎn)步驟 S203 ;如果所述本節(jié)點不在線,則轉(zhuǎn)步驟S204 ;步驟S203 查詢A路總線上目標(biāo)節(jié)點是否在線,如果所述目標(biāo)節(jié)點在線,則轉(zhuǎn)步驟 S206 ;如果所述目標(biāo)節(jié)點不在線,則轉(zhuǎn)步驟S204 ;其中,通過步驟S202 步驟S203的查詢,可以判定所述A路總線是否存在通訊故障即節(jié)點不在線的情況,如果存在,則迅速執(zhí)行對另一路通訊總線即B路總線的查詢,以實現(xiàn)通訊總線的及時切換。步驟S204 查詢B路總線上所述本節(jié)點是否在線,如果所述本節(jié)點在線,則轉(zhuǎn)步驟 S205 ;如果所述本節(jié)點不在線,則轉(zhuǎn)步驟S201 ;步驟S205 查詢B路總線上所述目標(biāo)節(jié)點是否在線,如果所述目標(biāo)節(jié)點在線,則轉(zhuǎn)步驟S206 ;如果所述目標(biāo)節(jié)點不在線,則轉(zhuǎn)步驟S201 ;步驟S206:發(fā)布數(shù)據(jù)。通過執(zhí)行上述步驟,設(shè)備在數(shù)據(jù)發(fā)布之前,首先對通訊鏈路節(jié)點的在線狀態(tài)進行查詢,可以即時的選擇無故障鏈路進行通訊,另外在其中一路出現(xiàn)通訊故障時,可以保證數(shù)據(jù)選取鏈路狀態(tài)正常的總線進行通訊,實現(xiàn)鏈路及時的切換,數(shù)據(jù)不丟失。同時,本發(fā)明實施例公開的基于鏈路狀態(tài)在線實時診斷的總線冗余方法中,還公開了一種CPU數(shù)據(jù)重發(fā)的方法。如圖7所示,為CPU數(shù)據(jù)重發(fā)的結(jié)構(gòu)示意圖,包括CPU、A鏈路通訊模塊及B鏈路通訊模塊。所述CPU數(shù)據(jù)重發(fā)的具體過程為所述CPU通過查詢所述鏈路節(jié)點在線表,獲得鏈路的拓?fù)浣Y(jié)構(gòu);當(dāng)所述CPU需要向某個設(shè)備發(fā)送數(shù)據(jù)時,采用數(shù)據(jù)重發(fā)機制,設(shè)定其中一路總線先發(fā),當(dāng)該總線不可達(dá)時,則調(diào)用另一路總線發(fā)送數(shù)據(jù)。結(jié)合圖7所示的結(jié)構(gòu),所述CPU數(shù)據(jù)重發(fā)的過程為CPU采用固定A路先發(fā),當(dāng)查詢到A路不可達(dá)時,CPU調(diào)用B鏈路通訊模塊發(fā)送數(shù)據(jù),保證數(shù)據(jù)不丟失。其中,如圖8所示,為CPU獲取鏈路狀態(tài)信息的實現(xiàn)流程圖。具體過程為步驟101 設(shè)備初始化鏈路層通訊;步驟102 所述CPU定時查詢是否有鏈路狀態(tài)中斷,如果有,則轉(zhuǎn)步驟103 ;如果沒有,則返回執(zhí)行步驟102的查詢過程;步驟103 讀取鏈路通訊模塊中所維護的鏈路狀態(tài),更新所述CPU中維護的鏈路狀態(tài);步驟104 檢測鏈路中是否有節(jié)點上線或下線,如果有,則轉(zhuǎn)步驟105 ;如果沒有, 則返回步驟102的查詢過程;步驟105 =CPU通知用戶層進行相應(yīng)的操作。由上述可知,本發(fā)明公開的基于鏈路狀態(tài)在線實時診斷的總線冗余方法,實現(xiàn)了一種在高速串行總線上,通過令牌輪詢的方式,實現(xiàn)節(jié)點鏈路在線狀態(tài)信息的實時獲得,并在鏈路共享的機制。該機制保證了設(shè)備能在Ims的時間片內(nèi)在一路數(shù)據(jù)總線故障的情況下,進行切換,同時配合CPU數(shù)據(jù)重發(fā)機制,可以快速的實現(xiàn)數(shù)據(jù)重發(fā),而不丟失數(shù)據(jù)幀。根據(jù)上述的具體的基于鏈路狀態(tài)在線實時診斷的總線冗余方法,如圖2所示,為本發(fā)明實施例所公開的基于鏈路狀態(tài)在線實時診斷的總線冗余系統(tǒng)的結(jié)構(gòu)示意圖。具體包括A路與B路兩路串行通訊數(shù)據(jù)總線;鏈路調(diào)度設(shè)備,所述鏈路調(diào)度設(shè)備為所述兩路串行通訊數(shù)據(jù)總線上具有同等地位的設(shè)備中的任意一個設(shè)備,用于實時監(jiān)測、獲取并發(fā)布當(dāng)前鏈路節(jié)點的在線信息,如圖中所示設(shè)備A ;
普通設(shè)備,所述普通設(shè)備為所述兩路串行通訊數(shù)據(jù)總線上具有同等地位的設(shè)備中除去所述鏈路調(diào)度設(shè)備的設(shè)備,用于接收所述鏈路狀態(tài)發(fā)布幀并保存,如圖中所示設(shè)備B、 設(shè)備C及設(shè)備D等。需要說明的是,一般在工業(yè)控制系統(tǒng)中,控制系統(tǒng)內(nèi)基本包括控制器、通訊模塊及IO模塊。在應(yīng)用本發(fā)明實施例公開的方法時,可將控制器設(shè)置為鏈路調(diào)度設(shè)備,通訊模塊及IO模塊可以設(shè)置為鏈路上的普通設(shè)備。其中,控制器、通訊模塊及IO模塊均采用在底層通訊調(diào)度實現(xiàn)時,可以采用邏輯芯片實現(xiàn)。對于遠(yuǎn)程機架上的通訊模塊,其下帶有IO模塊,也可將通訊模塊設(shè)置為鏈路調(diào)度設(shè)備,IO模塊視為普通設(shè)備。上述本發(fā)明實施例公開的裝置的具體執(zhí)行過程與上述公開的方法一致,這里不再進行贅述。通過本發(fā)明實施例公開的基于鏈路狀態(tài)在線實時診斷的總線冗余方法及系統(tǒng),相對于現(xiàn)有的串行通訊方案中,普通設(shè)備無法獲知整個鏈路節(jié)點狀態(tài)的問題,本發(fā)明通過鏈路調(diào)度設(shè)備對普通節(jié)點數(shù)據(jù)中地址標(biāo)簽的解析,分析獲得相應(yīng)普通節(jié)點的在線狀態(tài)信息, 并實時地播發(fā)布使整個鏈路上的所有設(shè)備均獲得鏈路狀態(tài)信息。因此,實現(xiàn)了數(shù)據(jù)發(fā)送前, 及時地查詢鏈路狀態(tài)信息,保證通訊線路切換時,數(shù)據(jù)不丟失的目的。結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
權(quán)利要求
1.一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法,其特征在于,包括選取串行總線上具有同等地位的設(shè)備中的任意一個為鏈路調(diào)度設(shè)備,并設(shè)置所述鏈路調(diào)度設(shè)備中的鏈路模塊為鏈路調(diào)度器,其他未被選取的設(shè)備則為普通設(shè)備;通過所述鏈路調(diào)度器實時監(jiān)測并獲取當(dāng)前鏈路節(jié)點的在線信息;當(dāng)所述鏈路調(diào)度器監(jiān)測到所述鏈路節(jié)點的在線信息變化時,所述鏈路調(diào)度器通過鏈路狀態(tài)發(fā)布幀向所述普通設(shè)備發(fā)布所述當(dāng)前鏈路節(jié)點的在線信息;所述普通設(shè)備收到所述鏈路狀態(tài)發(fā)布幀后進行保存;所述鏈路調(diào)度設(shè)備和所述普通設(shè)備在數(shù)據(jù)發(fā)布前,查詢所述保存的鏈路狀態(tài)發(fā)布幀中包含的所述當(dāng)前鏈路節(jié)點的在線信息,選取無故障的鏈路進行通訊。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述鏈路調(diào)度器實時監(jiān)測并獲取當(dāng)前鏈路節(jié)點的在線信息,包括所述鏈路調(diào)度器向總線上的各設(shè)備依次發(fā)送令牌;所述各設(shè)備在線時,收到令牌后依次回復(fù)響應(yīng),其中所述回復(fù)響應(yīng)的幀中包含回復(fù)設(shè)備的地址標(biāo)簽;所述鏈路調(diào)度器獲得所述地址標(biāo)簽后,將鏈路節(jié)點在線表中對應(yīng)節(jié)點的在線標(biāo)志位置位,所述標(biāo)志位對應(yīng)內(nèi)部的一個N狀態(tài)計數(shù)器;所述計數(shù)器在定時器的驅(qū)動下逐次遞減,且在收到所述回復(fù)設(shè)備的地址標(biāo)簽后將計數(shù)器重置為N,當(dāng)所述計數(shù)器為0時,表示節(jié)點下線,其他狀態(tài)均表示節(jié)點在線;其中,對于不在線的設(shè)備,不會發(fā)送回復(fù)響應(yīng),所述鏈路節(jié)點在線表中對應(yīng)的標(biāo)志位不會被置位;所述鏈路調(diào)度設(shè)備通過其它節(jié)點的回復(fù)響應(yīng)來判斷所述鏈路調(diào)度設(shè)備是否在線。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述N值的設(shè)定要保證下線周期時間至少為一個掃描周期;其中,所述下線周期時間為所述N值減為0所用的時間,所述掃描周期為所述鏈路調(diào)度器向鏈路中所有設(shè)備都發(fā)布完一幀令牌并收到所有普通設(shè)備的回復(fù)響應(yīng)的時間。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述回復(fù)響應(yīng)包括令牌幀或有效數(shù)據(jù)幀。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述鏈路節(jié)點在線表包括對應(yīng)各個普通設(shè)備的內(nèi)部包含計數(shù)器的子模塊。
6.根據(jù)權(quán)利要求1 2所述的方法,其特征在于,所述查詢保存的鏈路狀態(tài)發(fā)布幀中包含的所述當(dāng)前鏈路節(jié)點的在線信息,選取無故障的鏈路進行通訊,包括所述鏈路調(diào)度設(shè)備和所述普通設(shè)備在發(fā)布數(shù)據(jù)前,查詢其中一路總線上本節(jié)點是否在線,當(dāng)所述本節(jié)點處于在線狀態(tài)時,查詢目標(biāo)節(jié)點是否在線,當(dāng)所述目標(biāo)節(jié)點在線時,則在此路總線發(fā)布數(shù)據(jù);當(dāng)所述本節(jié)點不在線或所述目標(biāo)節(jié)點不在線時,查詢另一路總線上的本節(jié)點是否在線,當(dāng)所述另一路總線上本節(jié)點在線時,查詢所述另一路總線上的目標(biāo)節(jié)點是否在線,當(dāng)所述目標(biāo)節(jié)點在線時,則在所述另一路總線發(fā)布數(shù)據(jù);當(dāng)所述本節(jié)點或目標(biāo)節(jié)點在所述另一路總線上不在線時,則返回執(zhí)行所述設(shè)備在發(fā)布數(shù)據(jù)前,查詢其中一路總線上本節(jié)點是否在線這一步驟。
7.根據(jù)權(quán)利要求1 2所述的方法,其特征在于,還包括 CPU查詢所述鏈路節(jié)點在線表,獲得鏈路的拓?fù)浣Y(jié)構(gòu);當(dāng)所述CPU向某個設(shè)備發(fā)送數(shù)據(jù)時,采用數(shù)據(jù)重發(fā)機制,設(shè)定其中一路總線先發(fā),當(dāng)該總線不可達(dá)時,則調(diào)用另一路總線發(fā)送數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括 CPU程序獲取鏈路狀態(tài)信息的過程,包括在所述設(shè)備初始化鏈路層通訊后,所述CPU定時查詢是否有鏈路狀態(tài)中斷,當(dāng)有鏈路狀態(tài)中斷時,更新所述CPU中維護的鏈路狀態(tài),否則繼續(xù)定時查詢;當(dāng)所述CPU中維護的鏈路狀態(tài)更新后,檢測鏈路中是否有節(jié)點上線或下線,當(dāng)有節(jié)點上線或下線時,通知用戶層,否則繼續(xù)查詢是否有鏈路狀態(tài)中斷。
9.一種基于鏈路狀態(tài)在線實時診斷的總線冗余系統(tǒng),其特征在于,包括 兩路串行通訊數(shù)據(jù)總線;鏈路調(diào)度設(shè)備,所述鏈路調(diào)度設(shè)備為所述兩路串行通訊數(shù)據(jù)總線上具有同等地位的設(shè)備中的任意一個設(shè)備,用于實時監(jiān)測、獲取并發(fā)布當(dāng)前鏈路節(jié)點的在線信息;普通設(shè)備,所述普通設(shè)備為所述兩路串行通訊數(shù)據(jù)總線上具有同等地位的設(shè)備中除去所述鏈路調(diào)度設(shè)備的設(shè)備,用于接收所述鏈路狀態(tài)發(fā)布幀并保存。
全文摘要
本發(fā)明公開了一種基于鏈路狀態(tài)在線實時診斷的總線冗余方法,主要包括在采用串行總線進行數(shù)據(jù)通訊時,通過令牌輪詢的方式,對鏈路中普通節(jié)點數(shù)據(jù)中地址標(biāo)簽進行解析,在鏈路調(diào)度設(shè)備中分析獲得相應(yīng)普通節(jié)點的在線狀態(tài)信息,并通過實時廣播發(fā)布,使整個鏈路上的所有設(shè)備均獲得鏈路狀態(tài)信息。同時,本發(fā)明還提供了基于鏈路狀態(tài)在線實時診斷的總線冗余系統(tǒng)。通過本發(fā)明提供的方法,由于令牌周期較短,在較短的時間片內(nèi),總線節(jié)點的狀態(tài)更新可及時的被發(fā)現(xiàn)。因此,各設(shè)備在數(shù)據(jù)發(fā)送前,可提前預(yù)知鏈路狀態(tài),及時診斷總線故障,并主動發(fā)起通訊切換,同時配合CPU數(shù)據(jù)重發(fā)機制,達(dá)到了數(shù)據(jù)不丟失的目的。
文檔編號H04L12/40GK102447603SQ20121002760
公開日2012年5月9日 申請日期2012年2月8日 優(yōu)先權(quán)日2012年2月8日
發(fā)明者張曉剛, 章維, 陸衛(wèi)軍, 陸曄 申請人:浙江中控技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1