面向对象互操作数据交换协议的应用研究

2018-11-13 13:06沈曙明田家乐黄瑞王朝亮严华江陈红芳
电测与仪表 2018年21期
关键词:通信协议面向对象电能表

沈曙明,田家乐,黄瑞,王朝亮,严华江,陈红芳

(1. 国网浙江省电力公司电力科学研究院,杭州310014; 2.威胜集团有限公司,长沙410205)

0 引 言

目前用于采集电能的通信协议规约版本众多。目前在电能表中广泛采用的DL/T 645协议结构简单,易实现,但是不灵活,无法适应电力市场改革的互动式需求,缺乏扩展性和灵活性,且单帧报文短,通信传输效率低下。面向对象通信协议的设计在修订和扩充功能上十分复杂,程序繁琐,容易出错。文中研究了适用于主站、电能表之间采用点对点、多点共线及一点对多点通信方式的通信数据交换。综合现有协议优缺点以及国内智能电能表的功能特点,研究面向对象互操作数据交换通信协议在电能表上的应用,依照协议规则进行扩展和定制的数据项,实现了适用于用户自定义灵活配置的功能,准确高效采集现场用户需要信息,对于建设智能电网,实现互操作性应用需求具有实用价值[1-3]。

1 国内外现状

目前国内电能信息采集大都采用DL/T 645协议,但传统的面向过程的DL/T 645协议由于系统规约的各省网以及派生版本众多,频繁修订通信协议,大规模升级设备程序,欠缺扩展性和灵活性。经过多次备案后,数据项存在重复,与其他协议对应关系混乱,兼容性和互操作性亟需加强提高。如何解决这些问题,提升电能表通信效率和速率是文中所要研究的方向。

国际上通用的IEC 62056标准是具有良好互联性和互操作性的电能表通信标准,可解决计费装置的数据采集、数据传输及系统集成等方面问题,但因为我国大规模用电负控管理系统、电力信息综合管理系统、电能信息集成与交互要求速率较低等问题,IEC 62056协议无法适应国内的应用,研究一套适应国内需求的协议是志在必行的。

研究一套适应电能信息采集与管理系统主站、采集终端或电能表之间的通信协议,包括通信架构、数据链路层、应用层、以及接口类及其对象和对象标识,采用点对点、多点共线及一点对多点通信方式的通信数据交换。支持主动上报,规范同一类对象的属性和方法,以面向对象建模以及接口类实现继承关系,以对象封装数据及操作,以对象为互操作的基本要素的一套适用于采集系统的互操作协议。该协议就是面向对象互操作数据交换协议(简称“DL/T 698.45协议”)。

文中介绍了新协议的框架结构,探讨了新协议的技术特点,对DL/T 645和DL/T 698.45协议进行了对比,最后通过DL/T 698.45掉电事件可灵活配置为例,分析DL/T 698.45通信协议与现有DL/T 645协议规约的优势和改进。实例验证了新协议采集效率高、灵活高效、互操作性强、兼容性好等技术特点[4-10]。

2 面向对象通信协议设计

2.1 面向对象通信协议模型设计

基于面向对象建模方法建立的一套适用于采集系统的互操作性协议。面向对象建模以接口类实现继承关系,以对象来封装数据及操作,以对象为互操作的基本要素。DL/T 698.45采用的面向对象具有互操作性的数据传输协议,包括通信架构,数据链路层、应用层以及接口类及其对象和对象标识。在OBIS兼容了传统的DL/T 645 规约。由于国内大部分智能电能表是基于单片机上的设计,所以相比IEC 62056标准在通信体系上降低了难度。其次大数据包不限字数,打破传统固定帧长结构。采用ESAM安全权限代替IEC 62056的用户管理权限,如图1所示。

图1 DL/T 698.45协议模型

物理层将接收的数据存在接收缓存区,将要发送的数据存储在发生缓存区。数据链路层主要由帧校验、协议帧解析、应答帧及链路管理四个功能模块组成,具体功能如表1所示。

表1 数据链路层功能模块介绍

应用层的主要任务在于数据帧的编解码、服务原语的组建和解析。通过预连接对身份进行认证管理,设置对象访问。采用A-XDR解码方式对客户端传输的数据进行解码,对发生到客户端的数据进行A-XDR编码。当传输数据量大时,根据应用协商的分帧方案进行数据分帧处理。

面向对象建模以接口类实现继承关系如图2所示,接口类包括属性和方法,属性是对固有特征的描述,方法是对动态特征的描述。其次对象进行封装及操作,封装大大降低模块随意改动和访问,从而提高数据的可靠性,最大可能排除数据安全隐患。封装完毕的对象可以作为基类(也称父类)进行继承,子类在基类的特点上可以增减特有的属性和方法。直接在父类上重新改变和封装在所有子类都会体现,使得现场运维压力大大减小。通过重写,使得数据类型表现不同的行为,同一属性和方法又可以应用在不同的类中,使得程序更容易扩展。

