4G模块DTU网关远程抄表方案(二):DL645/698协议国网电表
4G模块DTU网关远程抄表方案(二):DL645/698协议国网电表
1 DL 645协议简介
DL645协议是一种用于智能电能表的远程抄读通讯标准。制定该标准是为统一和规范多功能电能表与数据终端设备进行数据交换时的物理连接和通信链路及应用技术规范。DL645协议可用于远程监测电力传输和使用状态,是国家在电力行业标准中规定的统一的通信协议。
DL/T 698.45是面对对象的通信协议,适用于主站和采集终端、采集终端和电能表、主站和电能表之间。
DL645/698协议与Modbus协议类似,采用主-从模式的半双工通讯方式,多功能电能表与数据终端设备可进行点对点的或主多从的数据交换。电气层可以是经典的RS485有线通信,也可以是非接触式红外无线通信。
其中非接触式红外读表方式较为常见,它的特点是易于工程实施,电表、计量柜不需要停电接线,将支持DLT645标准的红外读表器放置在电表前方就可以读到电表电量、电压、电流、功率等数据。本篇文章主要是简要介绍DLT645协议,以及介绍利用重庆展联科技的智能网关ZL400实现高性价比4G远程抄表方案(当然也可以使用配套的ZL011红外超表器)
1.1 数据传输协议
DL645协议的信息帧由帧起始符、从站地址域、控制码、数据域长度、数据域、帧信息纵向校验码及帧结束符7个域组成。
由采集器向表计发送的查询帧数据格式如下:
代码 | 描述 |
---|---|
68h | 帧起始符 |
A0-A5 | 地址域 |
68h | 帧起始符 |
C | 控制码 |
L | 数据域长度 |
DATA | 数据域 |
CS | 校验码 |
16h | 帧结束符 |
例:读表计数据: FE FE FE FE 68 66 55 44 33 22 11 68 11 04 33 33 34 33 17 16
说 明 | 帧起始符 | 地址域 | 帧起始符 | 控制码 | 数据域长度 | 数据域 | 校验码 | 帧结束符 |
---|---|---|---|---|---|---|---|---|
实 例 | 68 | 665544332211 | 68 | 11 | 04 | 33 33 34 33 | 17 | 16 |
说明:FE FE FE FE - 引导字符;68 – 帧起始符;11 22 33 44 55 66 – 表地址; 11 – 控制码;04 – 数据域长度;33 33 34 33 – 数据域;17 – 校验码;16 – 帧结束符。
由表计向采集器发送的应答帧数据格式如下:
代码 | 描述 |
---|---|
68h | 帧起始符 |
A0-A5 | 地址域 |
68h | 帧起始符 |
C | 控制码 |
L | 数据域长度 |
DATA | 数据域(数据标识+数据) |
CS | 校验码 |
16h | 帧结束符 |
例:表计应答:FE FE FE FE 68 66 55 44 33 22 11 68 91 09 33 33 34 33 97 3C 33 33 0B 16
字节 | 0 | 1-5 | 6 | 7 | 8 | 9-13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|
说 明 | 帧起始符 | 地址域 | 帧起始符 | 控制码 | 数据域长度 | 数据标识+数据 | 校验码 | 帧结束符 |
实 例 | 68 | 665544332211 | 68 | 91 | 08 | 33 33 34 33+97 3C 33 33 | XX | 16 |
说明:FE FE FE FE - 引导字符;68 – 帧起始符; 66 55 44 33 22 11 – 表地址(真实地址为112233445566); 91 – 控制码;08 – 数据域长度;33 33 34 33 – 数据标识(真是为正向有功总00100000);97 3C 33 33 – 数据(真实数据为000009.33) XX – 校验码;16 – 帧结束符。
1.1.1 帧起始符 68H
DLT645协议的数据帧每帧的开始都固定为0x68,作为数据的起始符方便接收方做数据解析
1.1.2 地址域 A0~A5(采用BCD码)
在485总线上可能挂着多个645设备,要找到指定的设备,必须要根据设备的地址查找。每台设备出厂会有自己的地址,也可以修改设备的通信地址。
地址域A0~A5用来表示电表地址,由6个字节构成,低位在前,高位在后;可以为表号、资产号、用户号、设备号等。当使用的地址码长度不足6字节时,用十六进制AAH补足6字节。
如上图该设备的地址为000001684866。
1.1.3控制码
1个字节,例如读取数据的控制码为0x11(00010001),读取通讯地址的控制码为0x13(00010011)
其中功能码又分为两种97规约和07规约
1.1.4 数据域长度L
1个字节,表示数据域的字节数,读取数据时L<= 200;写数据时L <= 50,L=0表示无数据域。
1.1.5 数据域
数据域包括数据标识和数据、密码等,其结构随控制码的功能而改变。传输时发送方按字节进行加33H处理,接收方按字节进行减33H处理。数据域为变长,字节数由数据长度L决定,传输时候。
数据标识编码具体可以查阅相关文档的《附录A.2——数据标识编码》
常见数据标识编码表如下:
发送方需要加0x33,接收方解析需要减去0x33。
发送方数据 | 33 | 33 | 33 | 33 |
---|---|---|---|---|
真实值 | 00 | 00 | 00 | 00 |
1.1.6 校验码CS
从帧起始符(0x68)开始到校验码之前的所有各字节的模256的和, 即各字节二进制算术和,不计超过256的溢出值。
1.1.7 结束符16H
DLT645的指令帧均以0x16作为结束符。
1.1.8 表计数据编码格式(采用BCD码)
所有数据项均先传送低位字节,后传送高位字节,如表计数据是000009.33,则从站应答数据如下:
D0—0x66—33+33
D1—0x3C—09+33
D2—0x33—00+33
D3—0x33—00+33
1.1.9 串口参数
DL645协议的缺省速率为2400 bps,字节校验为偶校验。也可以设置为600bps,1200bps,4800bps,9600bps,19200bps。
2 DEVELOPLINK 远程抄表方案
DEVELOPLINK展联科技的远程抄表网关(ZL400 DTU)内置了Modbus,DLT645/698,CT/J 188协议的解析,只需要简单的可视化配置,就能采集到国网电表的数据,然后将返回数据通过4G,以太网,WIFI等网络方式传到客户服务器,也可以直接解析成json格式上传。
2.1 功能:
- 支持对Modbus、DLT645/698、CT/J 188协议的水气表自动读取,直转转换json上传,支持周期轮询、变化上传;
- 支持HTTP /TCP/UDP/MQTT通信;
- 支持阿里云/腾讯云/中移物联/华为云/DevelopLink平台接入;
- 支持自定义心跳包、注册包,支持魔法值;
- 支持远程参数配置;
- 支持远程、本地固件升级;
- 支持差分升级DFOTA,CDN加速。
2.2 优势:
- 开放性:支持不同厂家的智能电表;
- 灵活性:可根据需求,自行设计轮询任务;
- 便捷性:可视化配置,无需一行代码;
- 可扩展性:能够实现多种负载控制策略;
- 低成本:高性价比远程抄表方案,适合批量使用。
2.3 应用:
- 住宅小区:人工抄表收费成本高、误差大、效率低,远程抄表能监测和故障排查十分智能
- 学校:学校配用电情况难以监测,师生用电安全隐患大,远程抄表能实时监测各区域用电情况,且可具备远程阀控功能
- 商业中心:店铺变更、临时柜台等管理不方便,催缴费困难,远程抄表能分时段、分区域进行用能数据的统计、分析和处理
- 工业园区:配用电情况难以监测及用电安全隐患大,能源能耗管理没有数据依据,远程抄表能快速直观的反映数工厂设备的实时和历史能耗情况,掌握能耗规律,为制定合理的能源管理策略、实现节能减排管理提供数据支撑。
3 案例
3.1 调试准备
硬件准备 | 软件准备 |
---|---|
ZL400 DTU(固件版本4.45.63) | 上位机 DevelopLink_SDRTU_V2.2.9 |
DL645协议电表 | |
红外抄表器(选配) |
3.2 设置串口
一般DT645协议的水表,通讯波特率为2400bp,偶检验
3.3 设置645协议轮询
- 选择645协议版本
- 配置表地址
- 选择配置命令
不需要关注645协议本身,只需要选择需要读取的量,例如这里我们读取电表的正向有功总量,即命令选择电能量/当前/正向有功/总
配置完成,点击写入配置
查看报文,可以看到发送的协议报文和水表返回的报文,以及DTU解析后的json报文{“a”:9.33}
3.4 设置网络
ZL400 DTU网络通道支持MQTT,TCP,UDP,HTTP;还内置了阿里云,腾讯云,onenet,developlink平台,华为云,jetlinks的解析内核
用户只需要选择通道类型,简单配置就能上传数据
————————————————————————————————————————
对物联网技术感兴趣请加入我们交流群,欢迎各种技术交流,
QQ群: 830407941
对我们产品感兴趣请查看:
DEVELOPLINK
DEVELOPLINK__ DTU
相关文章:

4G模块DTU网关远程抄表方案(二):DL645/698协议国网电表
4G模块DTU网关远程抄表方案(二):DL645/698协议国网电表 1 DL 645协议简介 DL645协议是一种用于智能电能表的远程抄读通讯标准。制定该标准是为统一和规范多功能电能表与数据终端设备进行数据交换时的物理连接和通信链路及应用技术规范。DL645协议可用于远程监测电力传输和使用…...

认识微服务
目录 认识微服务 单体架构 分布式架构 服务架构演变 服务治理 微服务 总结 微服务技术对比 微服务结构 微服务技术对比 企业需求 SpringCloud SpringCloud和SpringBoot的版本兼容 认识微服务 单体架构 单体架构:将业务的所有功能集中在一个项目中开发&a…...

升级Android Studio Electric Eel问题汇总
1.升级以后找不到java可执行程序 问题原因:升级后,Android Studio自带的java目录不再是根目录/jre,调整为一个新目录 Studio根目录/jbr 修改方法:1)修改系统环境变量, JAVA_HOME调整为Studio下对应的java…...

令执法机构头疼的“虚拟货币犯罪”,为何链上天眼能“行”
谈到洗钱,你脑海中率先想到的可能是影视剧中利用赌场、收藏品拍卖等来实施犯罪。其实洗钱犯罪的花样不止于此,在近期热播的扫黑剧《狂飙》中,唐小龙为洗白“赌博资金、高利贷业务”,便通过“卖酒网销”的方式达成洗钱目的。 随着科…...

