APP下载

基于MMS的ACSI信息解码模块分析与设计❋

2014-08-07王倩丽杨根善

微处理机 2014年5期
关键词:三元组解码报文

王倩丽,杨根善

(西安航空学院计算机工程系,西安710077)

基于MMS的ACSI信息解码模块分析与设计❋

王倩丽,杨根善

(西安航空学院计算机工程系,西安710077)

针对ACSI信息的解码问题,设计了一种基于MMS报文的解码模块。分析了IEC 61850标准和制造报文规范MMS之间的模型映射关系,给出了抽象通信服务接口ACSI和制造报文规范MMS之间的服务映射规则。在分析抽象语法标记ASN.1的BER编码规则基础上,分析了MMS报文的解码过程,并且将MMS协议数据单元PDU的抽象语法描述转换为C语言中的特定结构体,提出了基于MMS的ACSI信息解码模块的设计方法,并基于上述方法设计了解码模块的C语言程序。实验结果表明,本解码模块能够正确实现MMS报文的解码。

IEC 61850;制造报文规范;抽象通信服务接口;ASN.1;解码

1 引 言

IEC 61850是国际电工委员会(International Electrotechnical Commission,IEC)TC57制定的变电站通信网络和系统(Communication networks and systems in substations)的一系列国际标准,同时也是基于通用网络平台的变电站自动化系统唯一国际标准[1]。IEC 61850定义了变电站内智能电子设备(Intelligent Electric Device,IED)之间信息交换的数据模型和互操作规范,在信息通信中遵循ASN.1的编解码规范[2]。

在分析IEC 61850标准和制造报文规范MMS之间模型映射关系的基础上,给出了抽象通信服务接口ACSI和制造报文规范MMS之间的服务映射规则。在分析抽象语法标记ASN.1的BER编码规则基础上,提出了基于MMS的ACSI信息解码模块的设计方法,并且进行了解码模块的C语言程序设计。

2 IEC61850与MMS的映射

制造报文规范(Manufacturing Message Specification,MMS)标准是由国际标准化组织(International Organization for Standardization,ISO)提出的一套国际报文规范,旨在解决异构网络环境下智能设备之间实现实时数据交换与监控信息的报文规范[3-4]。MMS提供的服务已经广泛应用于航空、电力等工业生产自动化领域。

IEC 61850映射的MMS对象和服务是MMS标准的一部分,即MMS的一个协议子集。IEC 61850应用的模型主要包括:环境(Content)、虚拟制造设备(Virtual Manufacturing Device,VMD)、域(Domain)、有名变量(Named Variable)、有名变量列表(Named Variable List)、日志(Journal)和文件管理(File Management)等模型[5]。IEC 61850模型和MMS模型的映射关系如表1所示。

表1 IEC 61850模型和MMS模型的映射关系

3 ACSI与MMS的服务映射

抽象通信服务接口(Abstract Communication Service Interface,ACSI)是IEC 61850标准实现通信协议及应用与通信介质进行分离的模型规范。ACSI提供的基本信息模型包括:服务器(Service)、逻辑设备(Logical Device,LD)、逻辑节点(Logical Node,LN)、数据(Data)和数据属性(Data Attribute)等对象。ACSI提供的服务包括:关联(Associate)、目录(Directory)和数据定义(Data Definition)等服务[6-7]。

ACSI采用抽象的建模技术,为变电站设备定义了公共应用服务,从而提供了通过虚拟镜像访问真实数据和真实设备的途径。ACSI采用特定通信服务映射(Specific Communication Service Mapping,SCSM)的方法将其映射为具体的实时通信协议,以适应底层通信技术的发展,从而保证IEC 61850的可扩展性。访问类通信服务在ACSI与MMS之间的映射规则如表2所示。

表2 ACSI与MMS的映射规则

4 ASN.1抽象语法标记和编码规则

4.1 ASN.1抽象语法标记

抽象语法标记(Abstract Syntax Notation One,ASN.1)是一种位于表示层的语言,主要针对异构计算机系统之间信息交换进行抽象描述的规范化语言。ASN.1提供了一整套格式用于信息对象的结构描述,描述了一种对结构化信息对象进行表示、编码、传输和解码的数据格式[8]。ASN.1分为两个部分,即语法规则和编码规则,语法规则描述了标记类型、信息模块的标记定义等方面的内容,编码规则描述了实际信息中的数据如何表示。

ASN.1传输语法格式是基于八位位组(Octet)的字节序列来进行数据传输和面向高字节在前的大端(Big Endian)格式。ASN.1包含多种编码规则,主要有:基本编码规则(Basic Encoding Rules,BER),规范编码规则(Canonical Encoding Rules,CER),区分编码规则(Distinguished Encoding Rules,DER),压缩编码规则(Packed Encoding Rules,PER)和XML编码规则(XML Encoding Rules,XER)等。MMS采用了ASN.1的BER编码规则作为数据结构定义描述工具与传输语法。

4.2 BER编码规则

ASN.1的BER编码规则的编码结构由三元组格式构成,即:标签(Tag),长度(Length)和值(Value),且三部分均为8位位组的字节序列,简称为TLV(Tag,Length,Value)三元组格式。标签是编码的头字节,用来区分信息类型和负责内容的解释,通常占据1个或2个字节。长度用来说明值是由多少个字节数所构成,根据值的字节数不同,长度所占据的字节也不同。值是数据单元的实体,包括了数据单元中准备传送的主要信息,通常值是一个或多个TLV三元组的嵌套格式。BER编码结构示意图如图1所示。

图1 BER编码结构示意图

标签8位位组由类型(Class)、格式(Form)和标签编号(Tag Code)组成,示意图如图2所示。