图2 接口类继承关系

2.2 DL/T 698.45详细说明

(1)将具有共享公共特征的对象归纳为接口类(IC),接口类是同一类对象共同特征及行为的集合,一个对象有且只有一个接口类,对应唯一标识,即对象标识(OI)。接口类包括类名、属性和方法,如表2所示。

表2 接口属性和方法

(a)类名:类的说明,如:电能量类、最大需量类、功率类、冻结类等;

(b)属性:规定类的属性,静态(static)表示终端自身不能更改的属性,例如:配置参数;动态(dyn.)表示载有过程的属性,此属性是由终端自主当时更新;

(c)方法:规定类的方法:Method Name(),这些方法应在“方法说明”中说明。

(2)对象标识(OI)由两字节组成,采用分类编码的方式为系统的各个对象提供标识码,未定义的对象标识编码皆作为保留。可供用户自行定义和扩展。如表3所示。

表3 对象标识

(3)对象属性描述符(OAD),包括对象标识、属性标识、索引标识,属性索引是指向对象的指针,以需量为例,将需量(即逻辑名)设为第一属性,最大需量设为第二属性,分相最大需量设为第三属性,依次设置属性,当用户需要查询A相组合无功最大需量,即可通过该属性索引查询。所以用户采集查询方案主要通过配置OAD采集配置表的属性完成。

2.3 面向对象协议技术特点

面向对象建模以接口类实现继承关系,以对象来封装数据及操作,以对象为互操作的基本要素。面向对象协议的主要特点是业务适应性强、采集效率高,可灵活定制采集对象集,数据源唯一,互操作性强,含义一致,功能兼容,设备兼容等特点。

通过逻辑名引用来访问接口对象的属性或方法。从而将具有同一属性和方法的对象划分为同一接口类,构成从属关系,使得对象属性的操作更加方便简单。耦合性强,极大的提高了操作速度,且能全面得到用户所需要的信息。而传统的DL/T 645协议中各个特征是平行关系,不能灵活配置,不能适应电力改革需求。

链路层采用变长服务器地址,可兼容各类通信设备的互联互通。采用线性帧结构与IEC 62056 抽象语法相结合。帧头校验HCS与帧校验FCS采用CRC-16循环校验,并提供统一高效的算法。首先对协议对象标识查找,根据通信应用层、显示模块输入的对象标识完成协议数据对象列表的查找定位,输出对象标识在列表中的起始地址、包含的数据中心对象数量等信息。其次获取协议数据对象列表中的数据并进行相应的数据格式转换处理。相对1376.1和645的累加和校验可极大提高数据传输的可靠性 。通信应用层数据交换模块见图3。

图3 通信应用层数据交换模块

该协议采用对象建模技术,对象是属性和方法的集合。对象的信息在对象的属性当中能很好的体现出来,属性的值表示对象的特征,并能影响对象的行为特征。每个对象都提供了一些检查或修改属性值的方法。对象和属性方法是唯一索引。当用户需要修改或检查其中某些信息是否正确,直接通过访问对象的属性+方法形式得到。极大的减轻了测试人员的工作,提高效率。同时也为功能扩展,灵活定制提供了方便。

对象标识(OI)采用分类编码的方式为系统的各个对象提供标识码,该标识是唯一索引的,用十六进制数表示,凡未定义的对象标识编码皆作为保留。保留区的标识能为用户提供自由空间,用户可自行提供新的功能和定义,增加新的属性,给对象增加新的功能。具有对象标识系统,将对象标识和属性特征分离,提高了对象标识的通用性,减少OI字节数。相比IEC 62056 更加简单便捷。还可直接通过对象属性描述符(Object Attribute Descriptor,简称OAD)描述对象的属性和方法,访问对象属性。流程简单实用,且能高效获取对象特点。接口类标识码取值范围为1~255,其中1~200由电力行业电测量标准化技术委员会定义;201~220留作制作商专属接口类;221~225留作用户集团专属接口类。接口类不接受修订以及版本的代替,对现有接口类作修改都必须创建新的接口类。旧的接口类将不再使用但不会被撤销,仅保持对旧版本的兼容。221~225接口为用户提供了大量可供修改的接口。解决了对象认知混乱,修改和扩充功能需要大幅度修改,相关对象模糊概念等问题。

客户机和服务器通过预连接机制简化了通信架构,提高通信效率,数据上报直接基于预连接发起,从而大大提高了通信速度。服务器如果想得到更高的访问权限,必须重新建立更高权限的应用连接,在数据安全方面起了重要作用。

2.4 DL/T 698.45与DL/T645的比较

