Modbus RTU/TCPModbus报文解析和示例

1, Modbus地址区的0x、1x、3x、4x各代表什么?如何区分和应用?

地址区 名词 读/写 地址范围 别称 可用功能码
0x 线圈状态/离散量输出(coil status) 可读/可写 00001~09999 对应PLC: DO 01、05、15
1x 离散量输入(inputs status  只读 10001~19999 对应PLC: DI 02
3x 输入寄存器(input registers 只读 30001~39999 对应PLC: AI 04
4x 保持寄存器(holding registers 可读/可写 40001~49999 对应PLC: AO 03、06、16

解释:0x、1x、 3x、4x各是一片数据区,它是5位十进制地址(16bit),是Modbus协议规定的地址范围,各类地址是互相对应的,但在实际编程中,由于前缀的区分作用,所以只需说明后4位数,而且需转换为4位十六进制地址。有些资料就以其第一个数字区分各类地址。这些只是modbus协议规定的地址范围区, 并不参与实际协议数据传输。而其中功能码是真实参与协议传输的。如要操作0x地址数据区,就只能用规定的功能码01、05,而不能用其他功能码。所以,从各类地址的前缀就能知道它的数据区及功能码,反之亦然。

2, 功能码:

功能码(16进制) 功能 位/字操作 操作数量 访问类型
0x01 读线圈状态 位操作 单个或多个 单bit访问
0x02 读离散输入状态 位操作 单个或多个
0x05 写单个线圈 位操作 单个
0x0F 写多个线圈 位操作 多个
0x03 读保持寄存器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值