Modbus RTU学习笔记(该笔记还在完善中)

Modbus是对物理层RS485或者串口中对协议帧的规范。

有两种串行传输模式被定义: RTU 模式 和 ASCII 模式。其中ASCII使用的很少,因为传输效率很低,所以支持Modbus协议所有设备必须实现 RTU (Remote Terminal Unit)模式。ASCII 传输模式是选项。

地址范围

Modbus是通过地址信息呼叫从机,从机设备地址最多有247个(1-247),其中0为广播地址,(248-256为保留)

数据帧格式

字节格式:

RTU 模式每个字节 ( 11 位 ) 的格式为 :1 起始位, 8 数据位, 首先发送最低有效位 ,1 位奇偶校验 位,1个 停止位

偶校验是要求的, 其它模式 ( 奇校验, 无校验 ) 也可以使用。 为了保证与其它产品的最大兼容性, 同时支持无校验模式是建议的。默认校验模式模式 必须为偶校验。

注意:这里是每个字节的格式 一个字节是8bit+其他位(开始停止校验位等)

CRC:循环冗余校验 (CRC), 2 字节 出去CRC本身的校验位。

总帧格式:

帧间隔:

一般来说,我们需要在发送数据的时候开启定时器去判断这个帧间隔

异常处理:

假设主机给地址01发送命令01去读取地址04A1的一个数据需要发送

01 01 04 A1 00 01 AD 18   如果说从机没有这个地址它将返回

01 81 01 02                        第一个01表示应答地址,第二个81是01|80= 0x81 因为错误码等于功能码|0x80,返回数据是0x02的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值