单相电表互感器三相电量采集modbus转mqtt上传开发需求说明

Posted i数采物联-上海/河南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单相电表互感器三相电量采集modbus转mqtt上传开发需求说明相关的知识,希望对你有一定的参考价值。

1 需求背景 3
2 单相电表通讯协议 3
1.1 应用层协议 3
1.2 读取测量结果 3
3 MQTT上报要求 5
3.1 电表数据指标 5
3.2 数据格式 5
(1)心跳格式 5

1需求背景
网关采集单相电表数据,按照要求的MQTT格式上报指定服务器。
目的:监控用电设备工作状态及能耗
要求:网关支持4G/WiFi通讯,支持4G、WiFi自动切换,支持modbus数据解析
2单相电表通讯协议
RS485接口,波特率为9600,8位数据位,1位停止位,无校验。
应用层采用Modbus-RTU协议进行通信,目前只支持0x03(读保持寄存器)、0x04(读输入寄存器)、0x06(写单个寄存器)、0x41(校准)、0x42(电能清零)等功能码。
其中0x41功能码仅限于内部使用(地址只能是0xF8),用作出厂校准和返厂维修等场合,在功能码之后增加16位的密码,密码默认为0x3721。
从机的编址范围为0x01~0xF7,地址0x00作为广播地址,从机不需回复主机,地址0xF8作为通用地址,该地址只能用在单从机的环境中,可以用作校准等操作。
2.1 读取测量结果
主机读取测量结果的命令格式为(共8个字节):
从机地址 + 0x04 + 寄存器地址高字节 + 寄存器地址低字节 + 寄存器数量高字节 + 寄存器数量低字节 + CRC校验高字节 + CRC校验低字节。
从机回复如下的命令格式分为两种:
正确回复:从机地址 + 0x04 + 字节数 + 寄存器1数据高字节 + 寄存器1数据低字节 + … + CRC校验高字节 + CRC校验低字节。
错误回复:从机地址 + 0x84 + 异常码 + CRC校验高字节 + CRC校验低字节。
异常码解读如下(下同):
0x01,非法功能;
0x02,非法地址;
0x03,非法数据;
0x04,从机错误。
其中测量结果的寄存器排布如下表所示。
寄存器地址 说明 分辨率
0x0000 电压测量值 1LSB对应0.1V
0x0001 电流测量值低16位 1LSB对应0.001A
0x0002 电流测量值高16位
0x0003 功率测量值低16位 1LSB对应0.1W
0x0004 功率测量值高16位
0x0005 电能测量值低16位 1LSB对应1Wh
0x0006 电能测量值高16位
0x0007 频率测量值 1LSB对应0.1Hz
0x0008 功率因数测量值 1LSB对应0.01
0x0009 报警状态 0xFFFF为报警,0x0000为不报警

例如主机发送如下命令(CRC校验码用0xHH和0xLL代替,下同):
0x01 + 0x04 + 0x00 + 0x00 + 0x00 + 0x0A + 0xHH + 0xLL
表明主机需要读取从机地址为0x01的10个寄存器,寄存器起始地址为0x0000。
从机正确的回复如下:
0x01 + 0x04 + 0x14 + 0x08 + 0x98 + 0x03 + 0xE8+0x00 + 0x00 +0x08 + 0x98+ 0x00 + 0x00 + 0x00 + 0x00 + 0x00 + 0x00 + 0x01 + 0xF4 + 0x00 + 0x64 + 0x00 + 0x00 + 0xHH + 0xLL
以上数据表明:
电压为0x0898,换算为十进制为2200,表示220.0V;
电流为0x000003E8,换算为十进制为1000,表示1.000A;
功率为0x00000898,换算为十进制为2200,表示220.0W;
电能为0x00000000,换算为十进制为0,表示0Wh;
频率为0x01F4,换算为十进制为500,表示50.0Hz;
功率因数为0x0064,换算为十进制为100,表示1.00;
报警状态为0x0000,表示当前功率低于报警功率门限。

3MQTT上报要求
3.1电表数据指标

电表的标准数据指标
序号 分类 字段 说明 单位
1 基础信息 DeviceID 设备编号
2 DeviceName 设备名称
3 formatType 数据格式类型,默认”1”
4 loStatus 在线状态
5 变量 U 电压 V
6 I 电流 A
7 P 功率 kW
8 Cos 功率因数
9 EPP 电量 kWh
3.2数据格式
届时提供MQTT相关的服务器IP 端口 用户名 密码等参数。
(1)心跳格式
根据设定的心跳包间隔发送心跳包到平台上,心跳间隔可配置,默认心跳间隔5分钟。主要上传信息为坐标、状态、信号强度。
{
“cmdId”:“3”,
“gatewayId”:" WG0001",
“ip”: “10.19.8.1”,
“loState”:" 1",
“dBm”:" 信号强度",
" location ": “经度,纬度”,
“version”: “版本信息”,
“time”:“2020-09-08 10:20:30”
}
ip:网关设置的ip地址
loState:状态, 1:正常 -1:异常
dBm:信号强度,具有gps和4G功能的网关需要提供
location:经度,纬度,以,号分割,如116.40,39.90,具有gps和4G功能的网关需要提供
version:网关的版本信息
(2)最终上传josn格式的数据模板和心跳模板
数据模板:
{
“cmdId” : “10”,
“gatewayId” : “WG0001”,
“slaveId” : “1”,
“DeviceID” : “112233”,
“U” : “219.5000”,
“I” : “59.9400”,
“p” : “4.9960”,
“Cos” : “0.9660”,
“EPP” : “9502.1000”,
iostatus” : “1”,
“time” : “2021-07-28 10:25:06 000”
}

(3)
心跳模板:
{
“cmdId”:“3”,
“gatewayId”:" WG0001",
“ip”: “10.19.8.1”,
“loState”:" 1",
“version”: “版本信息”,
“time”:“2020-09-08 10:20:30 000”
}

以上是关于单相电表互感器三相电量采集modbus转mqtt上传开发需求说明的主要内容,如果未能解决你的问题,请参考以下文章

组态王和modbusrtu协议的派诺三相电表通信,实时采集电表电量读数,寄存器地址该如何设置?说明参数如下

NB-IOT电表采集模块 NB电表无线抄表模块 电表通信模块 支持二次开发

MES对接神器工业协议转换数据采集网关4GWiFi以太网通信

ADE7880三相电表的标定

如何在电脑上通过RS485接口读取PMC-630A三相数字式多功能测控电表。最好能写上详细过程。功能码为0x03.

MES对接神器工业协议转换数据采集网关4GWiFi以太网通信