1. 传输模式
Modbus 协议支持两种传输模式:- ASCII 模式:使用 ASCII 字符进行通信,每 8 个二进制位表示一个字符。
- RTU 模式:使用串行二进制数据进行通信。
2. 错误校验
Modbus 协议使用两种错误校验方法:2.1 CRC-16 错误校验(循环冗余校验)
CRC-16 错误校验是一种循环冗余校验方法,用于检测数据传输过程中的错误。其生成方法如下: 将 16 位的 CRC 寄存器初始化为 0xFFFF。 依次对数据字节进行移位运算和异或运算,更新 CRC 寄存器。 最终,将 CRC寄存器的内容附加在数据帧的末尾作为错误校验码。2.2 LRC 错误校验(纵向冗余校验)
LRC 错误校验是一种纵向冗余校验方法,用于检测数据传输过程中的错误。其生成方法如下: 将所有数据字节进行按位异或运算。 将结果附加在数据帧的末尾作为错误校验码。3. Modbus 协议
Modbus 协议是一种请求-应答协议,由以下字段组成:3.1 ASCII 成帧
ASCII 成帧使用以下字符表示: 起始符:冒号 (:) 结束符:换行符 (\r\n) 数据字节:每 8 个二进制位表示一个 ASCII 字符3.2 远程终端设备(RTU)成帧
RTU 成帧使用以下二进制数据表示: 无起始符或结束符 数据字节:8 位二进制数据3.3 地址字段
地址字段表示从属设备的地址,范围为。5.11 强置多线圈(功能码 15)
附录 B:最大询问和应答数据参数
最大询问和应答数据参数取决于 Modbus 功能和从属设备的实现。以下是常见参数:功能 | 最大询问数据 | 最大应答数据 |
---|---|---|
01 | 16 字 | 16 字 |
02 | 16 字 | 16 字 |
03 | 16 字 | 16 字 |
04 | 16 字 | 16 字 |
05 | 8 字 | 8 字 |
06 | 8 字 | 8 字 |
07 | 16 字 | 16 字 |
08 | 8 字 | 8 字 |
11 | 16 字 | 16 字 |
12 | 16 字 | 16 字 |
15 | 8 字 | 8 字 |
16 | 8 字 | 8 字 |
17 | 16 字 | 16 字 |
20 | 16 字 | 16 字 |
21 | 16 字 | 16 字 |
附录 C:隐长度小结
Modbus 隐长度是指 Modbus 事务中隐藏的长度信息,它存在于数据帧的长度字段中。隐长度的计算方法如下: 隐长度 = 数据字段长度 + 2 其中,2 表示 CRC-16 或 LRC 错误校验码。本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论