DL/T 698.45与DL/T 645协议的差异对比分析,见表4。

表4 连锁故障预测线路及其指标

3 应用实例

将DL/T 698.45通信协议应用于智能电能表体系,通过对帧解析与现有DL/T 645 协议进行比较,得出在大数据接收下的优势,以及修改对象特性进行分析比较,得出该协议实用性强、可扩展,具有很好的灵活性。下面通过对DL/T 698.45掉电事件可灵活配置为例,分析DL/T 698.45通信协议与现有DL/T 645协议规约的优势和改进。

当在2017年06月05日15:31:52发生掉电事件后重新在2017年06月09日11:15:53重新上电,基于DL/T 645通信协议的电能表传输固定的数据项,会记录上一次掉电时间170605133152和结束时刻170609111553。基于面向对象协议可以通过OAD灵活配置掉电事件关联属性帧文对比,如表5所示。

帧文解析:

发送:

05----读取一个对象请求

03----读取一个记录型对象

00----PIID

30110201---OAD 读取最近一次掉电事件记录

09----RSD 选择方法9

01----抄表

00----时间标签

响应:

85 03 00 30 11 02 00 05 00 20 22 02 00 00 20 1E 02

00 00 20 20 02 00 00 20 24 02 00 00 33 00 02 00 01

01 06 00 00 00 33 1C 07 E1 06 08 0D 1C 11 1C 07

E1 06 08 0D 1C 28 00 01 01 02 02 51 F2 01 02 00

11 00 00 00

85----读取一个对象响应

表5 OAD灵活配置关联属性帧

注:斜体字表示新增属性状态返回帧

03----读取一个记录型对象

00----PIID

30110201---OAD 读取最近一次掉电事件记录

05---- RCSD,SEQUENCE OF个数=5

00 20 22 02 00---第一列OAD :事件记录序号

00 20 1E 02 00---第二列OAD :事件发生时间

00 20 20 02 00---第三列OAD :事件结束时间

00 20 24 02 00---第四列OAD :事件发生源

00 33 00 02 00--- 第五列OAD :通道上报状态

01----记录数据

01----1条记录数据

06 00 00 00 33--第一列数据:事件记录序号:51

1C 07 E1 06 080D1C 11----第一列数据:事件发生时间:20170608 13:28:17

1C 07 E1 0608 0D 1C 28----第一列数据:事件发生时间:2017060813:28:40

00----事件发生源=NULL

01 03 02 02 51 F2 01 02 01(485通道)16 00

00 02 02 51 F2 09 02 01(载波通道) 16 00

00 02 02 51 F2 02 02 01 (红外通道)16 00---三个通道的上报状态:上行通信

增加掉电事件发生前正向有功电能量和反向有功电能量关联属性状态,B状态接收帧时,出现07,07代表 RCSD,SEQUENCE OF个数=7,因此B状态较A状态多了两个新增属性,由于返回帧是组合帧状态,所以较A状态会出现多个返回帧,该要素可以根据用户需求进行灵活配置,实现定制功能。A状态与B状态抄读数据如图4所示。

图4 A状态与B状态数据对比界面

通过OAD添加对象属性状态,可以得到不同的关联对象信息。掉电事件发生后,默认状态下,描述符为事件记录序号,事件发生时间、事件结束时间、事件发生源、事件上报状态等详细信息。当用户想增加关联对象信息,如增加掉电事件发生前正向有功电能量和事件发生前反向有功电能量,只需通过OAD增加或删减用户所需要的信息,即可满足。这样就可以灵活配置用户所需的任何信息,实现定制功能。

4 结束语

文中分析了面向对象协议在智能电能表应用研究问题,得出了该通信协议具有耦合性强、灵活性高,能根据用户需求定制,具有互操作性和互连性等优点。最后通过面向对象协议在智能电能表上的应用实例进行论证,该规约能满足市场需求,对适应下一代智能电能表发展需要有一定的参考价值。提出了一种基于改进贝叶斯分类器的基本信任分配函数的构造方法,该方法根据不同的属性值来确定满足条件的取值区间,从而更准确的提供了属性值本身所包含的故障信息,克服了贝叶斯分类器同一区域内基本信任分配函数无法变化的弊端。

实验结果表明改进后所得结果更能合理的反应区间内故障的信度分配,取得了更精确的分配结果,实现了基本信任分配的客观化。

猜你喜欢
通信协议面向对象电能表
巧数电能表
认识电能表
面向对象的计算机网络设计软件系统的开发
基于Z-Stack通信协议栈的红外地温采集电路设计
面向对象的数据交换协议研究与应用
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
面向对象Web开发编程语言的的评估方法
电能表自动化检定机器人可靠挂卸表方案设计与实现
基于MSP430+ATT7022B的三相三线多回路多功能电能表的研究