使用485通信远程抄表,获取电能表显示的千瓦时数据

本文主要是介绍使用485通信远程抄表,获取电能表显示的千瓦时数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、接线

  1. 接好电能表的零火线确保电表能够正常上电与显示
  2. 把USB转485或者RS232转485模块的485A连接到电表的A,485B连接到电表的B

二、发送读取指令

2.1使用广播地址获取电表的表号与协议,如果电表的表号与协议是明确的可以跳过这一步

  1. 由于需要使用到广播指令获取电表的表号与协议,所以USB转485或者RS232转485模块上只能连接一个电表

  2. 打开串口助手,波特率设置为1200,数据位8位,校验为偶校验,停止位1位

  3. 通过广播地址确定电表的表号与协议(适用所有电表)
    97年和07年规约数据帧的组成:
    在这里插入图片描述
    指令1:68 AA AA AA AA AA AA 68 11 04 33 33 34 33 AE 16
    指令2:68 99 99 99 99 99 99 68 11 04 33 33 34 33 48 16
    指令3:68 AA AA AA AA AA AA 68 01 02 43 C3 D5 16
    指令4:68 99 99 99 99 99 99 68 01 02 43 C3 6F 16

    如果发送指令1与2有返回则说明电表为07规约,如果发送指令3与4有返回则说明电表为97规约

  4. 对电表的返回数值进行解析,发送指令3之后,如果电表有返回则返回数值,例如:FE 68 85 49 18 00 17 00 68 81 06 43 C3 C7 48 85 39 27 16,说明电表遵守的是97规约。确定出电表的地址为85 49 18 00 17 00(低位在前)
    返回数据解析:
    在这里插入图片描述

**说明:**电表条形码下方的数值都会与指令的地址位相关(下面是网上一款电能表)。表支持RS485通信所以其通信协议肯定是遵循DLT 645-2007或者DLT645-1997,通常支持通信协议也会标注在电表上,但下面这款电报未进行标注,应该是现在购买的表默认遵循DLT 645-2007协议。

请添加图片描述

2.2获取电能表显示的千瓦时数据(以97协议进行测试)

  1. 根据上面发送广播地址电表返回的数据可以确定电表的地址85 49 18 00 17 00(低位在前)和通讯的协议是97,根据这两个信息组合出想要发送的读取电能表千瓦时的数据指令
  2. 发送的数据指令组成解析:FE FE 68 85 49 18 00 17 00 68 01 02 43 C3 D6 16
    在这里插入图片描述
  3. 当电表正常接收和正常返回时,接收到数据FE 68 85 49 18 00 17 00 68 81 06 43 C3 C7 48 85 39 27 16,数据域为C7 48 85 39,数据域的数值减去33后为94 15 52 06,由于数值为低位在前所以拼接起来之后数值为06521594,其中最后两位为小数位则总电能的数值为65215.94kWh,也就是电表显示千瓦时数据(正向有功总功耗)。
    在这里插入图片描述
    说明:上面测试的使用指令3:68 AA AA AA AA AA AA 68 01 02 43 C3 D5 16虽然也能完成电表千瓦时数据(正向有功总功耗)的读取,但是在一个485总线上只能存在一个电表,不能完成一个485总线对多个电表的远程抄表。要实现一个485总线对多个电表的远程抄表则需要使用电表独立的地址进行通信,获取电表数据。

这篇关于使用485通信远程抄表,获取电能表显示的千瓦时数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377649

相关文章

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

9个SpringBoot中的自带实用过滤器使用详解

《9个SpringBoot中的自带实用过滤器使用详解》在SpringBoot应用中,过滤器(Filter)是处理HTTP请求和响应的重要组件,SpringBoot自带了许多实用的过滤器,如字符编码,跨... 目录1. CharacterEncodingFilter - 字符编码过滤器功能和配置手动配置示例2

Redis持久化机制之RDB与AOF的使用

《Redis持久化机制之RDB与AOF的使用》:本文主要介绍Redis持久化机制之RDB与AOF的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis持久化机制-RDB与AOF一、RDB持久化机制1、RDB简介2、RDB的工作原理3、RDB的优缺点4

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

Spring Boot 常用注解详解与使用最佳实践建议

《SpringBoot常用注解详解与使用最佳实践建议》:本文主要介绍SpringBoot常用注解详解与使用最佳实践建议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、核心启动注解1. @SpringBootApplication2. @EnableAutoConfi

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

Redis中RedisSearch使用及应用场景

《Redis中RedisSearch使用及应用场景》RedisSearch是一个强大的全文搜索和索引模块,可以为Redis添加高效的搜索功能,下面就来介绍一下RedisSearch使用及应用场景,感兴... 目录1. RedisSearch的基本概念2. RedisSearch的核心功能(1) 创建索引(2

Redis中HyperLogLog的使用小结

《Redis中HyperLogLog的使用小结》Redis的HyperLogLog是一种概率性数据结构,用于统计唯一元素的数量(基数),本文主要介绍了Redis中HyperLogLog的使用小结,感兴... 目录 一、HyperlogLog 是什么?️ 二、使用方法1. 添加数据2. 查询基数China编程3.

SQL常用操作精华之复制表、跨库查询、删除重复数据

《SQL常用操作精华之复制表、跨库查询、删除重复数据》:本文主要介绍SQL常用操作精华之复制表、跨库查询、删除重复数据,这些SQL操作涵盖了数据库开发中最常用的技术点,包括表操作、数据查询、数据管... 目录SQL常用操作精华总结表结构与数据操作高级查询技巧SQL常用操作精华总结表结构与数据操作复制表结

Redis中的数据一致性问题以及解决方案

《Redis中的数据一致性问题以及解决方案》:本文主要介绍Redis中的数据一致性问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Redis 数据一致性问题的产生1. 单节点环境的一致性问题2. 网络分区和宕机3. 并发写入导致的脏数据4. 持