DL/T645-2007是中国电力行业的标准协议,全称为《多功能电能表通信协议》。它规定了电能表与外部设备(如数据采集器、集中器等)之间的通信规则,主要用于电能表的数据读取、参数设置、设备控制等操作。
该协议是电力系统中电能表通信的基础标准之一,广泛应用于智能电网、能源管理等领域。
简单来说, DL/T645-2007协议简单易用,开发门槛低,数据解析无需复杂计算,硬件广泛支持,维护成本低。
相反, DL/T698.45协议采用对象模型,扩展性强,可实现高效通信,不仅能采集数据,还支持远程控制,故障诊断,适用于智能电网等复杂场景。
但698却无法完全替代645,原因是645开发和使用成本更低,对于简单抄表场景,645性价比更高,所以,在短期内,DLT645仍是存量市场的主力协议。
DLT645协议覆盖了电能表的所有功能,包括电能量、事件、冻结、需量、负荷记录、身份认证、写入数据、广播校时等等,功能虽然很多,但是实际项目中经常用到的只有那几个功能,我们不用研究太深入,掌握基础功能满足项目要求就可以了。
字段 | 长度(字节) | 说明 | |
在 主站 发送帧信息之前, 建议先发送 4 个字节 FEH ,以唤醒接收方。
标识一帧信息的开始,其值为 68H=01101000B 。
地址域由 6 个字节构成,每字节 2 位 BCD 码,地址长度可达 12 位十进制数 。
每块表具有唯一的通信地址,且与物理层信道无关。当使用的地址码长度不足 6 字节时, 高位用 “ 0 ” 补足 。
通信地址 999999999999H 为广播地址,只针对特殊命令有效,如广播校时 和 广播冻结等。广播命令不要求从站应答 。
地址域 支持缩位寻址,即从若干低位起,剩余高位补 AAH 作为通配符进行读表操作,从站应答帧的地址域返回实际通信地址。
地址域传输时低字节在前,高字节在后。
控制码的格式如下所示:
以下为解析示例中会用到的控制码:
▌示例:C=11H,为请求读电能表数据,转换为二进制:00010001,对应到以上格式就是D7为0(主站发出的命令帧),D6为0(从站正确应答),D5为0(无后续数据帧),D4~D0:10001为读数据。
▌示例: C=93H,为 从站正常应答帧,转换为二进制:10010011,对应到以上格式就是D7为1(从站发出的应答帧),D6为0(从站正确应答),D5为0(无后续数据帧),D4 ~D0:10011为读通讯地址。
▌ 示例: C=91H,为 从站正常应答帧,转换为二进制: 10010001 ,对应到以上格式就是D7为1(从站发出的应答帧),D6为0(从站正确应答),D5为0(无后续数据帧),D4 ~D0:10001为读数据。
▌ 示例: C=13H,为 请求读电能表通信地址,仅支持点对点通信。转换为二进制: 00010011 ,对应到以上格式就是D7为0(主站发出的应答帧),D6为0(从站正确应答),D5为0(无后续数据帧),D4 ~D0:10011为读通讯地址。
L 为数据域的字节数。读数据时 L ≤ 200 ,写数据时 L ≤ 50 , L =0 表示无数据域。
数据域包括数据标识、密码、操作者代码、数据、帧序号等,其结构随控制码的功能而改变。
传输时发送方按字节进行加 33H 处理,接收方按字节进行减 33H 处理。 所有数据项均先传送低位字节,后传送高位字节。数据传输的举例:电能量值为 123456.78kWh ,其传输次序如图:
从第一个帧起始符开始到校验码之前的所有各字节的模 256 的和,即各字节二进制算术和,不计超过 256 的溢出值。
标识一帧信息的结束,其值为 16H=00010110B。
发送查询指令帧:FE FE FE 68 AA AA AA AA AA AA 68 13 00 DF 16 解析:FE FE FE(前缀唤醒电表) 68(起始符) AA AA AA AA AA AA(电表地址编号通配符) 68(起始符) 13(控制码) 00(数据域长度) DF(校验码) 16(结束符) 返回帧:FE FE 68 00 00 00 00 00 55 68 93 06 33 33 33 33 33 88 45 16 解析:FE FE(唤醒前缀) 68(起始符) 60 30 00 04 24 20(电表通信地址) 68(起始符) 93(控制码) 06(数据域长度) C7 33 33 33 33 33 88(数据域,减去33后反转数据就是电表通讯地址) 45(校验码) 16(结束符)
发送查询指令:68 00 00 00 00 00 55 68 11 04 33 33 34 33 45 16 解析:68(起始符) 00 00 00 00 00 55(电表通信地址) 68(起始符) 11(控制码:请求读取电能表数据) 04(数据域长度)33 33 34 33(减33H,然后反转,就是00 01 00 00) 45(校验码) 16(结束符) 返回指令:68 00 00 00 00 00 55 68 91 08 33 33 34 33 69 AA 85 38 5B 16 解析:68(起始符) 00 00 00 00 00 55(电表通信地址) 68(起始符) 91(控制码,没有后续) 08(数据域长度,数据域有8个字节) 33 33 34 33 69 AA 85 38(减33后反转数据:05527736000100;由于此电能表电能小数位为2位,则实际为:55277.36kWh) 5B(校验码) 16(结束符)
以来示例源自瑞银电子的上位机软件,与电能表通讯进行实例演示,以下截图是上位机软件读取电能表正向有功总能量的实例。
▌第一条发送命令,控制码是C=13H(主站/上位机请求读通讯地址)。是采用AAAAAAAAAAAA缩位寻址,请求电能表的通讯地址。
▌第二条为接收到电能表的数据,控制码是 C=93H(电表返回通讯地址)。返回电能表真实通讯地址:550000000000
▌第三条为上位机发送读取电能表正向有功总电能的命令,控制码是 C=11H(主站/上位机请求读电表数据)。
▌第四条为电能表回传的 电能表正向有功总电能的数据,控制码是 C=91H,(电表返回主站/上位机需要读取的数据)。
以上,基本介绍清楚了 DL/T645协议的数据格式,而实际上,就不需要我们像机器那样去解读每条命令/报文,只需了解协议的规则即可!
当然,作为研发人员,懂这方面是真有必要,以上给出瑞银电子DJZ1226直流智能电能表的通讯协议二维码下载链接(如无法下载,请联系客服),购买过瑞银电子DJZ1225直流电能表的用户,可以结合更加全面的 DL/T645-2007协议,去深入了解。