桂小智, 馬 政, 潘本仁, 熊小伏, 陳星田
(1. 國(guó)網(wǎng)江西省電力有限公司電力科學(xué)研究院, 江西 南昌 330096; 2. 輸配電裝備及系統(tǒng)安全與新技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室(重慶大學(xué)), 重慶 400044; 3. 重慶元虎科技有限公司, 重慶 400030)
自2006年云南省電網(wǎng)公司110 kV曲靖翠峰變電站[1]依據(jù)DL/T860(IEC61850)標(biāo)準(zhǔn)開(kāi)始改造以來(lái),國(guó)內(nèi)數(shù)字化變電站和智能變電站建設(shè)已將近15年,變電站也從最初的綜合自動(dòng)化變電站不斷向智能變電站發(fā)展。
根據(jù)《智能變電站技術(shù)導(dǎo)則》[2],現(xiàn)已建立基于IEC61850 的智能變電站“三層兩網(wǎng)”通信網(wǎng)絡(luò)模型[3],但隨著智能化進(jìn)程的不斷推進(jìn)、智能電子設(shè)備的數(shù)量以及種類(lèi)不斷增多,主要面臨兩方面問(wèn)題:一是通過(guò)網(wǎng)絡(luò)通信傳輸?shù)男盘?hào)量呈爆發(fā)式增長(zhǎng),若不進(jìn)行輕量化處理將大大加重服務(wù)器負(fù)荷,嚴(yán)重時(shí)將造成通信設(shè)備故障[4];二是圖像監(jiān)測(cè)裝置已經(jīng)廣泛存在于智能變電站中,受制于圖像分辨率及需求等因素的影響,造成傳輸圖像大小可變,而常規(guī)建模方法靈活性較差,無(wú)法對(duì)可變長(zhǎng)度數(shù)據(jù)建模。
目前對(duì)智能變電站數(shù)據(jù)輕量化的研究中,文獻(xiàn)[5]基于壓縮感知理論或低秩矩陣填充理論對(duì)海量數(shù)據(jù)進(jìn)行采樣后采用矢量映射、參量編碼和協(xié)議報(bào)文封裝,文獻(xiàn)[6,7]采用壓縮感知算法對(duì)系統(tǒng)中諧波和間諧波進(jìn)行壓縮采樣,文獻(xiàn)[8]基于離散傅里葉變換對(duì)信號(hào)進(jìn)行稀疏分析后壓縮采樣。但上述僅是在采樣上進(jìn)行了壓縮處理,沒(méi)有涉及到在通信模型上進(jìn)行輕量化研究。文獻(xiàn)[9]分析了智能變電站報(bào)文的數(shù)據(jù)結(jié)構(gòu)特點(diǎn),提出基于上下文預(yù)測(cè)的deflate算法,縮小了報(bào)文大小,但只是對(duì)已有的報(bào)文進(jìn)行分析壓縮,沒(méi)有涉及到基礎(chǔ)建模部分。
對(duì)智能變電站通信建模的研究中,早期主要由幾個(gè)開(kāi)發(fā)保護(hù)裝置的大公司進(jìn)行。后來(lái)為規(guī)范變電站通信網(wǎng)絡(luò)和系統(tǒng)國(guó)際標(biāo)準(zhǔn)的應(yīng)用,實(shí)現(xiàn)各制造廠商設(shè)備的互操作性[10],提高IEC61850標(biāo)準(zhǔn)設(shè)備生產(chǎn)、調(diào)試、檢修、測(cè)試[11]、運(yùn)行的便利性,特制定IEC61850工程應(yīng)用模型[12],即Q/GDW 1396-2012《IEC61850工程繼電保護(hù)應(yīng)用模型》,包括線路保護(hù)、斷路器保護(hù)、變壓器保護(hù)、母線保護(hù)、電抗器保護(hù)、測(cè)控裝置、智能終端、合并單元、錄波裝置等邏輯節(jié)點(diǎn)類(lèi)型定義[13-16]。大部分智能裝置的制造報(bào)文規(guī)范(Manufacturing Message Specification,MMS)通信模型,通過(guò)SCL設(shè)計(jì)工具軟件就可以設(shè)計(jì)出新的DA數(shù)據(jù)模型、DO數(shù)據(jù)類(lèi)型以及邏輯節(jié)點(diǎn)模型[17-20],該模型在MMS服務(wù)器程序解析后加載就能運(yùn)行,修改路徑映射的回調(diào)函數(shù)綁定就可以完成數(shù)據(jù)的發(fā)布。所有DO數(shù)據(jù)類(lèi)型和DA數(shù)據(jù)類(lèi)型的設(shè)計(jì)均為基于MMS通信模型的基本類(lèi)型的組合。但隨著變電站各種智能裝置的廣泛應(yīng)用,基于繼電保護(hù)的數(shù)據(jù)通信模型并不完全適用于其他智能裝置,并且對(duì)圖像等可變數(shù)據(jù)長(zhǎng)度建模完全無(wú)法實(shí)行,需要在數(shù)據(jù)模型中進(jìn)行擴(kuò)展。根據(jù)國(guó)際電工委員會(huì)2018年發(fā)布的SCL.xsd(2007B4版)所規(guī)范的基本數(shù)據(jù)類(lèi)型共計(jì)38個(gè),其中除了“Struct”類(lèi)型是遞歸外,其他類(lèi)型都是確定類(lèi)型,理論上任何數(shù)據(jù)結(jié)構(gòu)都可以通過(guò)這些基本類(lèi)型進(jìn)行組合完成,比如單點(diǎn)狀態(tài)信息“SPS”在DOType中的定義中,“stVal”表示狀態(tài)的值,其他變量是該值的屬性。常用0和1來(lái)表示一個(gè)開(kāi)關(guān)的兩種狀態(tài),若表示多個(gè)開(kāi)關(guān)的二種狀態(tài)就需要多次實(shí)例化“SPS”,該過(guò)程將產(chǎn)生大量冗余數(shù)據(jù)。
對(duì)于多點(diǎn)狀態(tài)的一種擴(kuò)充方式是在“stVal”屬性中添加“count”子屬性,填入重復(fù)次數(shù),并修改“id”名稱(chēng)和“cdc”類(lèi)別。這也是大部分多點(diǎn)狀態(tài)信息的通用擴(kuò)充方法,這種方法中“stVal”在通信中根據(jù)ASN.1[21]語(yǔ)法規(guī)則要使用三個(gè)字節(jié)表示,用十六進(jìn)制“83 01 00”或“83 01 01”表示兩種不同的狀態(tài),實(shí)際值只使用了一位。對(duì)較少點(diǎn)數(shù),特別是十點(diǎn)以下使用是很方便。當(dāng)狀態(tài)量多達(dá)數(shù)百點(diǎn)時(shí),若單點(diǎn)傳送則效率很低,若一次傳送全站所有開(kāi)關(guān)狀態(tài)或傳送一張圖片,此時(shí)該結(jié)構(gòu)十分浪費(fèi)空間,且因以太網(wǎng)字節(jié)長(zhǎng)度限制必須進(jìn)行多次分幀,傳輸效率也不盡人意。
針對(duì)此類(lèi)工程問(wèn)題,文中提出基于數(shù)據(jù)類(lèi)型擴(kuò)充的智能變電站通信建模方法,首先介紹了BitString數(shù)據(jù)類(lèi)型;然后通過(guò)實(shí)例展示數(shù)據(jù)類(lèi)型標(biāo)準(zhǔn)擴(kuò)展、模型參數(shù)修改、服務(wù)器程序修改,詳細(xì)介紹了BitString數(shù)據(jù)類(lèi)型的具體擴(kuò)充方法;最后,通過(guò)算例測(cè)試,即報(bào)文抓取結(jié)果,驗(yàn)證了提出的方法可以顯著降低報(bào)文大小,提高通信模型對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)的適應(yīng)性。
BitString類(lèi)型是MMS數(shù)據(jù)使用的數(shù)據(jù)通信類(lèi)型,但目前主要是用在固定幾個(gè)數(shù)據(jù)類(lèi)型的變量中,但其并非基本數(shù)據(jù)類(lèi)型,在目前的應(yīng)用中每種基本類(lèi)型均為固定位寬,具體見(jiàn)表1。
BitString數(shù)據(jù)類(lèi)型每一位都可以表示一點(diǎn)的兩種狀態(tài),當(dāng)位寬不能被8整除時(shí)使用padding字節(jié)表示不使用的位數(shù),因此根據(jù)ASN.1語(yǔ)法規(guī)則,一個(gè)BitString數(shù)據(jù)封裝結(jié)構(gòu)如圖1所示。
圖1 BitString數(shù)據(jù)結(jié)構(gòu)Fig.1 Data structure of BitString
由于BitString數(shù)據(jù)類(lèi)型使用密度很高,通過(guò)padding字節(jié)的附加來(lái)表示8點(diǎn)狀態(tài),但固定位寬長(zhǎng)度對(duì)數(shù)據(jù)建模有一定限制,因?yàn)槭褂脠?chǎng)景較多,所需位寬并不唯一,故需要對(duì)各種靈活多變結(jié)構(gòu)進(jìn)行建模才能使用。基于數(shù)據(jù)類(lèi)型擴(kuò)充的通信建模流程圖如圖2所示。
圖2 基于數(shù)據(jù)類(lèi)型擴(kuò)充的通信建模Fig.2 Communication modeling based on data type expansion
基于BitString擴(kuò)充的通信建模過(guò)程包括:基本數(shù)據(jù)類(lèi)型標(biāo)準(zhǔn)擴(kuò)展DOType修改、LNodeType修改、IED中邏輯節(jié)點(diǎn)實(shí)例化、SCL文件修改等,具體介紹如下。
為了支持任意長(zhǎng)度BitString建模要求,首先需要在標(biāo)準(zhǔn)描述文件中添加“
標(biāo)準(zhǔn)修改后需要在SCL建模工具軟件中添加此基本數(shù)據(jù)類(lèi)型,然后在SCL解析程序中進(jìn)行識(shí)別、解析、建立數(shù)據(jù)類(lèi)型,在服務(wù)程序中對(duì)讀取回調(diào)函數(shù)進(jìn)行值的綁定。方法流程如圖3所示。
圖3 BitString擴(kuò)展模型修改流程Fig.3 Modification of BitString extend model
以SISCO公司的“MMS-Lite”源代碼為例,說(shuō)明BitString的擴(kuò)展使用方法。
新建一個(gè)“DOType”,屬性“cdc”設(shè)置為“MPS”,意為多點(diǎn)狀態(tài)類(lèi)型。屬性“id”設(shè)置為“MPSb”,用來(lái)被“LNodeType”所引用。在新建的“DOType”中添加一個(gè)“Data Attribute”,“name”設(shè)置為“stVal”,“fc”設(shè)置為“CO”,“bType”設(shè)置為“BitString300”,意為狀態(tài)位寬為300。
為了對(duì)比,再新建一個(gè)“DOType”,直接使用“BOOLEAN”來(lái)擴(kuò)展多點(diǎn)狀態(tài)信息,屬性“cdc”設(shè)置為“MPS”,屬性“id”設(shè)置為“MPSa”。添加一個(gè)“Data Attribute”,“name”設(shè)置為“stVal”,“fc”設(shè)置為“ST”,“bType”設(shè)置為“BOOLEAN”,“count”設(shè)置為“300”,表示有300個(gè)點(diǎn)狀態(tài)。
以上為針對(duì)多點(diǎn)開(kāi)關(guān)控制數(shù)據(jù)模型的新建模方法,除此之外,在復(fù)雜數(shù)據(jù)結(jié)構(gòu)建模時(shí)同樣可以使用Bitstring擴(kuò)展來(lái)簡(jiǎn)化。如假設(shè)有一種數(shù)據(jù)結(jié)構(gòu)PMU定時(shí)數(shù)據(jù)傳送結(jié)構(gòu)體,通過(guò)衛(wèi)星同步時(shí)間進(jìn)行觸發(fā)傳送,根據(jù)常規(guī)的基本數(shù)據(jù)類(lèi)型建模需按數(shù)據(jù)結(jié)構(gòu)進(jìn)行逐個(gè)定義,結(jié)構(gòu)冗長(zhǎng),而使用文中提出方法即“BitstringXXX”來(lái)建模則十分簡(jiǎn)單。只要計(jì)算出整個(gè)數(shù)據(jù)結(jié)構(gòu)的大小即可,其建模過(guò)程如下:
bType="BitString7840" fc="MX" /> 其中,“BitString7840”即為整個(gè)結(jié)構(gòu)體轉(zhuǎn)換為位后的長(zhǎng)度,至此可實(shí)現(xiàn)對(duì)簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)建模。而面對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)如圖片時(shí),例如在輸電線路在線監(jiān)測(cè)過(guò)程中,檢測(cè)裝置對(duì)某處進(jìn)行探測(cè)時(shí)發(fā)現(xiàn)異常時(shí)需傳送一幀圖片至終端,假設(shè)圖像數(shù)據(jù)為640×480像素,每個(gè)像素為RGB三色256級(jí)。使用常規(guī)基本數(shù)據(jù)類(lèi)型建模,需先后建立兩個(gè)模型,即DAType與DOType模型,而使用BitstringXXX來(lái)建模,只用一個(gè)模型即可完成,其建模過(guò)程如下: 在“LNodeType”建模中,新建一個(gè)邏輯節(jié)點(diǎn),因?yàn)槊總€(gè)IED中“LN0”邏輯節(jié)點(diǎn)是不可缺少的,為了簡(jiǎn)化IED模型,就新建一個(gè)“LN0”的邏輯節(jié)點(diǎn),屬性“l(fā)nClass”設(shè)置為“LLN0”,只包含一個(gè)DO“Health”。另外分別新建四個(gè)邏輯節(jié)點(diǎn)類(lèi)型,分別為多開(kāi)關(guān)數(shù)據(jù)“CSWIa”、波形數(shù)據(jù)“PHDa”、圖像數(shù)據(jù)“MMXUa”、圖像數(shù)據(jù)“MMXUb”,建立多個(gè)邏輯節(jié)點(diǎn)類(lèi)型的目的是為了防止單個(gè)邏輯節(jié)點(diǎn)裝入所有DO會(huì)導(dǎo)致邏輯節(jié)點(diǎn)緩沖區(qū)過(guò)大,從而無(wú)法實(shí)例化成功,圖像數(shù)據(jù)“MMXUa”邏輯節(jié)點(diǎn)由于采用常規(guī)基本數(shù)據(jù)類(lèi)型建模,即便單獨(dú)一個(gè)邏輯節(jié)點(diǎn)也已超出緩沖區(qū)最大值,而無(wú)法使用的,強(qiáng)行修改服務(wù)器端邏輯節(jié)點(diǎn)大小和MMS報(bào)文最大字節(jié)數(shù)能啟動(dòng)服務(wù)端,但在MMS客戶端連接時(shí),讀取邏輯節(jié)點(diǎn)目錄也易失敗。 新建一個(gè)IED,命名為“CA2201”,在IED內(nèi)添加一個(gè)“AccessPoint”命名為“S1”,其內(nèi)添加一個(gè)“Server”,其內(nèi)添加一個(gè)“LDevice”,實(shí)例化名稱(chēng)“inst”命名為“LD0”,在“LD0”內(nèi)添加邏輯節(jié)點(diǎn)“LN0”,屬性“l(fā)nType”設(shè)置為“LN0”,屬性“l(fā)nClass”設(shè)置為“LLN0”,屬性“inst”設(shè)置為空“”。其中IED內(nèi)“Services”用來(lái)描述IED所提供的服務(wù),不可缺少。 對(duì)添加的IED,設(shè)置一個(gè)通信IP地址以便外部訪問(wèn),其中“iedName”設(shè)置為前邊所添加的IED名稱(chēng),“apName”設(shè)置為前邊所添加的IED的“AccessPoint”的名稱(chēng)。 到此,最簡(jiǎn)化的ICD文件就已經(jīng)建立完畢了,如果是用建模工具軟件設(shè)計(jì),可以導(dǎo)出“CA2201”的ICD文件,如果是用xml編輯軟件設(shè)計(jì)的直接存儲(chǔ)為“CA2201.icd”即可。 由于引入了新的基本類(lèi)型,MMS服務(wù)器的SCL解析程序不能識(shí)別,直接加載會(huì)導(dǎo)致MMS服務(wù)器建模失敗,因此在SCL解析階段,必需對(duì)其進(jìn)行修改,完成模型的創(chuàng)建。同時(shí)在讀取和寫(xiě)入回調(diào)函數(shù)中也要進(jìn)行相應(yīng)修改,來(lái)完成數(shù)據(jù)的更新和發(fā)布。以SISCO公司的“MMS-Lite”源代碼為例實(shí)現(xiàn)BitString數(shù)據(jù)類(lèi)型的擴(kuò)展使用。 MMS-Lite的SCL文件解析程序在“sclproc.c”文件中,函數(shù)“ms_rt_bld_61850_add_btype”用來(lái)生成每種基類(lèi)的數(shù)據(jù)類(lèi)型,因此需要在此函數(shù)中添加對(duì)“BitString”基本數(shù)據(jù)的支持。 比較類(lèi)型關(guān)鍵字“btype”字符串前9個(gè)字符,如果是“BitString”,轉(zhuǎn)換后邊的字符為寬度值;如果寬度不為零,則創(chuàng)建此寬度的數(shù)據(jù)模型?!皃Int”、“bits”為前置聲明局部變量,僅供轉(zhuǎn)換長(zhǎng)度使用。 MMS讀回調(diào)函數(shù)在“userleaf2.c”文件中的“u_custom_rd_ind”函數(shù),每個(gè)邏輯變量都有一個(gè)數(shù)據(jù)路徑映射的“DATA_MAP”指針,在“datamap.cfg”文件中添加需要回調(diào)設(shè)置的變量,就能生成映射,讀回調(diào)函數(shù)中“DATA_MAP”的指針就會(huì)指向真實(shí)的通信地址。比較葉子路徑名稱(chēng),就可以知道當(dāng)前所讀取的變量。因此在“u_custom_rd_ind”函數(shù)中,當(dāng)“map_entry”指針變量有效時(shí),添加如圖4所示代碼。 圖4 MMS讀取回調(diào)修改Fig.4 Read and callback modification of MMS 其中,“BOOLEAN_PATH”為“CSWI1$CO$B1$stVal”,一旦建模完成,變量路徑就固定。變量類(lèi)型為普通單點(diǎn)狀態(tài)信息變量,個(gè)數(shù)為300,MMS內(nèi)部建模為數(shù)組變量,每個(gè)變量一個(gè)字節(jié),數(shù)組起始指針為“map_entry->dataPtr”,封裝數(shù)組就需要900個(gè)字節(jié)。讀取數(shù)組需要循環(huán)300次,本程序只是每次將讀取的值取反,實(shí)際應(yīng)用中應(yīng)該綁定到內(nèi)部變量?!癇ITSTRING_PATH”為“CSWI1$CO$B2$stVal”,為擴(kuò)展?fàn)顟B(tài)信息變量,位寬為300,用38個(gè)字節(jié)表示,一次讀取全部數(shù)據(jù)。本程序變量讀取時(shí),先全部清零,然后每讀一次將鄰近的高位置為“1”。如果傳送其他類(lèi)型的數(shù)據(jù),可以直接用“memcpy”命令,將所有數(shù)據(jù)傳入“map_entry->dataPtr”所指向的起始指針。 針對(duì)前述PMU定時(shí)數(shù)據(jù)傳送結(jié)構(gòu)體,需在讀回調(diào)函數(shù)添加代碼,實(shí)現(xiàn)數(shù)據(jù)的封裝。 封裝過(guò)程中需對(duì)結(jié)構(gòu)體的每個(gè)數(shù)據(jù)對(duì)象先進(jìn)行路徑分析,再賦值相應(yīng)的數(shù)據(jù),一次只返回一個(gè)數(shù)據(jù),封裝全部結(jié)構(gòu)體數(shù)據(jù)要反復(fù)多次才能完成。并且每個(gè)結(jié)構(gòu)體元素命名一旦在模型中被修改,封裝數(shù)據(jù)的名稱(chēng)檢查也要同步修改,這對(duì)于復(fù)雜的結(jié)構(gòu)體數(shù)據(jù)封裝來(lái)說(shuō)非常繁瑣,工程應(yīng)用中也極易出錯(cuò)。 封裝數(shù)據(jù)直接用memcpy將整個(gè)結(jié)構(gòu)體拷貝到通信地址即可,流程大大簡(jiǎn)化。 針對(duì)圖像數(shù)據(jù)傳輸,用傳統(tǒng)標(biāo)準(zhǔn)模型建模時(shí),因?yàn)椤皃du_size”遠(yuǎn)大于65 000字節(jié)的缺省設(shè)置,普通客戶端軟件一般無(wú)法通過(guò)讀取名字鏈表來(lái)動(dòng)態(tài)建立數(shù)據(jù)模型,極易失敗導(dǎo)致客戶端死鎖。IEDScout4.1在讀取“img”命名表時(shí)便因死鎖而無(wú)法使用。使用“BitstringXXX”建模后雖然封裝數(shù)據(jù)后尺寸明顯減小,但“pdu_size”也大于65 000缺省設(shè)置大小,所以客戶端也需要修改“pdu_size”最大尺寸才能動(dòng)態(tài)建模成功。這時(shí)服務(wù)器端可以直接以內(nèi)存拷貝方式來(lái)封裝結(jié)構(gòu)體數(shù)據(jù),如下代碼所示: else if (strncmp(map_entry->leaf, MMXU4_PIC2_PATH, strlen(MMXU4_PIC2_PATH)) == 0) {//"MMXU4$MX$Pic2$img" mvluRdVaCtrl->rt->u.p.el_len = PIC_640_480_ BYTES * 8; memcpy(map_entry->dataPtr, &pic_data, PIC_640_480_BYTES); retcode = SD_SUCCESS;} 但這種數(shù)據(jù)可能有大量空間浪費(fèi),數(shù)據(jù)重復(fù)率比較高時(shí),合理壓縮可將傳輸量減少數(shù)倍,由于壓縮后的尺寸不可預(yù)知,一般建模方法只能建立固定長(zhǎng)度模型,而使用“BitstringXXX”建模后,數(shù)據(jù)長(zhǎng)度可以在運(yùn)行當(dāng)中動(dòng)態(tài)修正,這種靈活性更可以讓IEDScout4.1客戶端不修改“pdu_size”也可能成功讀取數(shù)據(jù)。從文件讀入一段文本數(shù)據(jù)到圖像結(jié)構(gòu)體來(lái)演示壓縮數(shù)據(jù)傳送,壓縮后的長(zhǎng)度“desLen”賦給最終傳送的尺寸大小,大大提高了帶寬的利用率。 MMS寫(xiě)入回調(diào)函數(shù)通過(guò)路徑映射的“DATA_MAP”指針進(jìn)行操作,與讀操作方向相反。若沒(méi)有綁定外部信號(hào),數(shù)據(jù)寫(xiě)入后保留在“map_entry->dataPtr”所指的內(nèi)存中,無(wú)需修改程序。 由于在當(dāng)前的通信建模中暫無(wú)相關(guān)研究,故本部分只和常規(guī)方法作對(duì)比。 MMS-Lite的服務(wù)器程序是scl_srvr,運(yùn)行前將模型文件復(fù)制到執(zhí)行程序目錄,并修改“startup.cfg”文件,“SCLFileName”設(shè)置為“CA2201.cid”,“IEDName”設(shè)置為“CA2201”。運(yùn)行一遍程序,然后退出,會(huì)在目錄下生成新的“datamapout.cfg”文件,復(fù)制此文件,并重新命名為“datamap.cfg”,這樣所有變量就生成了映射,重新運(yùn)行程序,MMS服務(wù)器即可正常工作。在Window下服務(wù)器終端輸出如圖5所示信息,表示服務(wù)器已經(jīng)啟動(dòng)完成。 圖5 模型通信測(cè)試Fig.5 Model communication test Wireshark啟動(dòng)網(wǎng)絡(luò)報(bào)文捕獲后對(duì)報(bào)文進(jìn)行過(guò)濾,避免無(wú)關(guān)報(bào)文進(jìn)入分析程序。抓取的通信報(bào)文信息如圖6所示。 圖6 抓取通信報(bào)文示例Fig.6 Example of capturing communication messages 針對(duì)300個(gè)普通單點(diǎn)狀態(tài)信息的應(yīng)答報(bào)文封裝為以太網(wǎng)后,其大小對(duì)比如圖7所示。 圖7 兩種方法對(duì)單點(diǎn)信息建模大小對(duì)比Fig.7 Comparison of size of single point information modeling by two methods 由圖7可知常規(guī)通信建模方法封裝后報(bào)文大小為999個(gè)字節(jié),而使用BitString擴(kuò)展后的多點(diǎn)信息應(yīng)答報(bào)文只有124個(gè)字節(jié),大小僅為常規(guī)方法建模的12.4%,輕量化效果顯著。 針對(duì)固定大小圖像數(shù)據(jù)建模時(shí),其大小對(duì)比如圖8所示。 圖8 兩種方法對(duì)圖像信息建模大小對(duì)比Fig.8 Comparison of size of image information modeling by two methods 常規(guī)通信建模方法是由多個(gè)COTP數(shù)據(jù)段連接而成,尺寸非常大,由圖8可知達(dá)921 646字節(jié),而使用BitString擴(kuò)展后的圖像報(bào)文只有14 064個(gè)字節(jié),大小僅為常規(guī)方法建模的1.5%,輕量化效果顯著。 針對(duì)可變長(zhǎng)度數(shù)據(jù),常規(guī)方法無(wú)法有效建模,文中提出的方法不受影響。 MMS通信是智能變電站報(bào)文通信的重要組成部分,隨著電網(wǎng)的智能化發(fā)展不斷推進(jìn),智能設(shè)備不斷增加,已有的基于基本數(shù)據(jù)類(lèi)型創(chuàng)建的 “DO”和“LN”數(shù)據(jù)通信模型并不完全適用于所有測(cè)控裝置,若都使用這些基本模型來(lái)建立一些特殊變量的通信模型,會(huì)導(dǎo)致通信報(bào)文大量增長(zhǎng),加重服務(wù)器負(fù)荷,埋下故障隱患。文中提出了一種基本數(shù)據(jù)類(lèi)型BitString的具體擴(kuò)展建模,有效減小了報(bào)文大小,并且BitString擴(kuò)展類(lèi)型作為MMS通信基本模型使用,特別適用于多點(diǎn)狀態(tài)信息的集合通信,同時(shí)也適用于傳送圖像、文件以及封裝的結(jié)構(gòu)化數(shù)據(jù),極大地簡(jiǎn)化數(shù)據(jù)的封裝。它的寬度可以在建模時(shí)設(shè)計(jì)指定;MMS服務(wù)器程序設(shè)計(jì)完成后程序運(yùn)行時(shí)可以動(dòng)態(tài)修改寬度,大大增加了模型建立靈活度和模型的適應(yīng)性。通信測(cè)試表明,文中提出的基礎(chǔ)數(shù)據(jù)類(lèi)型BitString的擴(kuò)充方法,對(duì)于智能變電站的通信報(bào)文輕量化及通信模型適應(yīng)性提高顯著,對(duì)智能變電站通信建模的工程應(yīng)用具有較大借鑒意義。3.3 LNodeType修改
3.4 IED中邏輯節(jié)點(diǎn)實(shí)例化
3.5 SCL文件的其他修改
4 MMS服務(wù)器端程序修改
4.1 SCL解析程序修改
4.2 MMS讀取回調(diào)修改
4.3 MMS寫(xiě)入回調(diào)修改
5 擴(kuò)展模型的通信測(cè)試
6 結(jié)論