modbus功能码定义和样例

modbus功能码定义和样例modbus 完整支持很多功能码 但是实际在应用的时候常用的也就那么几个 具体如下 0x01 读线圈寄存器 0x02 读离散输入寄存器 0x03 读保持寄存器 0x04 读输入寄存器 0x05 写单个线圈寄存器 0x06 写单个保持寄存器 0x0f 写多个线圈寄存器 0x10 写多个保持寄存器如上所示一共 8 种功能码 这其中有涉及到线圈 离散输入 保持 输入四种寄存器 这名字也不

modbus完整支持很多功能码,但是实际在应用的时候常用的也就那么几个。具体如下:

线圈寄存器:实际上就可以类比为开关量,每个bit都对应一个信号的开关状态。所以一个byte就可以同时控制8路的信号。比如控制外部8路io的高低。 线圈寄存器支持读也支持写,写在功能码里面又分为写单个线圈寄存器和写多个线圈寄存器。对应上面的功能码也就是:0x01 0x05 0x0f

离散输入寄存器:如果线圈寄存器理解了这个自然也明白了。离散输入寄存器就相当于线圈寄存器的只读模式,他也是每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。比如我读取外部按键的按下还是松开。所以功能码也简单就一个读的 0x02

保持寄存器:这个寄存器的单位不再是bit而是两个byte,也就是可以存放具体的数据量的,并且是可读写的。比如我我设置时间年月日,不但可以写也可以读出来现在的时间。写也分为单个写和多个写,所以功能码有对应的三个:0x03 0x06 0x10

输入寄存器:只剩下这最后一个了,这个和保持寄存器类似,但是也是只支持读而不能写。一个寄存器也是占据两个byte的空间。类比我我通过读取输入寄存器获取现在的AD采集值。对应的功能码也就一个 0x04

1、“01”读取线圈状态发送:

在这里插入图片描述

3、“03”保持型寄存器读取

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200594.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午10:28
下一篇 2026年3月20日 上午10:29


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号