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

【本文发布于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

八、单片机读取


待续


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/116188.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7完全离线环境安装Nvidia Tesla A100 40G显卡驱动(含CUDA Toolkit)和Anaconda3虚拟环境

公司一台完全离线环境的服务器刚装了Nvidia Tesla A100 40G显卡,自己摸索着将显卡驱动在完全离线环境下安装成功,这里记录一下。 一、下载Centos7适配的Nvidia Tesla A100 40G显卡驱动 在Nvidia官网下载Centos7适配的显卡驱动,CUDA Toolkit…

mybatis-plus异常:dynamic-datasource can not find primary datasource

现象 使用mybatis-plus多数据源配置时出现异常 com.baomidou.dynamic.datasource.exception.CannotFindDataSourceException: dynamic-datasource can not find primary datasource分析 异常原因是没有设置默认数据源,在类上没有使用DS指定数据源时,默…

【WSL】仅适用于装C盘情况-用WSL在win10安装LInux

研究了一点点伪分布式的内容。决定搞一个Linux系统玩一下 参考来自微软官方安装步骤: 旧版 WSL 的手动安装步骤 https://learn.microsoft.com/zh-cn/windows/wsl/install-manual WSL全称为,Windows Subsystem for Linux 法一:应用商店装 查…

pytest框架前后置设置,以及pytest默认规则

一、pytest框架的默认规则 1、模块名默认必须以test开头或者以test结尾 2、测试类必须以Test开头,并且不能有__init__方法 3、测试方法默认必须以test开头 当然以后的一些默认规则除测试类不能使用__init__方法外其余的都是可配置的,当然一般情况下我们…

uni-app 实现自定义按 A~Z 排序的通讯录(字母索引导航)

创建 convertPinyin.js 文件 convertPinyin.js 将下面的内容复制粘贴到其中 const pinyin (function() {let Pinyin function(ops) {this.initialize(ops);},options {checkPolyphone: false,charcase: "default"};Pinyin.fn Pinyin.prototype {init: functi…

2023年9月23日(星期六)骑行哈马者

2023年9月23日 (星期六):骑行哈马者,早8:30到9:00, 穿金路和沣源路口集合,9:30准时出发 【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点: 穿金路和沣源路口集合,家住西,南&…

MySQL数据库入门到精通2--基础篇(函数,约束,多表查询,事务)

3. 函数 函数 是指一段可以直接被另一段程序调用的程序或代码。MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。 3.1 字符串函数 MySQL中内置了很多字符串函数,常用的几个如下: 演示如下: A. con…

图像复原与重建,解决噪声的几种空间域复原方法(数字图像处理概念 P4)

文章目录 图像复原模型噪声模型只存在噪声的空间域复原 图像复原模型 噪声模型 只存在噪声的空间域复原

IDEA2023新UI回退老UI

idea2023年发布了新UI,如下所示 但是用起来真心不好用,各种位置也是错乱,用下面方法可以回退老UI

【轨道机器人】成功驱动伺服电机(学生电源、DCH调试软件、DH系列伺服驱动器)

1、硬件平台 工控机 学生电源 DH系列伺服驱动器 电机 调试平台:DCH 2、如何利用dch驱动电机 点击可驱动电机 下面的步骤是比较关键的几步: 3、遇到的问题 不能成功驱动电机,还和厂家那边打电话,询问 发现是这…

Webpack监视文件修改,自动重新打包文件

方法一:使用watch监视文件变化 在终端中输入以下指令: npx webpack --watch 我们使用这种方法监听文件变化时只会监听我们计算机本地的文件变化,在开发场景中我们的项目是要部署到服务器中的,因此这种方式并不推荐。 方法二&…

Vue3 封装 element-plus 图标选择器

一、实现效果 二、实现步骤 2.1. 全局注册 icon 组件 // main.ts import App from ./App.vue; import { createApp } from vue; import * as ElementPlusIconsVue from element-plus/icons-vueconst app createApp(App);// 全局挂载和注册 element-plus 的所有 icon app.con…