《⾯向对象的⽤电信息数据交换协议》-698协议的理解
《⾯向对象的⽤电信息数据交换协议》-698协议的理解
写在前⾯
DL/T 698.45是⾯对对象的通信协议,适⽤于主站和采集终端、采集终端和电能表、主站和电能表之间。DL/T 645是⾯向过程的通信协议适⽤于采集终端和电能表之间。698是最新的协议,645是旧协议。
⾯向过程:数据和⽅法是分离的,同类的数据散装在⼀起,封装性差。
⾯向对象:把相关的数据和⽅法组合为⼀个整体来看待。
⾯向对象必然有类和对象:
类描述了⼀组有相同特性(属性)和相同⾏为(⽅法)的对象。在DL/T 698协议中具有共享公共特征的对象归纳为接⼝类(IC),接⼝类是同⼀类对象共同特征及⾏为的表达模板。每个类对应⼀个类标识码–类似⼀个⼈对应⼀个⾝份证。接⼝类由类标识码(c1ass_id)进⾏标识。接⼝类的公共特征(包括属性和⽅法) 适⽤于该类的所有实例。接⼝类的实例称为接⼝类对象,简称对象。⼀个对象只能属于⼀个接⼝类。⼀个对象对应于⼀个唯⼀的标识,即对象标识(OI)
DL/T698.45中电能量接⼝类(DL/T698.4协议中的⼀个类,类标识class_id=1)举例如表1;
服务器地址
![在这
在698.45协议中,⼀个功能操作代表⼀个实例对象,然后根据类标识码(c1ass_id)到对应的类。根据对象拥有的属性和⽅法进⾏读取、设置、操作等。
698.45-2017协议⽂档包含8个章节和附录
第 1、 2、 3、4章 分别定义了本协议的适⽤范围、 引⽤⽂件、术语定义和符号和缩略语
第5章 阐述本协议的通信架构。
第6章 定义了协议的链路层结构。
第7章 内容是协议应⽤层规范和应⽤数据单元⽤到的数据类型。
第8章 接⼝类与对象标识,规定了接⼝类的描述⽅法,定义了26个接⼝类,定义了对象标识系统,规定了接⼝类和对象标识的管理办法 。
附录章节包含对象标识,物理单位,⼀致性协商,链路层校验算法,安全认证说明,安全模式参数,状态字和APDU编码实例 。
1. 通信架构
客户机和服务器信息交换模型如图1所⽰
图1 信息交换模型
客户机和服务器的应⽤进程分别位于不同的设备;
(1)物理层规定了通信单元或其他终端设备与多功能电表的通信接⼝、接⼝的物理与电⽓特性,常见的物理层传输⽅式有对于RS485、红外、载波等通信通道。
(2)数据链路层将数据包装成可传输的帧格式。
(3)应⽤层包含交互的数据、报⽂。是唯⼀包含服务组件的协议层,应⽤层协议数据单元APDU通过数据链路层将数据包装成可传输的帧格式。
客户机和服务器有两种⽅向的数据交换。
(1)请求/响应类型的数据交换,客户机请求从机,服务器提供响应,涉及到读取、设置、操作、代理等服务。
(2)通知/确认类型的数据交换,服务器主动上报,客户机回复确认,涉及到上报服务。
客户机,包括主站(某上位机)或终端(集中器),服务器这⾥就是电表。
2 链路层
698帧结构图a)与645帧结构图b)对⽐
数据链路层规定了数据传输的报⽂信息、信息传输的编码规则和传输规则。其中包含帧起始标志(68H)、长度域L、控制域C、地址域A、帧头校验HCS、链路⽤户数据、帧校验FCS和帧结束标志(16H)。
举例1
帧数据:68 1f 00 43 05 08 00 00 00 00 00 10 b5 0b 06 01 04 40 00 02 00 1c 07 e0 09 0b 12 1e 00 00 05 69 16
①68:起始字符
②1f 00:长度域L,由2字节组成,取bit0-bit13,指除起始字符和结束字符之外的帧字节数。
③43:控制域C,1字节,定义如下图。
bit7和bit6控制着帧格式的传输⽅向。bit7=0 表⽰此帧是由客户机发出的; bit7=1 表⽰此帧是由服务器发出的;bit6=0 表⽰此帧是由服务器发起的; bit6=1 表⽰此帧是由客户机发起的。
分帧标志位: bit5=0,表⽰此帧是完整⽤户数据; bit5=1,表⽰此帧链路为⽤户数据⽚段。
43即01000011:可看出来该帧是由客户机发起⼀个请求,功能码为应⽤连接管理及数据交换服务。
④05 08 00 00 00 00 00:服务器地址。服务器地址定义如下:
bit0-bit3:地址字节数,注意此处是加1表⽰字节长度
bit4-bit5:逻辑地址
bit6-bit7:0表⽰单地址,1表⽰通配地址,2表⽰组地址,3表⽰⼴播地址
此处05 08 00 00 00 00 00中,05表⽰单地址,地址长度为5+1,08 00 00 00 00 00表⽰真实地址00 00 00 00 00 08.
⑤10:客户机地址16.
⑥b5 0b:帧头校验,是对帧头部分除起始字符和帧头检验本⾝之外的所有字节的校验
⑦06 01 04 40 00 02 00 1c 07 e0 09 0b 12 1e 00 00:应⽤层数据。具体含义见第三节应⽤层。
⑧05 69:帧校验,是对整帧除起始字符、结束字符和帧校验本⾝之外的所有字节的校验
3 应⽤层
DL/T698.45应⽤层数据单元直接以实例进⾏说明;说明之前理解三部分内容。
3.1 数据类型
DL/T698.45协议的应⽤层数据单元由各种数据类型(结构体)组成。DL/T698.45协议定义了许多数据类型,这些DL/T698.45⾃⼰定义的数据类型的元素⼤多是有许多基本或通⽤的数据类型组成。
举例1
DL/T698.45协议定义的Data数据类型:⼏乎包括了在DL/T698.45协议出现的所有类型;
0-28是基本的、通⽤的⼀些数据类型,80-96是DL/T698.45协议⾃⼰定义的数据类型。
0-28是基本的、通⽤的⼀些数据类型,80-96是DL/T698.45协议⾃⼰定义的数据类型。
3.2 应⽤服务
应⽤层服务分四类:
① 预连接服务(同时适⽤于客户机和服务器)
预连接服务(LINK)由服务器发起,客户机响应。DL/T 698.45存在⼀个预先建⽴的应⽤连接,在进⾏应⽤连接之前,⾸先建⽴⼀个预连接,该预连接可以满⾜最低的采集应⽤需求:⽐如登录,⼼跳。
对于 RS485、红外、载波等通信通道,当物理连接建⽴后,预连接的通道即
存在,不需额外建⽴预连接。
② 客户机应⽤层服务(适⽤于客户机);
客户机应⽤层数据单元( Client-APDU)的数据类型定义如图 5:
客户机的数据单元是定义的⼀个 SEQUENCE 数据类型,包括许多服务,主要
⽤到读取、设置、操作等请求。每个请求都是对应⼀个数据类型。
③ 服务器应⽤层服务(适⽤于服务器);
服务器应⽤层数据单元( Server-APDU) 的数据类型定义如图 6
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论