一、多功能电能表通信协议
DL/T645多功能电能表通信协议(Multi-function watt-hour meter communication protocol)标准是为统一和规范电能表的多功能电能表与数据终端设备进行数据交换时的物理连接和协议。
1、RS-485 标准串行电气接口
本标准采用 RS-485 标准串行电气接口,使多点连接成为可能。RS-485 接口的一般性能应符合下列要求:
- 驱动与接收端耐静电放电 (ESD)±15kV(人体模式);
- 共模输入电压:-7V~+12V;
- 差模输入电压:大于 0.2V;
- 驱动输出电压:在负载阻抗 54Ω 时,最大 5V,最小 1.5V;
- 三态方式输出;
- 半双工通信方式;
- 驱动能力不小于 32 个同类接口;
- 缺省速率:2400bps,在通信速率不大于 100kbps 条件下,有效传输距离不小于 1200m;
- 总线是无源的,由多功能电能表或数据终端提供隔离电源。
- 缺省校验:偶校验
2、数据链路层
本协议为主-从结构的半双工通信方式。手持单元或其它数据终端为主站,多功能电能表为从站。每个多功能电能表均有各自的地址编码。通信链路的建立与解除均由主站发出的信息帧来控制。每帧由帧起始符、从站地址域、控制码、数据域长度、数据域、帧信息纵向校验码及帧结束符 7 个域组成。每部分由若干字节组成。
2.1 字节格式
每字节含 8 位二进制码,传输时加上一个起始位(0)、一个偶校验位和一个停止位(1), 共 11 位。其传输序列如图 7。D0 是字节的最低有效位,D7 是字节的最高有效位。先传低位,后传高位。
2.2 帧格式
2.2.1 帧起始符 68H
标识一帧信息的开始,其值为 68H=01101000B。
2.2.2 地址域 A0~A5
地址域由 6 个字节构成,每字节 2 位 BCD 码,地址长度可达 12 位十进制数。每块表具有唯一的通信地址,且与物理层信道无关。当使用的地址码长度不足 6 字节时,高位用“0”补足。
通信地址 999999999999H 为广播地址,只针对特殊命令有效,如广播校时和广播冻结等。广播命令不要求从站应答。
地址域支持缩位寻址,即从若干低位起,剩余高位补 AAH 作为通配符进行读表操作,从站应答帧的地址域返回实际通信地址。
地址域传输时低字节在前,高字节在后。
2.2.3 控制码 C
控制码的格式如下所示。
2.2.4 数据域长度 L
L 为数据域的字节数。读数据时 L≤200,写数据时 L≤50,L=0 表示无数据域。
2.2.5 数据域 DATA
数据域包括数据标识、密码、操作者代码、数据、帧序号等,其结构随控制码的功能而改变。传输时发送方按字节进行加 33H 处理,接收方按字节进行减 33H 处理。
2.2.6 校验码 CS
从第一个帧起始符开始到校验码之前的所有各字节的模 256 的和,即各字节二进制算术和,不计超过 256 的溢出值。
2.2.7 结束符 16H
标识一帧信息的结束,其值为 16H=00010110B。
3、传输
3.3.1 前导字节
在主站发送帧信息之前,先发送 4 个字节 FEH,以唤醒接收方。有可能有,有可能没有。
3.3.2 传输次序
所有数据项均先传送低位字节,后传送高位字节。数据传输的举例:电能量值为 123456.78kWh,其传输次序如图
3.3.3 传输响应
每次通信都是由主站向按信息帧地址域选择的从站发出请求命令帧开始,被请求的从站接收到命令后作出响应。
收到命令帧后的响应延时 Td:20ms≤Td≤500ms。
字节之间停顿时间 Tb:Tb≤500ms。
3.3.4 差错控制
字节校验为偶校验,帧校验为纵向信息校验和,接收方无论检测到偶校验出错或纵向信息校验和出错,均放弃该信息帧,不予响应。
3.3.5 通信速率
标准速率:600bps,1200bps,2400bps,4800bps,9600bps,19200bps。
特殊速率:由厂家规定。
通信速率特征字见附录 C,特征字的各位不允许组合使用,修改通信速率时特征字仅在 Bit0~Bit7一个二进制位为 1 时有效。
通信速率的变更,首先由主站向从站发变更速率请求,从站发确认应答帧或否认应答帧。收到从站确认帧后,双方以确认的新速率进行以后的通信,并在通信结束后保持更改速率不变。
注: 最大通信速率受光电头或多功能电能表光学接口的限制,也受多功能电能表数据处理单元中工作时钟频率的限制。
4、数据标识
4.1 数据标识结构
数据标识编码用四个字节区分不同数据项,四字节分别用 DI3、DI2、DI1和 DI0代表,每字节采用十六进制编码。数据类型分为七类:电能量、最大需量及发生时间、变量、事件记录、参变量、冻结量、负荷记录。数据标识具体定义见附录 A 的 A.2 数据标识编码表。
4.2 数据传输形式
数据标识码标识单个数据项或数据项集合。单个数据项可以用附录 A.2 中对应数据项的标识码唯一地标识。当请求访问由若干数据项组成的数据集合时,可使用数据块标识码。实际应用以数据标识编码表定义内容为准。
4.2.1 数据项、数据块
4.2.1.1 数据项
除特殊说明的数据项以 ASCII 码表示外,其它数据项均采用压缩 BCD 码表示。
4.2.1.2 数据块
数据标识 DI2 、DI1 、DI0中任意一字节取值为 FFH 时(其中 DI3不存在 FFH 的情况),代表该字节定义的所有数据项与其它三字节组成的数据块。
4.2.2 举例
a、标识码 DI3DI2DI1DI0=00010000H(数据项)表示当前正向有功总电能。
b、标识码 DI3DI2DI1DI0=000100FFH(数据块)表示正向有功总电能数据块,包含当前、上 1 结算日~上 12 结算日正向有功总电能数据。
c、标识码 DI3DI2DI1DI0=0001FF00H(数据块)表示当前正向有功电能数据块,包含总、费率 1、费率 2….的当前正向有功电能数据。
二、举例
1、串口通信速率设置
2、通信地址设置和读取
注意:
压缩BCD码是一种用于表示十进制数的编码方式。它使用一个字节来表示两位BCD码,其中高位表示十位数的BCD码,低位表示个位数的BCD码。压缩BCD码可以有效地减少存储空间的使用,因为它将两个BCD码合并到一个字节中。
例如,十进制数56用压缩BCD码表示为0101 0110。其中,高位0101表示十位数的BCD码为5,低位0110表示个位数的BCD码为6。
压缩BCD码在一些特定的应用中非常常见,特别是在嵌入式系统和单片机中。它可以用于节省存储空间和提高数据传输效率。