本發(fā)明屬于配電網(wǎng)信息集成與互操作技術(shù)領(lǐng)域,具體涉及一種配電網(wǎng)信息交換總線可靠數(shù)據(jù)傳輸?shù)姆椒ā?br/>
背景技術(shù):配電網(wǎng)相關(guān)的信息系統(tǒng)眾多,業(yè)務(wù)復(fù)雜,需要貫穿多個(gè)信息系統(tǒng),因此信息集成是配電網(wǎng)信息化建設(shè)的關(guān)鍵所在。近年來,隨著智能電網(wǎng)的發(fā)展,互操作成為配網(wǎng)信息集成的最新目標(biāo),IEC61968標(biāo)準(zhǔn)成為配網(wǎng)信息集成的共識(shí),許多供電企業(yè)逐步從點(diǎn)對點(diǎn)的信息集成模式過渡到基于信息交換總線和SOA服務(wù)架構(gòu)的集成模式。IEC61968標(biāo)準(zhǔn)通過制定統(tǒng)一的配網(wǎng)公共信息模型CIM、統(tǒng)一的消息格式和統(tǒng)一的服務(wù)接口,為配網(wǎng)互操作打下基礎(chǔ),然而,由于缺少信息流可靠傳輸技術(shù),導(dǎo)致了以下問題:1.某一系統(tǒng)從故障中恢復(fù)后,無法接收故障期間其他系統(tǒng)發(fā)送的信息,對整個(gè)系統(tǒng)的可靠性和信息的完整性帶來了很大的負(fù)面影響。2.用戶無法直觀的監(jiān)測總線的信息流運(yùn)行狀況,且信息流的統(tǒng)計(jì)缺乏數(shù)據(jù)支撐和來源,給信息交換的分析工作帶來了很大的困難。
技術(shù)實(shí)現(xiàn)要素:針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種配電網(wǎng)信息交換總線可靠數(shù)據(jù)傳輸?shù)姆椒?,通過在總線側(cè)設(shè)計(jì)一個(gè)消息數(shù)據(jù)表,實(shí)現(xiàn)信息的存儲(chǔ)和重發(fā)功能,最大程度的降低信息丟失率,極大的提高了IEC61968信息交換平臺(tái)的可靠性。本發(fā)明提供的一種配電網(wǎng)信息交換總線可靠數(shù)據(jù)傳輸?shù)姆椒?,其改進(jìn)之處在于,在總線側(cè)設(shè)置消息數(shù)據(jù)表;流經(jīng)總線的消息均被存入所述數(shù)據(jù)表;總線接收消息后對消息進(jìn)行分配;發(fā)送信息成功后,修改消息數(shù)據(jù)表中消息的狀態(tài)。其中,所述消息數(shù)據(jù)表包含一個(gè)MessageID字段;當(dāng)消息第一次經(jīng)過總線時(shí),總線生成MessageID,且此后由該條消息引發(fā)的廣播消息以及響應(yīng)消息均使用所述MessageID。其中,所述消息數(shù)據(jù)表中包含的內(nèi)容有:MessageID字段、Sender字段、Receiver字段、Noun字段、Verb字段、Content字段、ReturnContent字段、CreationTime字段、Status字段、Trans_Type字段和Fault_code字段。其中,流經(jīng)總線的消息分為適配器或其他總線發(fā)送的Event類型信息或Request類型信息。其中,總線接收Event類型信息內(nèi)容并存入所述消息數(shù)據(jù)表后,總線對消息進(jìn)行分配,發(fā)送信息成功后,修改消息數(shù)據(jù)表中內(nèi)容的步驟包括:1)根據(jù)IEC61968協(xié)議的約定,Header節(jié)點(diǎn)應(yīng)包括構(gòu)成主題的名詞和動(dòng)詞以及發(fā)送者。將其取出并分別存入Noun字段、Verb字段和Sender字段;將總線編號存入Receiver字段;若所述MessageID節(jié)點(diǎn)為空,則總線為該消息生成一個(gè)MessageID,存入MessageID字段,并將此值寫入Header節(jié)點(diǎn)中的MessageID子節(jié)點(diǎn)中;從Payload中獲取IEC61968信息的主體,存入Content字段;記錄所述信息到達(dá)總線的時(shí)間,存入CreationTime字段;將“SUCCESS”存入Status字段;將“publish”存入Trans_type字段;2)所述總線從訂閱關(guān)系中尋找接收者,在消息數(shù)據(jù)表中生成記錄;3)所述總線根據(jù)接收者的地址進(jìn)行消息廣播,接收者收到消息后,會(huì)給總線返回一個(gè)應(yīng)答信息;4)總線從應(yīng)答信息的Header節(jié)點(diǎn)中獲取發(fā)送者的ID,設(shè)其為N、以及MessageID,設(shè)其為M;總線將Receiver字段的值為N且MessageID字段的值為M的記錄的狀態(tài)設(shè)置為成功,即Status字段,均由“sent”改為“SUCCESS”。其中,步驟2)所述總線從訂閱關(guān)系中尋找接收者,在消息數(shù)據(jù)表中生成記錄的內(nèi)容如下:ID即為所生成的MessageID;Sender為總線;Receiver為訂閱了該主題的總線或適配器;Noun為所獲取的名詞;Verb為所獲取的動(dòng)詞;Content為所獲取的消息主體;CreationTime為發(fā)送此消息的時(shí)間;Status為“sent”,表示消息已從總線發(fā)出;Trans_type為“broadcast”,表示該消息類型為廣播分發(fā)。其中,總線接收Request類型信息內(nèi)容并存入所述消息數(shù)據(jù)表后,總線對消息進(jìn)行分配,發(fā)送信息成功后,修改MessageID中內(nèi)容的步驟包括:①根據(jù)IEC61968協(xié)議的約定,Header節(jié)點(diǎn)應(yīng)包括構(gòu)成主題的名詞和動(dòng)詞以及發(fā)送者;取出并分別存入Noun字段、Verb字段和Sender字段;將總線編號存入Receiver字段;若MessageID節(jié)點(diǎn)為空,則總線為該消息生成一個(gè)MessageID,存入MessageID字段,并將此值寫入Header節(jié)點(diǎn)中的MessageID子節(jié)點(diǎn)中;從Payload中獲取IEC61968信息的主體,存入Content字段;記錄該信息到達(dá)總線的時(shí)間,存入CreationTime字段;將“SUCCESS”存入Status字段;將“Request”存入Trans_type字段;②所述總線從訂閱關(guān)系中尋找響應(yīng)者,若有多個(gè)響應(yīng)者,則選擇第一個(gè)可用的響應(yīng)者,在消息數(shù)據(jù)表中生成記錄:③總線根據(jù)響應(yīng)者的地址轉(zhuǎn)發(fā)消息,響應(yīng)者收到消息后,經(jīng)過處理,會(huì)以異步的形式將響應(yīng)消息返回給總線;④總線從響應(yīng)信息的Header節(jié)點(diǎn)中獲取發(fā)送者的ID,設(shè)其為N、以及MessageID,設(shè)為M;總線將Receiver字段的值為N且MessageID字段的值為M的記錄的狀態(tài)設(shè)置為成功,并且將Payload中的消息錄入ReturnContent字段中。其中,步驟②所述總線從訂閱關(guān)系中尋找響應(yīng)者,若有多個(gè)響應(yīng)者,則選擇第一個(gè)可用的響應(yīng)者,在消息數(shù)據(jù)表中生成記錄的內(nèi)容如下:MessageID即為所生成的MessageID;Sender為總線;Receiver為擁有該主題相應(yīng)權(quán)限的總線或適配器;Noun為所獲取的名詞;Verb為所獲取的動(dòng)詞;Content為所獲取的request消息主體;ReturnContent為所獲取的reply消息主體;CreationTime為發(fā)送此消息的時(shí)間;Status為“sent”,表示消息已從總線發(fā)出;Trans_type為“reply”,表示該消息類型為響應(yīng)。其中,若某單元因故障未能及時(shí)接收到總線發(fā)出的消息,那么當(dāng)該故障單元恢復(fù)正常且通過合法性鑒定后,總線會(huì)發(fā)起綁定請求,將消息數(shù)據(jù)表中Receiver字段為該單元ID、且Status為“sent”的消息重新發(fā)送給該單元,完成消息的重發(fā)。與現(xiàn)有技術(shù)比,本發(fā)明的有益效果為:本發(fā)明是一種可靠數(shù)據(jù)傳輸?shù)姆椒ǎ煽總鬏斒桥潆娋W(wǎng)信息交換體系的重要技術(shù)支撐和保證,傳統(tǒng)的傳輸模式缺乏對信息的保護(hù),即在設(shè)備出現(xiàn)斷電、斷網(wǎng)、程序崩潰等異常狀況的時(shí)候,無法保證信息安全及時(shí)的到達(dá)目的地。本發(fā)明提出可靠數(shù)據(jù)傳輸?shù)姆椒?,通過在總線側(cè)設(shè)計(jì)一個(gè)消息數(shù)據(jù)表,實(shí)現(xiàn)信息的存儲(chǔ)和重發(fā)功能,最大程度的降低信息丟失率,極大的提高了IEC61968信息交換平臺(tái)的可靠性。本發(fā)明通過在總線配置消息數(shù)據(jù)表,進(jìn)行數(shù)據(jù)交換,使配電網(wǎng)信息流的可靠性、穩(wěn)定性得到進(jìn)一步加強(qiáng)。本發(fā)明對于每一條流經(jīng)總線的信息,總線都會(huì)將其保存在消息數(shù)據(jù)表中,并且記錄下其發(fā)送方、接收方、信息類型、發(fā)送狀態(tài)等信息。在故障恢復(fù)后,可根據(jù)記錄將未送達(dá)的信息再次發(fā)送到目的地,實(shí)現(xiàn)信息流的可靠傳輸,對配電網(wǎng)信息交互平臺(tái)可靠性和穩(wěn)定性的提高起到了積極的作用。附圖說明圖1為本發(fā)明提供的消息表示意圖。圖2為本發(fā)明提供的Event消息處理流程示意圖。圖3為本發(fā)明提供的Request/Reply消息處理流程示意圖。圖4為本發(fā)明提供的重發(fā)過程示意圖。具體實(shí)施方式下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式作進(jìn)一步的詳細(xì)說明。本實(shí)施例提出的一種配電網(wǎng)信息交換總線可靠數(shù)據(jù)傳輸?shù)姆椒ǎ窃诳偩€側(cè)設(shè)置消息數(shù)據(jù)表;流經(jīng)總線的消息均被存入所述消息數(shù)據(jù)表;總線收到消息后對消息進(jìn)行分配,發(fā)送信息成功后,修改消息數(shù)據(jù)表中消息的狀態(tài)。消息數(shù)據(jù)表中包含一個(gè)MessageID;當(dāng)消息第一次經(jīng)過總線時(shí),總線生成MessageID,且此后由該條消息引發(fā)的廣播消息以及響應(yīng)消息均使用所述MessageID。具體的,本實(shí)施例提出的消息數(shù)據(jù)表結(jié)構(gòu)示意圖如圖1所示,其包含的內(nèi)容有:MessageID字段、Sender字段、Receiver字段、Noun字段、Verb字段、Content字段、ReturnContent字段、CreationTime字段、Status字段、Trans_Type字段和Fault_code字段。根據(jù)流經(jīng)總線的消息分為適配器或其他總線發(fā)送的Event類型信息或Request類型信息,本實(shí)施例分別做下述說明:對于總線接收Event類型信息內(nèi)容并存入所述消息數(shù)據(jù)表后,總線對消息進(jìn)行分配,發(fā)送信息成功后,修改消息數(shù)據(jù)表中內(nèi)容的流程圖如圖2所示,具體步驟包括:1)總線接收適配器或其他總線發(fā)送的Event類型信息,根據(jù)IEC61968協(xié)議的約定,從Header節(jié)點(diǎn)中獲取構(gòu)成主題的名詞和動(dòng)詞以及發(fā)送者,存入Noun字段、Verb字段和Sender字段;該消息的接收者為總線,所以將該總線編號存入Receiver字段;如MessageID節(jié)點(diǎn)為空,則表示該消息是第一次經(jīng)過總線,此時(shí)總線為該消息生成一個(gè)MessageID,存入MessageID字段,并將此值寫入Header節(jié)點(diǎn)中的MessageID子節(jié)點(diǎn)中;如MessageID節(jié)點(diǎn)不為空,則直接使用其中的內(nèi)容;從Payload中獲取IEC61968信息的主體,存入Content字段;記錄該信息到達(dá)總線的時(shí)間,存入CreationTime字段;因該信息已成功到達(dá)總線,所以將“SUCCESS”存入Status字段;消息的類型為“發(fā)布”,因此將“publish”存入Trans_type字段;2)與此同時(shí),總線從訂閱關(guān)系中尋找接收者,在消息數(shù)據(jù)表中生成記錄,內(nèi)容如下:MessageID即為上一步所生成的MessageID,Sender為總線;Receiver為訂閱了該主題的總線或適配器;Noun為上一步所獲取的名詞;Verb為上一步所獲取的動(dòng)詞;Content為上一步所獲取的消息主體;CreationTime為發(fā)送此消息的時(shí)間;Status為“sent”,表示消息已從總線發(fā)出;Trans_type為“broadcast”,表示該消息類型為廣播分發(fā);值得注意的是,這幾條記錄的MessageID字段的值都是一樣的,只有Receiver的值不一樣,也就是說,該表的聯(lián)合主鍵是MessageID和Receiver;3)總線根據(jù)接收者的地址進(jìn)行消息廣播,接收者收到消息后,會(huì)給總線返回一個(gè)應(yīng)答信息。總線從應(yīng)答信息的Header節(jié)點(diǎn)中獲取發(fā)送者的ID,設(shè)其為N、以及MessageID,設(shè)其為M。然后總線將Receiver字段的值為N且MessageID字段的值為M的記錄的Status字段,由“sent”改為“SUCCESS”。對于總線接收Request類型信息內(nèi)容內(nèi)容并存入所述消息數(shù)據(jù)表后,總線對消息進(jìn)行分配,發(fā)送信息成功后,修改MessageID中內(nèi)容的流程圖如圖3所示,具體步驟包括:①總線接收適配器或其他總線發(fā)送得Request類型信息。根據(jù)IEC61968協(xié)議的約定,Header節(jié)點(diǎn)應(yīng)包括構(gòu)成主題的名詞和動(dòng)詞以及發(fā)送者。將其取出并存入Noun字段、Verb字段和Sender字段;該消息的接收者為總線,所以將該總線編號存入Receiver字段;如MessageID節(jié)點(diǎn)為空,則表示該消息是第一次經(jīng)過總線,此時(shí)總線為該消息生成一個(gè)MessageID,存入MessageID字段,并將此值寫入Header節(jié)點(diǎn)中的MessageID子節(jié)點(diǎn)中;如MessageID節(jié)點(diǎn)不為空,則直接使用其中內(nèi)容;從Payload中獲取IEC61968信息的主體,存入Content字段,根據(jù)IEC61968協(xié)議的約定,在請求消息中,Payload節(jié)點(diǎn)可以為空;記錄該信息到達(dá)總線的時(shí)間,存入CreationTime字段;因該信息已成功到達(dá)總線,所以將“SUCCESS”存入Status字段;消息的類型為“請求”,因此將“Request”存入Trans_type字段;②與此同時(shí),總線從訂閱關(guān)系中尋找響應(yīng)者,如果有多個(gè)響應(yīng)者,則選擇第一個(gè)可用的響應(yīng)者,在消息數(shù)據(jù)表中生成記錄,內(nèi)容如下:MessageID即為上一步所生成的MessageID,Sender為總線;Receiver為擁有該主題相應(yīng)權(quán)限的總線或適配器;Noun為上一步所獲取的名詞;Verb為上一步所獲取的動(dòng)詞;Content為上一步所獲取的消息主體;CreationTime為發(fā)送此消息的時(shí)間;Status為“sent”,表示消息已從總線發(fā)出;Trans_type為“reply”,表示該消息類型為響應(yīng)。③總線根據(jù)響應(yīng)者的地址轉(zhuǎn)發(fā)消息,響應(yīng)者收到消息后,經(jīng)過一系列的處理,會(huì)以異步的形式將響應(yīng)消息返回給總線??偩€從響應(yīng)信息的Header節(jié)點(diǎn)中獲取發(fā)送者的ID,設(shè)其為N、以及MessageID,設(shè)其為M。接下來總線將Receiver字段的值為N且MessageID字段的值為M的記錄的Status字段,由“sent”改為“SUCCESS”,并且將Payload中的消息錄入returnContent字段中。對于總線發(fā)送信息不成功的情況,從本實(shí)施例上述描述中可看出,如果總線發(fā)出消息后接收方?jīng)]有接收到消息,或者接收方接收到消息后由于故障沒有將反饋消息返回給總線,那么該條記錄的Status字段將停留在“sent”,表示總線發(fā)出但未收到反饋信息。此時(shí),如果該故障單元恢復(fù)正常,向總線發(fā)起綁定請求,總線在鑒定其合法性后,將消息數(shù)據(jù)表中Receiver字段為該單元ID、且Status為“sent”的消息重新發(fā)送給該單元,完成消息的重發(fā),如附圖4所示。最后應(yīng)當(dāng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:依然可以對本發(fā)明的具體實(shí)施方式進(jìn)行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。