【unity】开发rts 3
一 出生点、阵营类型、阵营 实例栏-GameManage,默认有一个插槽 size 插槽数量 role 权限,host是主人,权限高 type 阵营类型,不选不限制,选的效果没看懂,文档原文: The Type field in Data al…...
突破老旧OA系统局限,打通五大业务管理体系,让效率“狂飙”
目录 用无代码构建上海致远信息化平台 一、支持类(行政人事、财务)体系 二、营销体系 三、供应链体系 四、质量管理体系 五、技术研发体系 下一步规划 我们公司用的第一套系统是 IBM 的系统,部署在本地服务器,这套系统用了十几年,当时 2020 年要全部迁移到LCHub低代…...

【vue2小知识】路由守卫的使用与解决RangeError: Maximum call stack size exceeded问题的报错。
🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:当我们在路由跳转前与后我们可实现触发的操作 【前言】当我们在做类似于登录页面的时候&…...

Google Guice 5:AOP
1. AOP 1.1 实际开发中面临的问题 在实际开发中,经常需要打印一个方法的执行时间,以确定是否存在慢操作 最简单的方法,直接修改已有的方法,在finnally语句中打印耗时 Override public Optional<Table> getTable(String da…...

【同步、共享和内容协作软件】上海道宁与ownCloud让您的团队随时随地在任何设备上轻松处理数据
ownCloud是 一款开源文件同步、共享和 内容协作软件 可让团队随时随地 在任何设备上轻松处理数据 ownCloud开发并提供 用于内容协作的开源软件 使团队能够轻松地无缝 共享和处理文件 而无需考虑设备或位置 开发商介绍 ownCloud成立于2010年,是一个托管和同…...
Linux 文件、目录与磁盘格式
用户与用户组 用户:即某个文件的拥有者,可以管理自己账号下的文件,另有一个超级账号 root,可以统一管理全局,利用 su root 命令登录该账号。用户组:相当于群组,多个用户之间可以组成用户组&…...
锁屏面试题百日百刷-Hive篇(五)
锁屏面试题百日百刷,每个工作日坚持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cn。已收录了每日更新的面试题的所有内容,还包含特色的解锁屏幕复习面试题、每日编程题目邮件推送等功能。让你…...

java多线程(七)线程等待与唤醒
一、wait()、notify()、notifyAll()等方法介绍 在Object.java中,定义了wait(), notify()和notifyAll()等接口。wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。而notify()和notifyAll()的作用࿰…...

第13天-仓储服务(仓库管理,采购管理 ,SPU规格维护)
1.仓储服务开发配置 1.1.加入到Nacos注册中心 spring:application:name: gmall-warecloud:nacos:discovery:server-addr: 192.168.139.10:8848namespace: 36854647-e68c-409b-9233-708a2d41702c1.2.配置网关路由 spring:cloud:gateway:routes:- id: ware_routeuri: lb://gmal…...
Maven 命令行及例子
基本 mvn -v - show-version -version 显示版本信息mvn -h - help 显示帮助信息mvn -e -errors控制 maven 的日志级别,产生执行错误相关消息mvn -q - quiet 控制 maven 的日志级别,仅仅显示错误mvn -o - offline 运行 offline 模式,不联网更…...

JavaScript手写题
一、防抖 function debounce(fn, delay200) {let timeout null; // 定时器控制return function(...args) {if (timeout) { // 定时器存在,表示某个动作之前触发过了clearTimeout(timeout); // 清除定时器timeout null;} else {// 对第一次输入立即执行fn.apply…...

为什么图标的宽度总是8的倍数?
对于 Windows 上的所有图标而言,它的宽度总是8的倍数,这可不是因为人们喜欢2的幂,虽然在计算机世界,你会看到很多这样的数字,例如,1024,4096等。 在 Windows 的早期阶段,大多数显卡…...

常用的xpath
一、xpath 语法 简单看一下菜鸟教程即可 1、基本语法 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式: 表达式描述nodename选取此节点的所有子节点。/从根节点选取(取子节点&#…...

【035】基于java的进销库存管理系统(Vue+Springboot+Mysql)前后端分离项目,附万字课设论文
1.3 系统实现的功能 本次设计任务是要设计一个超市进销存系统,通过这个系统能够满足超市进销存系统的管理及员工的超市进销存管理功能。系统的主要功能包括:首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、 …...

【Spark分布式内存计算框架——Spark Streaming】7. Kafka集成方式
集成方式 Spark Streaming与Kafka集成,有两套API,原因在于Kafka Consumer API有两套, 文档:http://spark.apache.org/docs/2.4.5/streaming-kafka-integration.html。 方式一:Kafka 0.8.x版本 老的Old Kafka Consum…...
如何引入elementUI
elementUI的引入完整引入按需引入完整引入 在 main.js 中写入以下内容: import Vue from ‘vue’; import ElementUI from ‘element-ui’; import ‘element-ui/lib/theme-chalk/index.css’; import App from ‘./App.vue’; Vue.use(ElementUI); new Vue({ el: ‘…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...