STM32/STM8技术论坛
直播中

hjh2008

3年用户 20经验值
私信 关注
[问答]

无法理解Modbus RTU协议写多个寄存器的这两个参数!

Modbus RTU协议写多个寄存器的协议是下面这样描述的:

modbus.jpg

针对这个协议我有几个问题,请教大家:
1、其中请求PDU中的“寄存器数量”和“字节数”两个参数是不是冗余了?“字节数”不是可以通过“寄存器数量”x2得到吗?为什么还要单独再写一个“字节数”呢?
2、是不是所有寄存器都是2个字节?
3、字节数=寄存器数量x2,说明“字节数”的值域范围要比“寄存器数量”值域范围大,那为什么用一个字节来存储值域范围大的“字节数”,却用两个字节来存值域范围小的“寄存器数量”?


感谢!

回帖(3)

杨先生

2022-5-12 09:00:59
本帖最后由 夏夜星辰先生 于 2022-5-12 09:02 编辑

1、并没有规定寄存器必须是2个字节的。
2、把范围放大一点看,在不同的平台上思考这个问题:有的平台无论你申请什么类型的变量,都是以32位分配存储区的。
举报

weln2022

2022-5-20 21:38:51
推荐你B站 正点原子 野火
举报

yang_77

2022-5-23 09:16:29
和楼主同问,如果寄存器起始地址已知,寄存器数量已知,字节数其实已经是非常明确了,这里在要求填一遍字节数真搞不懂啥意思,万一算错了,寄存器数和字节数不吻合,那么它以哪个为准?还有,字节数只用一个字节,寄存器数却用两个字节,这明显给人的感觉貌似前期没规划好地址,这里没办法了,只能给一个字节。
举报

更多回帖

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