图2 标签结构示意图

类型分为四种:通用类、应用类、上下文指定类和专用类,对应的bit6和bit7编码分别为00,10,01,11。格式指明数据单元是基本类型(bit5为0)还是构造类型(bit5为1)。在单字节格式中,标签的bit0到bit4就是标签编号,提供的标签码值范围从00000到11110(十进制的0到30)。若标签码的值大于30,需采用多字节扩充格式。扩充的方法为把bit0到bit4编码为11111,下一个位组的bit7比特作为扩充指示比特。如果bit7值为1,表示下一个位组也用来作为标签码的扩充,如果bit7值为0,表示本位组是最后一个扩充标签码。合成的标签码由每个位组的bit0到bit6共7位组成,并且第一个扩充的位组bit6为最高位,最后一个扩充的位组bit0为最低位。

5 解码模块设计

MMS标准采用ASN.1语法来描述MMS协议,即MMS的协议数据单元(Protocol Data Unit,PDU)格式,并且规定任何遵循MMS协议标准的系统都必须采用ASN.1基本编码规则进行数据表示和数据传送。

针对MMS标准和BER编码规则,采用C语言设计了MMS报文解码模块,以获取ACSI服务与MMS服务的对应关系。为了实现将ASN.1的MMS PDU数据转换为C语言所能够清楚判别的数据,设计了一个PackageMmsPdu的C语言结构体用来存储MMS PDU数据。PackageMmsPdu结构体定义如下:

解码模块由3部分组成:标签分析模块、长度提取模块、值分析模块,并且本模块的执行是基于递归的方式来运行。解码模块流程图如图3所示,标签分析模块流程图如图4所示。解码模块所对应的函数为:void MmsDecode(char*str,int length,PackageMmsPdu*MmsPdu),其作用是解读MMS报文,且把信息存储在PackageMmsPdu结构体中。在此模块函数中,第一个参数str是获取MMS报文的字符序列,第二个参数length是整个MMS报文序列的字符个数,第三个参数MmsPdu是最终解码之后所得到的结构体PackageMmsPdu的存储地址。

图3 解码模块的流程图

图4 标签分析模块的流程图

根据解码模块的流程图,完成了MMS报文解码模块程序函数MmsDecode,以正确解读MMS报文。通过特殊软件可以截获MMS通信报文,其内容为:a0 0e 02 01 03 a1 09 a0 03 80 01 07 a1 02 80 00。通过设计的解码模块程序进行解码,可以得到多个嵌套的TLV三元组。第一个TLV三元组中标签为:a0,类型是上下文指定类,格式为构造类型,标签编号为0;长度为:14;值为:02 01 03 a1 09 a0 03 80 01 07 a1 02 80 00。第二个TLV三元组中标签为:02,类型是通用类,格式为基本类型,标签编号为2;长度为:1;值为:03。第三个TLV三元组中标签为:a1,类型是上下文指定类,格式为构造类型,标签编号为1;长度为:9;值为:a0 03 80 01 07 a1 02 80 00。第四个TLV三元组中标签为:a0,类型是上下文指定类,格式为构造类型,标签编号为0;长度为:3;值为:80 01 07。第五个TLV三元组中标签为:80,类型是上下文指定类,格式为基本类型,标签编号为0;长度为:1;值为:07。第六个TLV三元组中标签为:a1,类型是上下文指定类,格式为构造类型,标签编号为1;长度为:2;值为:80 00。通过对多个嵌套的TLV三元组进行分析,可以得知这是一条Get-NameList的请求MMS服务报文。

6 结束语

在IEC 61850标准的基础上,提出了基于MMS的ACSI信息解码模块的设计方法,并且实现了解码模块的 C语言程序。此解码模块能够实现将MMS协议数据单元PDU的抽象语法描述转换为C语言中的特定结构体。实验结果表明,解码模块能够正确实现MMS报文的解码。

[1]王德文,朱永利,翟学明,等.基于MMS的ACSI基本信息模型获取方法[J].电力系统自动化,2008,32(22):56-60.

[2]李永亮,葛维春,王芝茗.IEC61850通讯标准中的编码规范ASN.1[J].电力系统保护与控制,2008,36(22):66-71.

[3]李友军,徐广辉,王文龙,等.Web Service和MMS技术在IEC61850标准体系中的应用分析[J].电力系统保护与控制,2009,37(14):101-104.

[4]马亮,杨洪涛,汝雁飞,等.基于MMS-EASE的智能装置ACSI服务的一致性测试软件实现[J].电力自动化设备,2012,32(3):109-112.

[5]董科,关彬,王巍.IEC61850与MMS的映射的研究[J].电力系统保护与控制,2010,38(10):92-94.

[6]王德文,阎春雨,毕建刚,等.变电站状态监测通信网关中Modbus与IEC 61850的映射方法[J].电力系统自动化,2012,36(19):78-84.

[7]张双悦,王红,杨士元,等.IEC61850服务映射中的矛盾及一种解决方案[J].电力自动化设备,2013,33(3):141-146.

[8]丁力,王晓茹,王林.IEC 61850标准中MMS映射分析及其编码/解码模块的设计[J].电力系统保护与控制,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-),女,陕西合阳人,讲师,主研方向:从事信息系统方面的研究。

2014-01-20

猜你喜欢

三元组解码报文
基于J1939 协议多包报文的时序研究及应用
《解码万吨站》
特征标三元组的本原诱导子
CTCS-2级报文数据管理需求分析和实现
解码eUCP2.0
关于余挠三元组的periodic-模
浅析反驳类报文要点
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
一个时态RDF存储系统的设计与实现