当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 166866提问 提问时间:2023-09-24 00:37:12阅读次数: 66

最佳答案 问答题库668位专家为你答疑解惑

【本文发布于https://blog.csdn.net/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


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


二、读取总电能


读数据的协议格式


在这里插入图片描述

请求帧

前导码起始码地址域(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


三、读取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


四、读取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


五、读取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


六、读取电网频率


请求帧

前导码起始码地址域(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


七、修改通信波特率


修改波特率的协议格式

在这里插入图片描述

请求帧

前导码起始码地址域(A0-A5)起始符控制码数据域长度数据域/数据标识(DI0-DI3)校验码结束符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

八、单片机读取


待续


查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"DLT645-2007智能电表通讯规约 协议读取数据实战":http://eshow365.cn/6-12420-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!