1.本發(fā)明屬于電氣自動化領(lǐng)域,具體涉及一種電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法及其預(yù)解析系統(tǒng)。
背景技術(shù):2.隨著經(jīng)濟(jì)技術(shù)的發(fā)展和人們生活水平的提高,電能已經(jīng)成為了人們生產(chǎn)和生活中必不可少的二次能源,給人們的生產(chǎn)和生活帶來了無盡的便利。因此,保障電能的穩(wěn)定可靠供應(yīng),就成為了電力系統(tǒng)最重要的任務(wù)之一。
3.而隨著電力物聯(lián)網(wǎng)的發(fā)展,原本分散建設(shè)的數(shù)據(jù)采集系統(tǒng)將在感知層進(jìn)行統(tǒng)一;因此采集主站需要擁有多種協(xié)議的接入與解析能力。在當(dāng)前的技術(shù)架構(gòu)下,電力系統(tǒng)普遍的做法,是對不同的協(xié)議終端部署不同的采集前置,并各自開放終端接入端口。但對電力系統(tǒng)而言,對外開放多個(gè)接入端口將會使得系統(tǒng)面臨的安全風(fēng)險(xiǎn)成倍的提升;同時(shí),維護(hù)多個(gè)端口也會帶來額外的工作量,降低系統(tǒng)的運(yùn)轉(zhuǎn)效率。
4.此外,部分系統(tǒng)為了統(tǒng)一接入端口,常見的方法是使用單個(gè)接口接入全量報(bào)文;然后在系統(tǒng)中識別標(biāo)識位,以匹配預(yù)加載在系統(tǒng)中的解析模型。但考慮到電力物聯(lián)網(wǎng)系統(tǒng)中使用的協(xié)議繁多,情況復(fù)雜(比如常存在迭代協(xié)議,即一種協(xié)議的不同版本,具有相同的標(biāo)識位但解析方式完全不同),若識別錯(cuò)誤會導(dǎo)致報(bào)文無法解析。
技術(shù)實(shí)現(xiàn)要素:5.本發(fā)明的目的之一在于提供一種適用范圍廣,可靠性高且準(zhǔn)確性好的電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法。
6.本發(fā)明的目的之二在于提供一種實(shí)現(xiàn)所述電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法的預(yù)解析系統(tǒng)。
7.本發(fā)明提供的這種電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法,包括如下步驟:
8.s1.獲取電力物聯(lián)網(wǎng)系統(tǒng)所支持的所有協(xié)議;
9.s2.根據(jù)步驟s1獲取的協(xié)議,建立協(xié)議特征庫;
10.s3.與終端建立通信并進(jìn)行數(shù)據(jù)交互,從而獲取終端發(fā)送的電力協(xié)議報(bào)文;
11.s4.對步驟s3獲取的電力協(xié)議報(bào)文進(jìn)行辨識處理,識別報(bào)文的協(xié)議類型與功能區(qū)位置;
12.s5.根據(jù)步驟s4識別得到的報(bào)文的協(xié)議類型與功能區(qū)位置,進(jìn)行進(jìn)一步識別并轉(zhuǎn)換為標(biāo)準(zhǔn)化物聯(lián)信息模型,并輸出標(biāo)準(zhǔn)化的預(yù)解析數(shù)據(jù)。
13.步驟s2所述的根據(jù)步驟s1獲取的協(xié)議,建立協(xié)議特征庫,具體包括如下步驟:
14.協(xié)議特征庫為存儲電力物聯(lián)網(wǎng)系統(tǒng)協(xié)議特征的關(guān)系式數(shù)據(jù)庫;協(xié)議特征庫包括協(xié)議屬性和協(xié)議報(bào)文字特征內(nèi)容;
15.協(xié)議屬性包括電力物聯(lián)網(wǎng)系統(tǒng)所支持的協(xié)議的協(xié)議編號、協(xié)議名稱、協(xié)議發(fā)行日期和協(xié)議版本;
16.協(xié)議報(bào)文字特征內(nèi)容包括電力物聯(lián)網(wǎng)系統(tǒng)所支持的協(xié)議的報(bào)文總長度取值范圍、固定報(bào)文頭標(biāo)識位置、固定報(bào)文頭標(biāo)識取值范圍、固定報(bào)文頭長度、特殊幀起始位置、特殊幀長度、特殊幀標(biāo)識位置、特殊幀標(biāo)識取值范圍、校驗(yàn)幀標(biāo)識位置、校驗(yàn)幀標(biāo)識取值范圍、校驗(yàn)幀長度,結(jié)束幀起始位置和結(jié)束幀字符取值范圍;其中,一個(gè)協(xié)議能夠?qū)?yīng)若干個(gè)特殊幀。
17.步驟s3所述的與終端建立通信并進(jìn)行數(shù)據(jù)交互,從而獲取終端發(fā)送的電力協(xié)議報(bào)文,具體包括如下步驟:
18.與終端建立tcp/ip通信連接,接收所有終端發(fā)送的tcp/ip報(bào)文包,通過解析tcp/ip報(bào)文包得到應(yīng)用層協(xié)議報(bào)文。
19.步驟s4所述的對步驟s3獲取的電力協(xié)議報(bào)文進(jìn)行辨識處理,識別報(bào)文的協(xié)議類型與功能區(qū)位置,具體包括如下步驟:
20.對步驟s3獲取的應(yīng)用層協(xié)議報(bào)文的報(bào)文字進(jìn)行分析和特征提取,并轉(zhuǎn)換為特征數(shù)組;然后基于獲取的特征數(shù)組,構(gòu)建決策樹實(shí)現(xiàn)報(bào)文所述的協(xié)議分析,完成協(xié)議的辨識。
21.所述的步驟s4,具體包括如下步驟:
22.(1).對步驟s3獲取的應(yīng)用層協(xié)議報(bào)文的報(bào)文字,進(jìn)行整體分析和特殊位置分析,從而提取報(bào)文中的若干個(gè)特征值,并組成報(bào)文特征數(shù)組:
23.所述的整體分析,具體為對協(xié)議報(bào)文的整體特性進(jìn)行記錄,包括記錄報(bào)文的總字節(jié)長度n
total
和空字節(jié)數(shù)n
null
,形成整體特征數(shù)組a為a=[n
total
,n
null
];
[0024]
所述的特殊位置分析,具體為是對報(bào)文字特征字節(jié)位置的值進(jìn)行記錄,形成特殊位置特征數(shù)組b為b=[bytes[0],bytes[1],...,bytes[n]],其中0~n為協(xié)議特征庫中記錄的所有協(xié)議的固定報(bào)文頭起始位置、特殊幀起始位置、校驗(yàn)幀起始位置和結(jié)束幀起始位置,bytes[n]為原報(bào)文中相應(yīng)位置對應(yīng)的值;
[0025]
(2).合并整體特征數(shù)組a和特殊位置特征數(shù)組b,組成報(bào)文特征數(shù)組c為c=[n
total
,n
null
,bytes[0],bytes[1],...,bytes[n]];
[0026]
(3).讀取協(xié)議特征庫中存儲的所有協(xié)議和協(xié)議報(bào)文字特征,為每個(gè)協(xié)議構(gòu)建協(xié)議判斷結(jié)合s
protocol
[n]為s
protocol
[n]=[feature1,feature2,...,featuren],其中feature1~featuren為根據(jù)協(xié)議報(bào)文字特征提取的判斷條件;所述判斷條件包括報(bào)文總長度取值范圍、固定報(bào)文頭標(biāo)識位置與取值范圍、固定報(bào)文頭長度、特殊幀標(biāo)識取值范圍、特殊幀長度、校驗(yàn)幀標(biāo)識位置與取值范圍、校驗(yàn)幀長度、結(jié)束幀起始位置和取值范圍;
[0027]
(4).以報(bào)文特征數(shù)組c為輸入,以報(bào)文特征數(shù)組c中的元素是否擬合協(xié)議判斷結(jié)合s
protocol
[n]為判斷條件,構(gòu)建分類決策樹,并按照以下方式得到報(bào)文分類結(jié)果:
[0028]
對于協(xié)議特征集合s
protocol
[n]中每一個(gè)標(biāo)識位置i,若報(bào)文特征數(shù)組c中的bytes[i]全部在對應(yīng)的取值范圍內(nèi),則認(rèn)定為擬合;
[0029]
否則,認(rèn)定為不擬合。
[0030]
步驟s5所述的根據(jù)步驟s4識別得到的報(bào)文的協(xié)議類型與功能區(qū)位置,進(jìn)行進(jìn)一步識別并轉(zhuǎn)換為標(biāo)準(zhǔn)化物聯(lián)信息模型,并輸出標(biāo)準(zhǔn)化的預(yù)解析數(shù)據(jù),具體包括如下步驟:
[0031]
將待解析的報(bào)文輸入到協(xié)議解析模型,協(xié)議解析模型獲取對應(yīng)的協(xié)議的特殊幀起始位置,然后直接從特殊幀起始位置開始解析,得到特殊幀數(shù)據(jù),將特殊幀數(shù)據(jù)按照電力物聯(lián)網(wǎng)主站定義的標(biāo)準(zhǔn)數(shù)據(jù)模型格式,組成標(biāo)準(zhǔn)化的預(yù)解析數(shù)據(jù)并輸出;
[0032]
所述的協(xié)議解析模型包括協(xié)議幀結(jié)構(gòu)、主站采集點(diǎn)表和解析程序;協(xié)議幀結(jié)構(gòu)是對協(xié)議幀內(nèi)容的定義,主站采集點(diǎn)表是對協(xié)議中測量點(diǎn)的位置、取值、編碼規(guī)則的說明,解析程序則是將協(xié)議報(bào)文字轉(zhuǎn)換為可識讀數(shù)據(jù)的應(yīng)用程序;
[0033]
所述的特殊幀包括報(bào)文時(shí)間戳、設(shè)備資產(chǎn)id、采集功能內(nèi)容和控制幀內(nèi)容。
[0034]
所述的電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法,還包括如下步驟:
[0035]
若同時(shí)輸入m條電力協(xié)議報(bào)文,則將報(bào)文特征數(shù)組c擴(kuò)展為(n+3)*m的特征矩陣c
(n+3)*m
為
[0036]
然后,在進(jìn)行協(xié)議分類時(shí),使用一個(gè)判斷條件同時(shí)判斷矩陣特征矩陣c
(n+3)*m
中同一列的數(shù)據(jù),實(shí)現(xiàn)m個(gè)協(xié)議并發(fā)判斷,節(jié)省系統(tǒng)運(yùn)算資源。
[0037]
本發(fā)明還提供了一種實(shí)現(xiàn)所述電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法的預(yù)解析系統(tǒng),包括協(xié)議特征庫模塊、數(shù)據(jù)接入模塊、動態(tài)辨識模塊和預(yù)解析模塊;數(shù)據(jù)接入模塊、動態(tài)辨識模塊和預(yù)解析模塊依次串接;協(xié)議特征庫模塊同時(shí)連接數(shù)據(jù)接入模塊、動態(tài)辨識模塊和預(yù)解析模塊;特征庫模塊用于獲取電力物聯(lián)網(wǎng)系統(tǒng)所支持的所有協(xié)議,并建立協(xié)議特征庫,同時(shí)特征庫模塊也用于為其他模塊提供數(shù)據(jù)支持;數(shù)據(jù)接入模塊用于與終端建立通信并進(jìn)行數(shù)據(jù)交互,獲取終端發(fā)送的電力協(xié)議報(bào)文并上傳動態(tài)辨識模塊;動態(tài)辨識模塊用于對獲取的電力協(xié)議報(bào)文進(jìn)行辨識處理,識別報(bào)文的協(xié)議類型與功能區(qū)位置,并將結(jié)果上傳預(yù)解析模塊;預(yù)解析模塊用于根據(jù)識別得到的報(bào)文的協(xié)議類型與功能區(qū)位置,進(jìn)行進(jìn)一步識別并轉(zhuǎn)換為標(biāo)準(zhǔn)化物聯(lián)信息模型,并輸出標(biāo)準(zhǔn)化的預(yù)解析數(shù)據(jù)。
[0038]
本發(fā)明提供的這種電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法及其預(yù)解析系統(tǒng),只需要有一個(gè)端口與終端建立連接,提高了系統(tǒng)安全性,同時(shí)提高了系統(tǒng)運(yùn)行與運(yùn)維效率;本發(fā)明使用構(gòu)造分類決策樹的方式提高了協(xié)議辨識精度,提高分類效率;本發(fā)明通過辨識的結(jié)果以及預(yù)識別的關(guān)鍵字段,直接解析關(guān)鍵字段,并形成標(biāo)準(zhǔn)數(shù)據(jù),可以有效降低電力物聯(lián)網(wǎng)主站數(shù)據(jù)處理量,實(shí)現(xiàn)電力感知數(shù)據(jù)最小化精準(zhǔn)采集;因此本發(fā)明的適用范圍廣,可靠性高且準(zhǔn)確性好。
附圖說明
[0039]
圖1為本發(fā)明的方法流程示意圖。
[0040]
圖2為本發(fā)明的系統(tǒng)功能模塊圖。
具體實(shí)施方式
[0041]
如圖1所示為本發(fā)明的方法流程示意圖:本發(fā)明提供的這種電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法,包括如下步驟:
[0042]
s1.獲取電力物聯(lián)網(wǎng)系統(tǒng)所支持的所有協(xié)議;
[0043]
s2.根據(jù)步驟s1獲取的協(xié)議,建立協(xié)議特征庫;具體包括如下步驟:
[0044]
協(xié)議特征庫為存儲電力物聯(lián)網(wǎng)系統(tǒng)協(xié)議特征的關(guān)系式數(shù)據(jù)庫;協(xié)議特征庫包括協(xié)議屬性和協(xié)議報(bào)文字特征內(nèi)容;
[0045]
協(xié)議屬性包括電力物聯(lián)網(wǎng)系統(tǒng)所支持的協(xié)議的協(xié)議編號、協(xié)議名稱、協(xié)議發(fā)行日期和協(xié)議版本;
[0046]
協(xié)議報(bào)文字特征內(nèi)容包括電力物聯(lián)網(wǎng)系統(tǒng)所支持的協(xié)議的報(bào)文總長度取值范圍、固定報(bào)文頭標(biāo)識位置、固定報(bào)文頭標(biāo)識取值范圍、固定報(bào)文頭長度、特殊幀起始位置、特殊幀長度、特殊幀標(biāo)識位置、特殊幀標(biāo)識取值范圍、校驗(yàn)幀標(biāo)識位置、校驗(yàn)幀標(biāo)識取值范圍、校驗(yàn)幀長度,結(jié)束幀起始位置和結(jié)束幀字符取值范圍;其中,一個(gè)協(xié)議能夠?qū)?yīng)若干個(gè)特殊幀;
[0047]
s3.與終端建立通信并進(jìn)行數(shù)據(jù)交互,從而獲取終端發(fā)送的電力協(xié)議報(bào)文;具體包括如下步驟:
[0048]
與終端建立tcp/ip通信連接,接收所有終端發(fā)送的tcp/ip報(bào)文包,通過解析tcp/ip報(bào)文包得到應(yīng)用層協(xié)議報(bào)文;
[0049]
s4.對步驟s3獲取的電力協(xié)議報(bào)文進(jìn)行辨識處理,識別報(bào)文的協(xié)議類型與功能區(qū)位置;具體包括如下步驟:
[0050]
對步驟s3獲取的應(yīng)用層協(xié)議報(bào)文的報(bào)文字進(jìn)行分析和特征提取,并轉(zhuǎn)換為特征數(shù)組;然后基于獲取的特征數(shù)組,構(gòu)建決策樹實(shí)現(xiàn)報(bào)文所述的協(xié)議分析,完成協(xié)議的辨識;
[0051]
具體實(shí)施時(shí),包括如下步驟:
[0052]
(1).對步驟s3獲取的應(yīng)用層協(xié)議報(bào)文的報(bào)文字,進(jìn)行整體分析和特殊位置分析,從而提取報(bào)文中的若干個(gè)特征值,并組成報(bào)文特征數(shù)組:
[0053]
所述的整體分析,具體為對協(xié)議報(bào)文的整體特性進(jìn)行記錄,包括記錄報(bào)文的總字節(jié)長度n
total
和空字節(jié)數(shù)n
null
,形成整體特征數(shù)組a為a=[n
total
,n
null
];
[0054]
所述的特殊位置分析,具體為是對報(bào)文字特征字節(jié)位置的值進(jìn)行記錄,形成特殊位置特征數(shù)組b為b=[bytes[0],bytes[1],...,bytes[n]],其中0~n為協(xié)議特征庫中記錄的所有協(xié)議的固定報(bào)文頭起始位置、特殊幀起始位置、校驗(yàn)幀起始位置和結(jié)束幀起始位置,bytes[n]為原報(bào)文中相應(yīng)位置對應(yīng)的值;
[0055]
(2).合并整體特征數(shù)組a和特殊位置特征數(shù)組b,組成報(bào)文特征數(shù)組c為c=[n
total
,n
null
,bytes[0],bytes[1],...,bytes[n]];
[0056]
(3).讀取協(xié)議特征庫中存儲的所有協(xié)議和協(xié)議報(bào)文字特征,為每個(gè)協(xié)議構(gòu)建協(xié)議判斷結(jié)合s
protocol
[n]為s
protocol
[n]=[feature1,feature2,...,featuren],其中feature1~featuren為根據(jù)協(xié)議報(bào)文字特征提取的判斷條件;所述判斷條件包括報(bào)文總長度取值范圍、固定報(bào)文頭標(biāo)識位置與取值范圍、固定報(bào)文頭長度、特殊幀標(biāo)識取值范圍、特殊幀長度、校驗(yàn)幀標(biāo)識位置與取值范圍、校驗(yàn)幀長度、結(jié)束幀起始位置和取值范圍;
[0057]
(4).以報(bào)文特征數(shù)組c為輸入,以報(bào)文特征數(shù)組c中的元素是否擬合協(xié)議判斷結(jié)合s
protocol
[n]為判斷條件,構(gòu)建分類決策樹,并按照以下方式得到報(bào)文分類結(jié)果:
[0058]
對于協(xié)議特征集合s
protocol
[n]中每一個(gè)標(biāo)識位置i,若報(bào)文特征數(shù)組c中的bytes[i]全部在對應(yīng)的取值范圍內(nèi),則認(rèn)定為擬合;
[0059]
否則,認(rèn)定為不擬合;
[0060]
s5.根據(jù)步驟s4識別得到的報(bào)文的協(xié)議類型與功能區(qū)位置,進(jìn)行進(jìn)一步識別并轉(zhuǎn)換為標(biāo)準(zhǔn)化物聯(lián)信息模型,并輸出標(biāo)準(zhǔn)化的預(yù)解析數(shù)據(jù);具體包括如下步驟:
[0061]
將待解析的報(bào)文輸入到協(xié)議解析模型,協(xié)議解析模型獲取對應(yīng)的協(xié)議的特殊幀起始位置,然后直接從特殊幀起始位置開始解析,得到特殊幀數(shù)據(jù),將特殊幀數(shù)據(jù)按照電力物聯(lián)網(wǎng)主站定義的標(biāo)準(zhǔn)數(shù)據(jù)模型格式,組成標(biāo)準(zhǔn)化的預(yù)解析數(shù)據(jù)并輸出;
[0062]
所述的協(xié)議解析模型包括協(xié)議幀結(jié)構(gòu)、主站采集點(diǎn)表和解析程序;協(xié)議幀結(jié)構(gòu)是對協(xié)議幀內(nèi)容的定義,主站采集點(diǎn)表是對協(xié)議中測量點(diǎn)的位置、取值、編碼規(guī)則的說明,解析程序則是將協(xié)議報(bào)文字轉(zhuǎn)換為可識讀數(shù)據(jù)的應(yīng)用程序;
[0063]
所述的特殊幀包括報(bào)文時(shí)間戳、設(shè)備資產(chǎn)id、采集功能內(nèi)容和控制幀內(nèi)容。
[0064]
此外,本發(fā)明提供的這種電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法,在處理時(shí)還可以采用如下方式
[0065]
若同時(shí)輸入m條電力協(xié)議報(bào)文,則將報(bào)文特征數(shù)組c擴(kuò)展為(n+3)*m的特征矩陣c
(n+3)*m
為
[0066]
然后,在進(jìn)行協(xié)議分類時(shí),使用一個(gè)判斷條件同時(shí)判斷矩陣特征矩陣c
(n+3)*m
中同一列的數(shù)據(jù),實(shí)現(xiàn)m個(gè)協(xié)議并發(fā)判斷,節(jié)省系統(tǒng)運(yùn)算資源。
[0067]
如圖2所示為本發(fā)明系統(tǒng)的功能模塊圖:本發(fā)明提供的這種實(shí)現(xiàn)所述電力物聯(lián)網(wǎng)協(xié)議的預(yù)解析方法的預(yù)解析系統(tǒng),包括協(xié)議特征庫模塊、數(shù)據(jù)接入模塊、動態(tài)辨識模塊和預(yù)解析模塊;數(shù)據(jù)接入模塊、動態(tài)辨識模塊和預(yù)解析模塊依次串接;協(xié)議特征庫模塊同時(shí)連接數(shù)據(jù)接入模塊、動態(tài)辨識模塊和預(yù)解析模塊;特征庫模塊用于獲取電力物聯(lián)網(wǎng)系統(tǒng)所支持的所有協(xié)議,并建立協(xié)議特征庫,同時(shí)特征庫模塊也用于為其他模塊提供數(shù)據(jù)支持;數(shù)據(jù)接入模塊用于與終端建立通信并進(jìn)行數(shù)據(jù)交互,獲取終端發(fā)送的電力協(xié)議報(bào)文并上傳動態(tài)辨識模塊;動態(tài)辨識模塊用于對獲取的電力協(xié)議報(bào)文進(jìn)行辨識處理,識別報(bào)文的協(xié)議類型與功能區(qū)位置,并將結(jié)果上傳預(yù)解析模塊;預(yù)解析模塊用于根據(jù)識別得到的報(bào)文的協(xié)議類型與功能區(qū)位置,進(jìn)行進(jìn)一步識別并轉(zhuǎn)換為標(biāo)準(zhǔn)化物聯(lián)信息模型,并輸出標(biāo)準(zhǔn)化的預(yù)解析數(shù)據(jù)。