码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • DL/T645-2007通信协议调试记录(DDS1886)


    摘要

    只要是支持DL/T645-2007通信协议的设备,在串口设置正确的情况下(2400、偶校验),可以通过下面字符读取A相电压

    1)不知道地址

    FE FE FE FE 68 AA AA AA AA AA AA 68 11 04 33 34 34 35 B1 16

    2)地址:210507016998

    FE FE FE FE 68 98 69 01 07 05 21 68 11 04 33 34 34 35 B1 16


    接下来根据文档《DLT645-2007最新通信协议》,讲解原因

    1、硬件连接

    本次实验只连接了电表的电源(引脚1和引脚3)和RS485(引脚11和引脚12)

     

    2、前导字节

    在主站发送信息之前,先发送 4 个字节 FEH,以唤醒接收方。

    3、数据帧格式

    说明代码十六进制
    帧起始符68H68H
    地址域A0AAH
    A1AAH
    A2AAH
    A3AAH
    A4AAH
    A5AAH
    帧起始符68H68H
    控制码C11H
    数据域长度L04H
    数据域(数据标识)DI000+33H=33H
    DI101+33H=34H 
    DI201+33H=34H
    DI302+33H=35H 
    校验码CSB1H 
    帧结束符16H 16H 

    1)地址域能写成AAH的原因

    5.2.2 地址域 A0~A5
            地址域由 6 个字节构成,每字节 2 位 BCD 码,地址长度可达 12 位十进制数。每块表具有唯一的通信地址,且与物理层信道无关。当使用的地址码长度不足 6 字节时,高位用“0”补足 6 字节。
            通信地址 999999999999H 为广播地址,只针对特殊命令有效,如广播校时、广播冻结等。广播命令不要求从站应答。
            地址域支持缩位寻址,即从若干低位起,剩余高位补 AAH 作为通配符进行读表操作,从站应答帧的地址域返回实际通信地址。
            地址域传输时低字节在前,高字节在后。

    2)数据域(数据标识)的来源

    4、校验码CS的计算

    1)校验码计算依据

    5.2.6 校验码 CS
    从第一个帧起始符开始到校验码之前的所有各字节的模 256 的和,即各字节二进制算术和,不计超过 256 的溢出值。

    2)MATLAB代码

    1. %% CSDN:地址全为AA——A 相电压——DI3:DI0=02 01 01 00
    2. str='68 AA AA AA AA AA AA 68 11 04 33 34 34 35';
    3. data_hex = sscanf(str,'%x');
    4. result=dec2hex(sum(data_hex))

     3)运行结果

    取后两位,CS=B1H

    5、串口设置

    1)波特率:2400

    2)校验位:偶校验(even)

    3)数据位:8,停止位:1

    6、实验

     1)串口工具下载地址

    UartAssist串口调试助手 V5.0.3-软件工具-野人家园http://www.cmsoft.cn/resource/101.html

    7、返回数据分析

    十六进制说明
    FE前导字节
    68帧起始符
    98地址域:A0
    69地址域:A1
    01地址域:A2
    07地址域:A3
    05地址域:A4
    21地址域:A5
    68帧起始符
    91控制码
    06数据域长度
    33数据域:数据标识:DI0
    34数据域:数据标识:DI1
    34数据域:数据标识:DI2
    35数据域:数据标识:DI3
    66数据域:A相电压:低位
    54数据域:A相电压:高位
    F1校验码
    16 帧结束符

    1)A相电压解读依据

     

     2)MATLAB代码

    1. %% A 相电压数据解读
    2. str='66 54';
    3. x33H='33';
    4. data_hex = sscanf(str,'%x');%以16进制读入str,输出10进制
    5. data_hex_x33H=sscanf(x33H,'%x');
    6. tmp_dec =dec2hex(data_hex-data_hex_x33H);
    7. tmp_hex = str2num(tmp_dec);
    8. VA=(tmp_hex(1)+tmp_hex(2)*100)/10

    3) 运行结果

    附图-电表

    1)地址域高位

    2)地址域低位

    3) 使用电量

     4)功率

    5) 电压UA

     6)电流LA

     7)功率因数

    参考文献

    DLT645-2007电能表通讯协议_Jason噗噗的博客-CSDN博客_dlt645-2007DLT645-2007通讯协议:1.发送的帧格式:1.1 帧起始符 0x68H 这个不多说,记住就好;1.2 地址域A0-A5地址域由 6 个字节构成,每字节 2 位 BCD 码,地址长度可达12位十进制数。每块表具有唯一的通信地址,且与物理层信道无关。当使用的地址码长度不足 6 字节时,高位用“0”补足。通信地址999...https://blog.csdn.net/u013184273/article/details/98083050
    DL/T 645-2007多功能电表通信规约_纸短情长ZF的博客-CSDN博客_dlt6142007通讯协议中华人民共和国电力行业标准 DL/T 645-2007 多功能电表通信规约解析最近在给一家企业做能源管理系统(EMS),用C#做上位机采集用电、用水、用汽等信息,其中常用的接线方式为RS485,常用通信协议为MODBUS协议。在做电能表数据采集的时候,电表的协议是 DL/T 645-2007,之前花了好多时间寻找资料,解析协议,所以特此记录一下。整个EMS系统的通信方式为:主机发送请求——从机接收请求——从机返回数据——主机接收数据下图是实际在厂区中安装的一块电能表,我印象中这种表好像是https://blog.csdn.net/m0_49284219/article/details/112978577

    DLT645-2007最新通信协议.pdf-其它文档类资源-CSDN下载dlt645_2007版通信协议字迹清晰更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/red131498/12174102?utm_medium=distribute.pc_relevant.none-task-download-2~default~baidujs_baidulandingword~default-1-12174102-blog-112978577.pc_relevant_multi_platform_featuressortv2removedup&spm=1001.2101.3001.4242.2&utm_relevant_index=4

  • 相关阅读:
    如何破局大促“内卷”压力? TiDB + 京东云将数据库成本降低三分之二性能提升 8 倍
    Postman:完整指南
    Redis解决缓存穿透,缓存雪崩,缓存击穿思路
    外汇天眼:ThinkMarkets 获得 CySEC 许可证,允许其从塞浦路斯扩展其欧盟服务
    电脑监控系统,实现可视化管理!
    mybatisplus QueryWrapper or 写法
    微服务框架 SpringCloud微服务架构 6 Nacos 配置管理 6.3 配置热更新
    web移动开发之flex(弹性盒子---知识点篇)
    java面向对象进阶
    前端须知的 Cookie 知识
  • 原文地址:https://blog.csdn.net/qq_35629563/article/details/126216976
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号