健思研

深圳市健思研科技有限公司Shenzhen Jiansiyan Technology Co., Ltd.
咨询电话400-001-9882

热门关键词:电测仪表价格充电桩价格汽车充电桩多少钱一个电能计量仪器仪表电能计量仪器仪表价格

当前位置首页 » 健思研新闻中心 » 新闻资讯 » 企业新闻 » 家庭能源网关开发历程④:收官!Modbus协议解析,读取JSY-MK-163T模块电能数据全流程

家庭能源网关开发历程④:收官!Modbus协议解析,读取JSY-MK-163T模块电能数据全流程

2026-02-05 10:28:08

经过前三期的铺垫,我们终于来到家庭能源网关开发历程的核心环节——利用Modbus协议读取JSY-MK-163T电能计量模块的实时数据(电压、电流、功率等),通过上期我们实现的中断发送和接收,就利用到了本期读取电能数据啦,本期我们就来实现项目核心JSY-MK-163T单相计量模块怎么利用MODBUS协议去读电能数据,并解析出来。首先,我们先看看怎么是MODBUS协议。

一、先搞懂:Modbus协议的定义

 MODBUS 协议在一根通讯线上采用主从应答方式的通讯连接方式。首先,主计算机的信号 寻址到一台唯一地址的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输 给主机,即:在一根单独的通讯线上信号沿着相反的两个方向传输所有的通讯数据流(半双工的工作模式)

MODBUS报文格式

设备地址/从站地址: 1个字节 指定目标设备地址(从站地址)

功能码:1个字节 功能码在modbus协议用于表示信息帧的功能,例如读取线圈状态、读取寄存器等。

数据: N个字节 后面数据根据不同功能码不同。

CRC校验:循环冗余校验码,用于检测报文完整性和数据错误

MODBUS常用功能码 

图片1

 

MODBUS读取数据

MODBUS校验 

代码_01

功能码03发送报文函数 

代码_02

功能码06写单个寄存器 

代码_03

功能码10写多个寄存器 

代码_04

功能码发送函数

代码_05 

功能码03解析函数 

代码_06

功能码06解析函数 

代码_07

功能码10解析函数 

代码_08

清空接受 

代码_09

中断接收数据组包 

代码_10

MODBUS解析

首先我们先通过手册去看电能数据的起始地址,在结合我们的功能码读取相应数据,并通过手册的解析公式转换后得到最后的电能。

图片2

功能码03读一个或多个寄存器解析

注意:以产品手册为例

请求:01 03 00 48 00 0A 45 DB (读 0048 开始的 10 个寄存器)

1位 01 设备地址

2位 03 功能码

3,4位00 48起始地址

5,6位 00 0A查询寄存器长度,查询10个寄存器

7,8位45 DBCRC校验码

响应:01 03 14 5F C0 01 8F 03 D5 00 00 07 C0 03 E8 00 00 01 E6 6E 5E 13 86 F9 F1

2位设备地址和功能码,同请求发送的报文

3位14是后面数据位的长度,每一个寄存器长度为2个字节,所以总长20(0x14)

4位开始,20位都是数据位

对照我们电能数据表红色数据

4,5位 5F C0 对应 0048 寄存器,即为电压:0x5FC0=24512,根据公式除以 100 为 245.12V

6,7位01 8F电流:0x018F:根据公式除以 100 为 3.99A

8,9位03 D5有功功率:0x03D5:根据公式981W

10,11,  12,13位 00 00 07 C0电能:0x000007C0:根据公式除以 3200为 62KWh

14,15位03 E8功率因素:0x018F:根据公式除以 1000 为1

16,17,18,19位00 00 01 E6二氧化氮排放量:0x000001E6:根据公式除以 1000 为 486Kg

17,18位6E 5E温度:0x018F:根据公式除以 1000 为 28.254度

19,20位13 86频率:0x1386:根据公式除以 100 为 49.98Hz

如果我们要更改模块的ID和通信速率,就需要功能码06和10去更改。如果是想一次一次改就用功能码06分别去改ID和波特率,功能码10就可以一次性改。首先我们先根据手册去看模块默认的ID和波特率。如下图:

图片3

功能码06写单个寄存器解析

请求:01 06 00 04 00 37 89 DD

向地址为4的寄存器写入55。

1位 01 设备地址

2位 06 功能

3,4位 00 04写入的起始地址

5,6位 00 37写入寄存器的值

7,8位89 DDCRC校验码

响应:01 06 00 04 00 37 89 DD

写入成功,响应报文与写入报文一致

功能码10写多个寄存器解析

ID和波特率

请求:02 10 00 04 00 01 02 01 06 32 B6

1位 02 设备地址

2位 10 功能码

3,4位 00 04写入的起始地址

5,6位 00 01寄存器数量

7位02字节计数

8位01表示改的ID

9位 06表示改的波特率

10,11位 32 B6表示校验码

响应:01 10 00 04 00 01 40 08

1位 01 设备地址

2位 10功能码

3,4位 00 04写入的起始地址

5,6位 00 01寄存器数量

7,8位40 08CRC校验码

结果如下图: 

微信图片_20260204135726_648_25

二、模块购买与资源汇总

以上就是我们利用MODBUS协议通过JSY-MK-163单相计量模块去读电能数据的全过程作为整个项目的核心,JSY-MK-163T模块性能稳定、性价比高,购买渠道和关键资源如下:

 购买链接

微信图片_20260205105711_3860_12

深圳市健思研科技产品详情:http://www.webaic.com单相互感式计量模块

微信图片_20260205151432_654_25(1)

 接线教程:https://www.bilibili.com/video/BV1MEHMeJEW8

三、系列总结

前期回顾:

家庭能源网关开发历程①:4大核心目标+健思研JSY-MK-163T选型,打造智能用电管家
家庭能源网关开发历程②:JSY-MK-163T串口通讯调试过程
家庭能源网关开发历程③:UART数据收发实测!打通JSY-MK-163T模块数据通道
到这里,家庭能源网关开发历程系列就全部结束了!我们从项目目标→器件选型(JSY-MK-163T模块)→UART配置→数据收发→Modbus解析,一步步实现了“精准监测家庭用电”的核心需求。
这款基于JSY-MK-163T模块的网关,能实时显示电压、电流、功率等数据,实现用电管理的智能化、经济性和安全性。健思研模块的精准计量能力和完善的通讯支持,为整个项目的成功奠定了坚实基础。
如果你在实操中遇到问题,或者想了解更多健思研模块的高级用法,欢迎在评论区留言,我们一起交流解决~ 后续还会分享更多智能硬件开发案例,记得持续关注哦!


更多推荐产品 Recommended products

四大企业优势为您的电能智控产品保驾护航
置 顶