嵌入式技术论坛
直播中

刘洋

7年用户 1261经验值
私信 关注
[问答]

请问freemodbus slave发送为什么会多几个位?有什么作用?

freemodbus slave发送为什么会多几个位,这几各位有什么用
000054-Rx:01 03 00 01 00 04 15 C9
000055-Tx:01 03 08 00 01 00 00 00 00 00 00 85 17
RX是单片机发给modbus slave的,TX是modbus slave发给单片机的,就是TX为什么会多几位


回帖(2)

张杰

2022-4-7 09:22:29
这个和 modbus 协议有关,可以参考文章 modbus功能码定义和样例

你贴出来的功能码为 03,RX数据帧分析如下

Rx:01 03 00 01 00 04 15 C9

01 - 地址

03 - 功能码,读保持寄存器

00 01 - 起始地址

00 04 - 要读取的寄存器个数

15 C9 - CRC16 校验

TX数据帧分析如下

Tx:01 03 08 00 01 00 00 00 00 00 00 85 17

01 - 地址

03 - 功能码,读保持寄存器

08 - 剩余字节的个数,不包含校验位。剩余字节为 8,刚好是四个寄存器

00 01 00 00 00 00 00 00 - 四个寄存器的值,每个寄存器是两个字节

85 17 - CRC16 校验
举报

李芳

2022-4-7 09:22:38
这个要看协议,每个字节有响应的说明,如主机请求,只需要给出数据长度, 从机返回,还需要额外返回指定长度的【数据】
举报

更多回帖

发帖
×
20
完善资料,
赚取积分