王倩麗,楊根善
(西安航空學院計算機工程系,西安710077)
基于MMS的ACSI信息解碼模塊分析與設(shè)計?
王倩麗,楊根善
(西安航空學院計算機工程系,西安710077)
針對ACSI信息的解碼問題,設(shè)計了一種基于MMS報文的解碼模塊。分析了IEC 61850標準和制造報文規(guī)范MMS之間的模型映射關(guān)系,給出了抽象通信服務(wù)接口ACSI和制造報文規(guī)范MMS之間的服務(wù)映射規(guī)則。在分析抽象語法標記ASN.1的BER編碼規(guī)則基礎(chǔ)上,分析了MMS報文的解碼過程,并且將MMS協(xié)議數(shù)據(jù)單元PDU的抽象語法描述轉(zhuǎn)換為C語言中的特定結(jié)構(gòu)體,提出了基于MMS的ACSI信息解碼模塊的設(shè)計方法,并基于上述方法設(shè)計了解碼模塊的C語言程序。實驗結(jié)果表明,本解碼模塊能夠正確實現(xiàn)MMS報文的解碼。
IEC 61850;制造報文規(guī)范;抽象通信服務(wù)接口;ASN.1;解碼
IEC 61850是國際電工委員會(International Electrotechnical Commission,IEC)TC57制定的變電站通信網(wǎng)絡(luò)和系統(tǒng)(Communication networks and systems in substations)的一系列國際標準,同時也是基于通用網(wǎng)絡(luò)平臺的變電站自動化系統(tǒng)唯一國際標準[1]。IEC 61850定義了變電站內(nèi)智能電子設(shè)備(Intelligent Electric Device,IED)之間信息交換的數(shù)據(jù)模型和互操作規(guī)范,在信息通信中遵循ASN.1的編解碼規(guī)范[2]。
在分析IEC 61850標準和制造報文規(guī)范MMS之間模型映射關(guān)系的基礎(chǔ)上,給出了抽象通信服務(wù)接口ACSI和制造報文規(guī)范MMS之間的服務(wù)映射規(guī)則。在分析抽象語法標記ASN.1的BER編碼規(guī)則基礎(chǔ)上,提出了基于MMS的ACSI信息解碼模塊的設(shè)計方法,并且進行了解碼模塊的C語言程序設(shè)計。
制造報文規(guī)范(Manufacturing Message Specification,MMS)標準是由國際標準化組織(International Organization for Standardization,ISO)提出的一套國際報文規(guī)范,旨在解決異構(gòu)網(wǎng)絡(luò)環(huán)境下智能設(shè)備之間實現(xiàn)實時數(shù)據(jù)交換與監(jiān)控信息的報文規(guī)范[3-4]。MMS提供的服務(wù)已經(jīng)廣泛應(yīng)用于航空、電力等工業(yè)生產(chǎn)自動化領(lǐng)域。
IEC 61850映射的MMS對象和服務(wù)是MMS標準的一部分,即MMS的一個協(xié)議子集。IEC 61850應(yīng)用的模型主要包括:環(huán)境(Content)、虛擬制造設(shè)備(Virtual Manufacturing Device,VMD)、域(Domain)、有名變量(Named Variable)、有名變量列表(Named Variable List)、日志(Journal)和文件管理(File Management)等模型[5]。IEC 61850模型和MMS模型的映射關(guān)系如表1所示。
表1 IEC 61850模型和MMS模型的映射關(guān)系
抽象通信服務(wù)接口(Abstract Communication Service Interface,ACSI)是IEC 61850標準實現(xiàn)通信協(xié)議及應(yīng)用與通信介質(zhì)進行分離的模型規(guī)范。ACSI提供的基本信息模型包括:服務(wù)器(Service)、邏輯設(shè)備(Logical Device,LD)、邏輯節(jié)點(Logical Node,LN)、數(shù)據(jù)(Data)和數(shù)據(jù)屬性(Data Attribute)等對象。ACSI提供的服務(wù)包括:關(guān)聯(lián)(Associate)、目錄(Directory)和數(shù)據(jù)定義(Data Definition)等服務(wù)[6-7]。
ACSI采用抽象的建模技術(shù),為變電站設(shè)備定義了公共應(yīng)用服務(wù),從而提供了通過虛擬鏡像訪問真實數(shù)據(jù)和真實設(shè)備的途徑。ACSI采用特定通信服務(wù)映射(Specific Communication Service Mapping,SCSM)的方法將其映射為具體的實時通信協(xié)議,以適應(yīng)底層通信技術(shù)的發(fā)展,從而保證IEC 61850的可擴展性。訪問類通信服務(wù)在ACSI與MMS之間的映射規(guī)則如表2所示。
表2 ACSI與MMS的映射規(guī)則
4.1 ASN.1抽象語法標記
抽象語法標記(Abstract Syntax Notation One,ASN.1)是一種位于表示層的語言,主要針對異構(gòu)計算機系統(tǒng)之間信息交換進行抽象描述的規(guī)范化語言。ASN.1提供了一整套格式用于信息對象的結(jié)構(gòu)描述,描述了一種對結(jié)構(gòu)化信息對象進行表示、編碼、傳輸和解碼的數(shù)據(jù)格式[8]。ASN.1分為兩個部分,即語法規(guī)則和編碼規(guī)則,語法規(guī)則描述了標記類型、信息模塊的標記定義等方面的內(nèi)容,編碼規(guī)則描述了實際信息中的數(shù)據(jù)如何表示。
ASN.1傳輸語法格式是基于八位位組(Octet)的字節(jié)序列來進行數(shù)據(jù)傳輸和面向高字節(jié)在前的大端(Big Endian)格式。ASN.1包含多種編碼規(guī)則,主要有:基本編碼規(guī)則(Basic Encoding Rules,BER),規(guī)范編碼規(guī)則(Canonical Encoding Rules,CER),區(qū)分編碼規(guī)則(Distinguished Encoding Rules,DER),壓縮編碼規(guī)則(Packed Encoding Rules,PER)和XML編碼規(guī)則(XML Encoding Rules,XER)等。MMS采用了ASN.1的BER編碼規(guī)則作為數(shù)據(jù)結(jié)構(gòu)定義描述工具與傳輸語法。
4.2 BER編碼規(guī)則
ASN.1的BER編碼規(guī)則的編碼結(jié)構(gòu)由三元組格式構(gòu)成,即:標簽(Tag),長度(Length)和值(Value),且三部分均為8位位組的字節(jié)序列,簡稱為TLV(Tag,Length,Value)三元組格式。標簽是編碼的頭字節(jié),用來區(qū)分信息類型和負責內(nèi)容的解釋,通常占據(jù)1個或2個字節(jié)。長度用來說明值是由多少個字節(jié)數(shù)所構(gòu)成,根據(jù)值的字節(jié)數(shù)不同,長度所占據(jù)的字節(jié)也不同。值是數(shù)據(jù)單元的實體,包括了數(shù)據(jù)單元中準備傳送的主要信息,通常值是一個或多個TLV三元組的嵌套格式。BER編碼結(jié)構(gòu)示意圖如圖1所示。
圖1 BER編碼結(jié)構(gòu)示意圖
標簽8位位組由類型(Class)、格式(Form)和標簽編號(Tag Code)組成,示意圖如圖2所示。
圖2 標簽結(jié)構(gòu)示意圖
類型分為四種:通用類、應(yīng)用類、上下文指定類和專用類,對應(yīng)的bit6和bit7編碼分別為00,10,01,11。格式指明數(shù)據(jù)單元是基本類型(bit5為0)還是構(gòu)造類型(bit5為1)。在單字節(jié)格式中,標簽的bit0到bit4就是標簽編號,提供的標簽碼值范圍從00000到11110(十進制的0到30)。若標簽碼的值大于30,需采用多字節(jié)擴充格式。擴充的方法為把bit0到bit4編碼為11111,下一個位組的bit7比特作為擴充指示比特。如果bit7值為1,表示下一個位組也用來作為標簽碼的擴充,如果bit7值為0,表示本位組是最后一個擴充標簽碼。合成的標簽碼由每個位組的bit0到bit6共7位組成,并且第一個擴充的位組bit6為最高位,最后一個擴充的位組bit0為最低位。
MMS標準采用ASN.1語法來描述MMS協(xié)議,即MMS的協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)格式,并且規(guī)定任何遵循MMS協(xié)議標準的系統(tǒng)都必須采用ASN.1基本編碼規(guī)則進行數(shù)據(jù)表示和數(shù)據(jù)傳送。
針對MMS標準和BER編碼規(guī)則,采用C語言設(shè)計了MMS報文解碼模塊,以獲取ACSI服務(wù)與MMS服務(wù)的對應(yīng)關(guān)系。為了實現(xiàn)將ASN.1的MMS PDU數(shù)據(jù)轉(zhuǎn)換為C語言所能夠清楚判別的數(shù)據(jù),設(shè)計了一個PackageMmsPdu的C語言結(jié)構(gòu)體用來存儲MMS PDU數(shù)據(jù)。PackageMmsPdu結(jié)構(gòu)體定義如下:
解碼模塊由3部分組成:標簽分析模塊、長度提取模塊、值分析模塊,并且本模塊的執(zhí)行是基于遞歸的方式來運行。解碼模塊流程圖如圖3所示,標簽分析模塊流程圖如圖4所示。解碼模塊所對應(yīng)的函數(shù)為:void MmsDecode(char*str,int length,PackageMmsPdu*MmsPdu),其作用是解讀MMS報文,且把信息存儲在PackageMmsPdu結(jié)構(gòu)體中。在此模塊函數(shù)中,第一個參數(shù)str是獲取MMS報文的字符序列,第二個參數(shù)length是整個MMS報文序列的字符個數(shù),第三個參數(shù)MmsPdu是最終解碼之后所得到的結(jié)構(gòu)體PackageMmsPdu的存儲地址。
圖3 解碼模塊的流程圖
圖4 標簽分析模塊的流程圖
根據(jù)解碼模塊的流程圖,完成了MMS報文解碼模塊程序函數(shù)MmsDecode,以正確解讀MMS報文。通過特殊軟件可以截獲MMS通信報文,其內(nèi)容為:a0 0e 02 01 03 a1 09 a0 03 80 01 07 a1 02 80 00。通過設(shè)計的解碼模塊程序進行解碼,可以得到多個嵌套的TLV三元組。第一個TLV三元組中標簽為:a0,類型是上下文指定類,格式為構(gòu)造類型,標簽編號為0;長度為:14;值為:02 01 03 a1 09 a0 03 80 01 07 a1 02 80 00。第二個TLV三元組中標簽為:02,類型是通用類,格式為基本類型,標簽編號為2;長度為:1;值為:03。第三個TLV三元組中標簽為:a1,類型是上下文指定類,格式為構(gòu)造類型,標簽編號為1;長度為:9;值為:a0 03 80 01 07 a1 02 80 00。第四個TLV三元組中標簽為:a0,類型是上下文指定類,格式為構(gòu)造類型,標簽編號為0;長度為:3;值為:80 01 07。第五個TLV三元組中標簽為:80,類型是上下文指定類,格式為基本類型,標簽編號為0;長度為:1;值為:07。第六個TLV三元組中標簽為:a1,類型是上下文指定類,格式為構(gòu)造類型,標簽編號為1;長度為:2;值為:80 00。通過對多個嵌套的TLV三元組進行分析,可以得知這是一條Get-NameList的請求MMS服務(wù)報文。
在IEC 61850標準的基礎(chǔ)上,提出了基于MMS的ACSI信息解碼模塊的設(shè)計方法,并且實現(xiàn)了解碼模塊的 C語言程序。此解碼模塊能夠?qū)崿F(xiàn)將MMS協(xié)議數(shù)據(jù)單元PDU的抽象語法描述轉(zhuǎn)換為C語言中的特定結(jié)構(gòu)體。實驗結(jié)果表明,解碼模塊能夠正確實現(xiàn)MMS報文的解碼。
[1]王德文,朱永利,翟學明,等.基于MMS的ACSI基本信息模型獲取方法[J].電力系統(tǒng)自動化,2008,32(22):56-60.
[2]李永亮,葛維春,王芝茗.IEC61850通訊標準中的編碼規(guī)范ASN.1[J].電力系統(tǒng)保護與控制,2008,36(22):66-71.
[3]李友軍,徐廣輝,王文龍,等.Web Service和MMS技術(shù)在IEC61850標準體系中的應(yīng)用分析[J].電力系統(tǒng)保護與控制,2009,37(14):101-104.
[4]馬亮,楊洪濤,汝雁飛,等.基于MMS-EASE的智能裝置ACSI服務(wù)的一致性測試軟件實現(xiàn)[J].電力自動化設(shè)備,2012,32(3):109-112.
[5]董科,關(guān)彬,王巍.IEC61850與MMS的映射的研究[J].電力系統(tǒng)保護與控制,2010,38(10):92-94.
[6]王德文,閻春雨,畢建剛,等.變電站狀態(tài)監(jiān)測通信網(wǎng)關(guān)中Modbus與IEC 61850的映射方法[J].電力系統(tǒng)自動化,2012,36(19):78-84.
[7]張雙悅,王紅,楊士元,等.IEC61850服務(wù)映射中的矛盾及一種解決方案[J].電力自動化設(shè)備,2013,33(3):141-146.
[8]丁力,王曉茹,王林.IEC 61850標準中MMS映射分析及其編碼/解碼模塊的設(shè)計[J].電力系統(tǒng)保護與控制,2008,36(12):69-73.
Analysis and Design of ACSI Information Decoding Module Based on MMS
WANG Qian-li,YANG Gen-shan
(Department of Computer Engineering,Xi’an Aeronautical University,Xi’an 710077,China)
Focusing on the decodable problem of the ACSI information,the decodingmodule based on MMS is designed.Themapping relationship ofmodels between IEC 61850 standard and Manufacturing Message Specification(MMS)is analyzed.Themapping rule of service between Abstract Communication Service Interface(ACSI)and Manufacturing Message Specification(MMS)is suggested.On the basis of analysis on ASN.1's basic encoding rules(BER),the decoding process on MMSpacket is analyzed,and the ASN.1 abstract syntax of MMSProtocol Data Unit(PDU)is converted to the specific structure of C program language.Based on the above analysis,a designing method of the ACSI information decoding module based on MMS is proposed,and the decodingmodule of C program is finished.The experimental results show that the designed module can be correctly implemented the MMS packet decoding.
IEC 61850;Manufacturing Message Specification;Abstract Communication Service Interface;ASN.1;Decoding
10.3969/j.issn.1002-2279.2014.05.024
TM76
:A
:1002-2279(2014)05-0084-04
西安航空學院校級科研基金資助項目(13XP17)
王倩麗(1980-),女,陜西合陽人,講師,主研方向:從事信息系統(tǒng)方面的研究。
2014-01-20