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

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


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

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



一、读取从站地址/表号



准备:了解读地址的协议格式

在这里插入图片描述



请求帧

读地址方式

前导码起始码地址域(A0-A5)起始符控制码数据域长度校验码结束符
FE FE68AA AA AA AA AA AA681300DF16

或者读数据方式

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识(DI0-DI3)校验码结束符
FE FE68AA AA AA AA AA AA68110434 37 33 37B616

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

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

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

在这里插入图片描述



应答帧

读地址方式的应答

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 1768930633 84 77 4B 44 4A4516

或者读数据方式的应答

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 1768910A34 37 33 37 33 84 77 4B 44 4A1C16

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

地址 : 171118445100

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

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


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




二、读取计量数据



了解读数据的协议格式


在这里插入图片描述




1、读取总电能




请求帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识(DI0-DI3)校验码结束符
FE FE6800 51 44 18 11 1768110433 33 33 338616

在这里插入图片描述

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


应答帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 1768910833 33 33 33 3B 33 33 33DE16

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




2、读取A相电压



请求帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识(DI0-DI3)校验码结束符
FE FE6800 51 44 18 11 1768110433 34 34 358A16

在这里插入图片描述
数据标识: 33 34 34 35 即 02 01 01 00,A相电压


应答帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 1768910633 34 34 35 4C 55AD16

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




3、读取A相电流



请求帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识(DI0-DI3)校验码结束符
FE FE6800 51 44 18 11 1768110433 34 35 358B16

在这里插入图片描述


应答帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 1768910733 34 35 35 33 33 33A716

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




4、读取A相有功功率



请求帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识(DI0-DI3)校验码结束符
FE FE6800 51 44 18 11 1768110433 34 36 358C16

在这里插入图片描述


应答帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 1768910733 34 36 35 33 33 33A816

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




5、读取电网频率



请求帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识(DI0-DI3)校验码结束符
FE FE6800 51 44 18 11 1768110435 33 B3 350A16

在这里插入图片描述


应答帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 1768910635 33 B3 35 36 834516

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




三、修改通信波特率



准备:了解修改波特率的协议格式

在这里插入图片描述


请求帧(修改为4800bps)

前导码起始码地址域(A0-A5)起始符控制码数据域长度特征字校验码结束符
FE FE6800 51 44 18 11 17681701430016

在这里插入图片描述

波特率192009600480024001200600
特征字73(40)53(20)43(10)3B(08)37(04)35(02)

应答帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识校验码结束符
FE FE FE FE6800 51 44 18 11 17689701438016



附、单片机读取



代码


【代码下载】



加入要读取的数据项到list中


在这里插入图片描述


解析电表回复的数据


在这里插入图片描述


成果展示

在这里插入图片描述

名称数值
总电能96.37kWh
正向电能96.37kWh
反向电能0.00kWh
A相电压225.7V
A相电流0.564A
A相有功功率0.0815kW (81.5W)
A相无功功率80.0383kvar ?? 感觉数值有问题
A相视在功率0.0000kVA
A相功率因数0.641
电网频率49.98Hz

在这里插入图片描述

名称数值
总电能96.55kWh
正向电能96.55kWh
反向电能0.00kWh
A相电压223.6V
A相电流9.510A
A相有功功率2.1293kW (2129.3W)
A相无功功率
A相视在功率
A相功率因数1.000
电网频率50.01Hz


在这里插入图片描述

在这里插入图片描述

表号171118445100


评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值