DLT645-2007智能电表通讯规约 协议读取数据实战

【本文发布于https://blog.csdn.net/Stack_/article/details/132946097,未经许可不得转载,转载须注明出处】


协议文档:DL-T 645-2007 多功能电能表通信协议

先用电表厂家提供的上位机进行通讯并拦截数据,再对照协议文档进行以下分析:



一、读取从站地址


读地址的协议格式

DLT645-2007智能电表通讯规约 协议读取数据实战_第1张图片


请求帧

读地址方式

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 校验码 结束符
FE FE 68 AA AA AA AA AA AA 68 13 00 DF 16

或者读数据方式

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识(DI0-DI3) 校验码 结束符
FE FE 68 AA AA AA AA AA AA 68 11 04 34 37 33 37 B6 16

前导字节:作用是唤醒接收方,FE的个数不强求,各厂家自定,给某些电表发送前导码反而是不会回应的,请求数据时不发送即可。

校验码:第一个起始码68至校验码前一个字节的和取低8位。

数据标识:34 37 33 37,各减去33H,得01H 04H 00H 04H,传输是低字节在前的,故实际是04 00 04 01。对应下图标识码,该标识读取通信地址,即表身上的编号。

DLT645-2007智能电表通讯规约 协议读取数据实战_第2张图片


应答帧

读地址方式的应答

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 93 06 33 84 77 4B 44 4A 45 16

或者读数据方式的应答

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 91 0A 34 37 33 37 33 84 77 4B 44 4A 1C 16

前导码:有的电表没有,有的电表有但个数不定,接收时忽略即可。

地址 : 171118445100

标识:34 37 33 37,和请求帧携带的数据标识一致。

数据:33 84 77 4B 44 4A ,还原为BCD码(减33H)后正是地址 17 11 18 44 51 00


获取到通信地址后,使用该地址向从机请求电能数据。


二、读取总电能


读数据的协议格式


DLT645-2007智能电表通讯规约 协议读取数据实战_第3张图片

请求帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识(DI0-DI3) 校验码 结束符
FE FE 68 00 51 44 18 11 17 68 11 04 33 33 33 33 86 16

DLT645-2007智能电表通讯规约 协议读取数据实战_第4张图片

数据标识: 33 33 33 33 即 00 00 00 00,有功总电能

应答帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 91 08 33 33 33 33 3B 33 33 33 DE 16

数据:3B 33 33 33,即00 00 00 08,值为8,总电能分辨率为0.01,所以得0.08kWh


三、读取A相电压


请求帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识(DI0-DI3) 校验码 结束符
FE FE 68 00 51 44 18 11 17 68 11 04 33 34 34 35 8A 16

DLT645-2007智能电表通讯规约 协议读取数据实战_第5张图片
数据标识: 33 34 34 35 即 02 01 01 00,A相电压

应答帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 91 06 33 34 34 35 4C 55 AD 16

数据:4C 55,即22 19,值为2219,电压分辨率为0.1V,所以得221.9V


四、读取A相电流


请求帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识(DI0-DI3) 校验码 结束符
FE FE 68 00 51 44 18 11 17 68 11 04 33 34 35 35 8B 16

DLT645-2007智能电表通讯规约 协议读取数据实战_第6张图片

应答帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 91 07 33 34 35 35 33 33 33 A7 16

数据: 33 33 33,即00 00 00,值为0,电流分辨率为0.001A


五、读取A相有功功率


请求帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识(DI0-DI3) 校验码 结束符
FE FE 68 00 51 44 18 11 17 68 11 04 33 34 36 35 8C 16

DLT645-2007智能电表通讯规约 协议读取数据实战_第7张图片

应答帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 91 07 33 34 36 35 33 33 33 A8 16

数据: 33 33 33,即00 00 00,值为0,功率分辨率为0.0001kW


六、读取电网频率


请求帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识(DI0-DI3) 校验码 结束符
FE FE 68 00 51 44 18 11 17 68 11 04 35 33 B3 35 0A 16

DLT645-2007智能电表通讯规约 协议读取数据实战_第8张图片

应答帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 91 06 35 33 B3 35 36 83 45 16

数据: 36 83,即50 03,值为5003,频率分辨率为0.01Hz,所以得实际值50.03Hz


七、修改通信波特率


修改波特率的协议格式

DLT645-2007智能电表通讯规约 协议读取数据实战_第9张图片

请求帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识(DI0-DI3) 校验码 结束符
FE FE 68 00 51 44 18 11 17 68 17 01 43 00 16

DLT645-2007智能电表通讯规约 协议读取数据实战_第10张图片

波特率 19200 9600 4800 2400 1200 600
特征字 73(40) 53(20) 43(10) 3B(08) 37(04) 35(02)

应答帧

前导码 起始码 地址域(A0-A5) 起始符 控制码 数据域长度 数据域/数据标识 校验码 结束符
FE FE FE FE 68 00 51 44 18 11 17 68 97 01 43 80 16

八、单片机读取


待续


你可能感兴趣的:(笔记,MCU,物联网)