施耐德PM5350电度表电能数据解析

本文详细介绍了如何通过RS485通信和Modbus协议读取施耐德PM5350及iEM系列电度表的数据,包括调整寄存器地址和处理大端模式数据的方法,以确保正确获取三相电压、电流和总电能量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于公司前段时间在做一个能效监管的项目,其中需要读取型号PM5350的施耐德电度表(还有iEM3100 系列 / iEM3200 系列电度表,和PM5350读取方式一样)。这两款表都是通过RS485通信,使用的是标准modbus协议。项目需要读取它的三相电压、电流和总电能量。

通过查看产品技术手册,按modbus协议常规组帧模式用“设备地址”+“功能码为读保持寄存器 03H”+“相应数据寄存器地址”+...去抄读数据进行解析(modbus 协议的传输是RTU模式即16进制码),多次反复读取解析验证每项数据都与实际电度表显示数据不对应。经大量查询相关资料并与施耐德客服多次咨询,最终发现两个问题导致数据不对应。

一、读取施耐德电度表数据时,要把寄存器地址减1后组帧抄读,不能直接按点表中的寄存器地址。如读取A相电流时寄存器地址应为2999。

电流点表如下:

电压点表如下:

电能量点表如下:

 

二、施耐德电度表内存数据存放模式为大端模式, 我们在读取到数据后要将内存数据按小端模式转化后再解析显示就为正确的数据值。

 

大端模式和小端模式说明

32bit宽的数0x12345678在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址

0x4000

0x4001

0x4002

0x4003

存放内容

0x78

0x56

0x34

0x12

而在Big-endian模式CPU内存中的存放方式则为:

内存地址

0x4000

0x4001

0x4002

0x4003

存放内容

0x12

0x34

0x56

0x78

 

我们常用的X86结构(电脑)是小端模式,而有些单片机为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

 

施耐德电度表返回数据解析举例:

1、总电量返回帧:   07 03 08 00 00 00 01 A5 02 C5 E8 66 8D        7063,389672 wh  

 

2、电压返回帧:   07 03 0C 45 D6 3C CD 45 D6 11 9A 45 D6 1B 33 F0 D1   6855.6V  6850.2V  6851.4V

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值