Modbus 通讯协议
(
RTU
传输模式)
3
03 读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值
04
读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值
05 强置单线圈 强置一个逻辑线圈的通断状态
06
预置单寄存器 放置一个特定的二进制值到一个单寄存器中
07 读取异常状态 取得 8 个内部线圈的通断状态
15
强置多线圈 强置一串连续逻辑线圈的通断
16 预置多寄存器 放置一系列特定的二进制值到一系列多寄存器中
17
报告从机标识 可使主机判断编址从机的类型及该从机运行指示灯的状态
1.2.4 数据域
数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。 这些
数据的内容可能是数值、 参考地址或者极限值。 他由数据区有 2 个 16 进制的数据位 (2 的 8
次方 256),数据范围为 00-FF(16 进制 )。例如: 功能域码告诉终端读取一个寄存器 ,数据域
则需要指明从哪个寄存器开始及读取多少个数据 ,内嵌的地址和数据依照类型和从机之间的
不同能力而有所不同。 若无错误出现, 从机向主机的响应信息中包含了请求数据, 若有错误
出现, 则数据中有一个不正常代码, 使主机能判断并作出下一步的动作。 数据区的长度可为
“零”以表示某类信息。
1.2.5 错误校验域
该域允许主机和终端检查传输过程中的错误。 有时, 由于电噪声和其它干扰, 一组数据
在从一个设备传输到另一个设备时在线路上可能会发生一些改变, 出错校验能够 保证主机或
者终端不去响应那些传输过程中发生了改变的数据 ,这就提高了系统的安全性和效率, 出错
校验使用了 16 位循环冗余的方法,即 CRC 校验。
错误检测域包含一 16Bits 值(用两个 8 位的字符来实现 )。错误检测域的内容是通过对消
息内容进行循环冗长检测方法得出的。 CRC 域附加在消息的最后,添加时先是低字节然后
是高字节。故 CRC 的高位字节是发送消息的最后一个字节。
1.2.6 字符的连续传输
当消息在标准的 Modbus 系列网络传输时, 每个字符或 字节 按由左到右的次序方式发送:
最低有效位( LSB )...最高有效位 (MSB) 。
位的序列是:
有奇偶校验
启始位 1 2 3 4 5 6 7 8 奇偶位 停止位
无奇偶校验
启始位 1 2 3 4 5 6 7 8 停止位 停止位
图 1 –2 . 位顺序( RTU)
1.3 错误检测
1、奇偶校验
用户可以配置控制器是奇或偶校验,或无校验。这将决定了每个字符中的奇偶校验位是
如何设置的。