DL/T645-2007电表协议简介以及请求应答帧格式
数据组成
本协议为主-从结构的半双工通信方式。手持单元或其它数据终端为主站,多功能电能表为从站。每个多功能电能表均有各自的地址编码。通信链路的建立与解除均由主站发出的信息帧来控制。每帧由帧起始符、从站地址域、控制码、数据长度、数据域、帧信息纵向校验码及帧结束符7个域组成。每部分由若干字节组成。
字节格式
每字节含 8 位二进制码,传输时加上一个起始位(0)、一个偶校验位和一个停止位(1), 共 11 位。其传输序列如图 7。D0 是字节的最低有效位,D7 是字节的最高有效位。先传低位,后传高位。格式如下:
串口工具一般只需要提供要发送的数据,串口工具会自动把起始位、停止位、校验位封装到发送的数据中。
帧格式
说明 | 代码 | 描述 |
帧起始符 | 68H | 一个字节 |
地址域 | A0 | 6字节,不足6字节高位补零,低字节在前高字节在后,9999999999999999H为广播地址 |
A1 | ||
A2 | ||
A3 | ||
A4 | ||
A5 | ||
帧起始符 | 68H | 一个字节 |
控制码 | C | 一个字节 |
数据域长度 | L | 一个字节,数据域的字节数,读数据时L<=200,写数据时L<=50,L=0表示无数据域 |
数据域 | DATA | 包括数据标识、密码、操作者代码、数据、帧序号等,其结构随控制码的功能而改变。传输时低字节在前,高字节在后,发送方按字节进行加33H处理,接收方按字节进行减33H处理 |
校验码 | CS | 一个字节,从第一个帧起始符开始到检验码之前的所有个字节的模256的和,即各字节二进制算数和,不计超过256的溢出值 |
结束符 | 16H | 一个字节,标识一帧信息的结束 |
控制码格式
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
D7:传送方向(0:主站发出命令帧,1:从站发出的应答真)
D6:从站应答标志(0:从站正确应答,1:从站异常应答)
D5:后续帧标志(0:无后续数据帧,1:有后续数据帧)
D4~D0功能码 | 说明 |
00000 | 保留 |
01000 | 广播校时 |
10001 | 读数据 |
10010 | 读后续数据 |
10011 | 读通信地址 |
10100 | 写数据 |
10101 | 写通信地址 |
10110 | 冻结命令 |
10111 | 更改通信速率 |
11000 | 修改密码 |
11001 | 最大需量清零 |
11010 | 电量清零 |
11011 | 事件清零 |
数据传输
前导字节
在主站发送帧信息之前,先发送4个字节FEH,以唤醒接收方
传输次序
所有数据项均先传送低位字节,后传送高位字节。
数据传输的举例:电能量值为123456.78kWh,其传输次序图如下。
传输响应
每次通信都是由主站向按信息帧地址域选择的从站发出请求命令帧开始,被请求的从站接收到命令后做出响应。
收到命令帧后的响应延时Td: 20ms<=Td<=500ms
字节之间停顿时间Tb:Tb<=500ms
差错控制
字节校验为偶校验,帧校验为纵向信息校验和,接收方无论检测到偶校验出错或纵向信息校验和出错,均放弃该信息帧,不予响应。
通信速率
标准速率:600bps,1200bps,2400bps,4800bps,9600bps,19200bps
特殊速率:由厂家规定。
数据标识
数据标识结构
数据标识编码用四个字节区分不同数据项。四个字节分别用DI3,DI2,DI1,DI0代表,每字节采用十六进制编码。数据类型分为七类:电能量、最大需量及发生事件、变量、事件记录、参变量、冻结量、负荷记录
DI3 | DI2 | DI1 | DI0 |
数据传输形式
数据标识码标识单个数据项或数据项集合。单个数据项可以用附录A的A.2中对应数据项的标识码唯一的标识。当请求访问若干数据项组成的数据集合时,可使用数据块标识码。实际应用以数据标识码表定义内容为准。
数据项
除特殊说明的数据项以ASCII码表示外,其他数据均采用若干压缩BCD码表示。
数据块
数据标识DI2,DI1,DI0中任意一字节取值为FFH时(其中DI3不存在FFH的情况),代表该字节定义的所有数据项与其他三字节组成的数据块。
数据标识
DI3DI2DI1DI0标识码 | 标识码说明 | 数据类型 |
00010000H | 当前正向有功总电能 | 数据项 |
000100FFH | 正向有功总电能数据块,包含当前、上1结算日~上12结算日正向有功总电能数据。 | 数据块 |
0001FF00H | 标识当前正向有功电能量数据块,包含总、费率1、费率2……的当前正向有功电能数据 | 数据块 |
数据帧示例
读数据
主站请求帧
- 功能:请求读电能表数据
- 数据域长度:L=04H+m(数据长度)
- 控制码:C=11H
- 帧格式1(m=0):
68 A0 A1 A2 A3 A4 A5 68 11 04 DI0 DI1 DI2 DI3 CS 16
- 帧格式2(m=1,读给定块数的负荷记录):N负荷记录块数
68 A0 A1 A2 A3 A4 A5 68 11 05 DI0 DI1 DI2 DI3 N CS 16
- 帧格式3(m=6,读给定时间、块数的负荷记录):
68 A0 A1 A2 A3 A4 A5 68 11 0A DI0 DI1 DI2 DI3 N mm hh DD MM YY CS 16
从站正常应答
- 控制码:C=91H无后续数据帧,C=B1H有后续数据帧
- 数据域长度:L=04H+m(数据长度)
- 无后续数据帧格式
68 A0 A1 A2 A3 A4 A5 68 91 L DI0 DI1 DI2 DI3 N1 … Nm CS 16
- 有后续数据帧格式
68 A0 A1 A2 A3 A4 A5 68 B1 L DI0 DI1 DI2 DI3 N1 … Nm CS 16
从站异常应答帧
- 控制码C=D1H
- 数据域长度L=01H
- 帧格式,ERR错误信息字
68 A0 A1 A2 A3 A4 A5 68 D1 01 ERR CS 16
读后续数据
主站请求帧
- 控制码:C=12H
- 数据域长度:L=05H
- 帧格式:SEQ帧序号
68 A0 A1 A2 A3 A4 A5 68 12 05 DI0 DI1 DI2 DI3 SEQ CS 16
从站正常应答帧
- 控制码:C=92H无后续数据帧;C=B2H有后续数据帧
- 数据域长度:L=05H+m(数据长度)
- 无后续数据帧格式
68 A0 A1 A2 A3 A4 A5 68 92 L DI0 DI1 DI2 DI3 N1 … Nm SEQ CS 16
- 有后续数据帧格式
68 A0 A1 A2 A3 A4 A5 68 B2 L DI0 DI1 DI2 DI3 N1 … Nm SEQ CS 16
注意:读后续数据时,为防止误传、漏传,请求帧、应答真都要加帧序号。请求帧的帧序号从1开始进行加1计数,应答帧的需要要求与请求帧相同。帧序号占用一个字节,计数范围为1~255
从站异常应答帧
- 控制码:C=D2H
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 D2 01 ERR CS 16
写数据
主站请求帧
- 功能:主站向从站请求设置数据(或编程)
- 控制码:C=14H
- 数据域长度:L=04H+04H(密码)+04H(操作者代码)+m(数据长度)
- 数据域:DI0DI1DI2DI3+PAP0P1P2+C0C1C2C2+DATA
- 帧格式
68 A0 A1 A2 A3 A4 A5 68 14 L DI0 DI1 DI2 DI3 PA P0 P1 P2 C0 C1 C2 C3 N1 … Nm CS 16
注1:P0P1P2为密码,PA标识该密码权限
注2:C0C1C2C3是操作者代码,为要求记录操作人员信息的项目提供数据
注3:本命令必须与编程键配合使用
从站正常应答帧
- 控制码:C=94H
- 数据域长度:L=00H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 94 00 CS 16
从站异常应答帧
- 控制码:C=D4H
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 D4 01 ERR CS 16
读通信地址
主站请求帧
- 功能:请求读电能表通信地址,仅支持点对点通信
- 地址域:AAH…AAH
- 控制码:C=13H
- 数据域长度:L=00H
- 帧格式:
68 AA … AA 68 13 00 CS 16
从站正常应答帧
- 控制码:C=93H
- 数据域长度:L=06H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 93 06 A0 A1 A2 A3 A4 A5 CS 16
注:从站异常不应答
写通信地址
主站请求帧
- 功能:设置某从站的通信地址,仅支持点对点通信
- 控制码:C=15H
- 地址域:AAH…AAH
- 数据域长度:L=06H
- 数据域:A0…A5(通信地址)
- 帧格式:
68 AA … AA 68 15 06 A0 A1 A2 A3 A4 A5 CS 16
注:本命令必须与编程键配合使用
从站正常应答帧
- 功能吗:C=95H
- 数据域长度:L=00H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 95 00 CS 16
注:从站异常不应答
广播校时
- 功能:强制从站与主站时间同步
- 控制码:C=08H
- 数据域长度:L=06H
- 数据域:YYMMDDhhmmss(年、月、日、时、分、秒)
- 帧格式:
68 99 … 99 68 08 06 ss mm hh DD MM YY CS 16
注1:广播校时不要求应答。
注2:仅当从站的日期和时钟与主站的时差在±5min以内时执行广播校时命令,即将从站的日期时钟调整到与命令下达的日期时钟一致
注3:不推荐在午夜0时校时,以免影响在0时进行的某些例行操作。
注4:每天只允许校对时一次。
冻结命令
主站请求帧
- 功能:冻结电能表数据,冻结内容见冻结数据标识编码表
- 控制码:C=16H
- 数据域长度:L=04H
- 数据域:MMDDhhmm(月、日、时、分)
- 普通冻结命令帧格式:
68 A0 A1 A2 A3 A4 A5 68 16 04 mm hh DD MM CS 16
- 广播冻结命令帧格式:
68 99 … 99 68 16 04 mm hh DD MM CS 16
注意:广播冻结不要求应答
注2:数据域99DDhhmm表示以月为周期定时冻结,9999hhmm表示以日为周期定时冻结,999999mm表示以小时为周期定时冻结,99999999为瞬时冻结
从站正常应答帧
- 控制码:C=96H
- 数据域长度:L=00H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 96 00 CS 16
从站异常应答帧
控制码:C=D6H
数据域长度:L=01H
帧格式:
68 A0 A1 A2 A3 A4 A5 68 D6 01 ERR CS 16
更改通信速率
主站请求帧
- 功能:更改电能表当前通信速率为其他标准速率
- 控制码:C=17H
- 数据域长度:L=01H
- 帧格式:Z通信速率特征字
68 A0 A1 A2 A3 A4 A5 68 17 01 Z CS 16
从站正常应答帧
- 控制码:C=97H
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 97 01 Z CS 16
注:正常应答帧中的Z与请求帧中的通信速率特征子必须相同。
从站异常应答帧
- 控制码:C=D7H
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 D7 01 ERR CS 16
修改密码
主站请求帧
- 功能:修改从站密码设置
- 控制码:C=18H
- 数据域长度:L=0CH
- 数据域:DI0DI1DI2DI3 +PA0P00P10P20+ PANP0NP1NP2N
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 18 0C DI0 DI1 DI2 DI3 PA0 P00 P10 P20 PAN P0N P1N P2N CS 16
注1:P00 P10 P20为原密码或更高权限的密码,PA0表示该密码权限。P0N P1N P2N为新密码或需设置的密码,PAN为新密码的权限。PA0、PAN的取值范围为00~09,00为最高权限,数值越大权限越低。权限级别分为:02级点表清零、事件清零;04级写数据、最大需量清零。
注2:本命令必须与编程键配合使用
从站正常应答帧
- 控制码:C=98H
- 数据域长度:L=04H
- 数据域:PANP0NP1NP2N(新编入的密码权限及密码)
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 98 04 PAN P0N P1N P2N CS 16
从站异常应答帧
- 控制码:C=D8H
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 D8 01 ERR CS 16
最大需量清零
主站请求帧
- 功能:当前最大需量及发生时间数据清零,本命令必须与编程键配合使用
- 控制码:C=19H
- 数据域长度:L=08H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 19 08 PA P0 P1 P2 C0 C1 C2 C3 CS 16
从站正常应答帧
- 控制码:C=99H
- 数据域长度:L=00H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 99 00 CS 16
从站异常应答帧
- 控制码:C=D9H
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 D9 01 ERR CS 16
电表清零
主站请求帧
- 功能:清空电能表内电能量、最大需量及发生时间、冻结量、时间记录、负荷记录等数据,本命令必须与编程键配合使用,命令执行时电能表应保证电表清零事件记录不被清除,并自动保存该事件的相应数据。
- 控制码:C=1AH
- 数据域长度::L=08H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 1A 08 PA P0 P1 P2 C0 C1 C2 C3 CS 16
从站正常应答帧
- 控制码:C=9AH
- 数据域长度:L=00H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 9A 00 CS 16
从站异常应答帧
- 控制码:C=DAH
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 DA 01 ERR CS 16
事件清零
主站请求帧
- 功能:清空电能表内存储的全部或某类事件记录数据
- 控制码:C=1BH
- 数据域长度:L=0CH
- 数据域:
- 事件总清零PA0 P00 P10 P20 +C0C1C2C3(操作者代码) + FFFFFFFF
- 分项事件清零PA0 P00 P10 P20 +C0C1C2C3 +事件记录数据标识(DI0用FF表示)
- 帧格式:事件总清零
68 A0 A1 A2 A3 A4 A5 68 1B 0C PA0 P00 P10 P20 C0 C1 C2 C3 FF FF FF FF CS 16
- 帧格式:分项事件清零
68 A0 A1 A2 A3 A4 A5 68 1B 0C PA0 P00 P10 P20 C0 C1 C2 C3 FF DI1 DI2 DI3 CS 16
从站正常应答帧
- 控制码:C=9BH
- 数据域长度:L=00H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 9B 00 CS 16
从站异常应答帧
- 控制码:C=DBH
- 数据域长度:L=01H
- 帧格式:
68 A0 A1 A2 A3 A4 A5 68 DB 01 ERR CS 16