MODBUS 详 解 精 简 版 一、基本术语 1、 字 word、字节 byte、位 bit 1 word = 2 byte; 1 byte = 8 bit. 2、 校验码 校验码是由前面的数据通过某种算法得出的,用以检验该组数据的正确性。代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为了减少这种输入错误,编码专家发明了各种校验检错方法,并依据这些方法设置了校验码。 常用的校验有:累加和校验 SUM、字节异或校验 XOR、纵向冗余校验 LRC、循环冗余校验 CRC…… 3、 协议和接口 协议是一种规范和约定,是一种通讯的语言,规定了通信双方能够识别并使用的消息结构和数据格式。 接口是一种设备的物理连接,指的是在物理层上的定义,像RS422/RS232/RS485/以太网口等。协议和接口并不是一个概念,不能混淆。 Modbus 协议一般运行在 RS485 物理接口上,半双工的,是一种主从协议。 二、Modbus 协议概述 Modbus 协议是应用于电子控制器上的一种通用语言,实现控制器之间、控制器由网络和其它设备之间的通信,支持传统的 RS232/RS422/RS485 和最新发展的以太网设备。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中控制。此协议定义了一个控制器能认识使用的消息结构。 Modbus 协议是一种请求——应答方式的协议。 三、两种传输方式 1、 ASCII 模式 ASCII:美国标准信息交换代码 特点: ① 消息中每个 8bit 都作为两个 ASCII 字符发送 ② 1 个起始位、7 个数据位、1 个奇偶校验位和 1 个停止位(或者两个停止位) ③ 错误检测域是LRC 检验 ④ 字符发送的时间间隔可达到 1 秒而不会产生错误 2、 RTU 模式 RTU:远程终端单元 特点: ① 消息中每个 8bit 字节包含两个 4bit 的十六进制字符,因此,在波特率相同的情况下,传输效率比 ascii 传输方式大 ② 1 个起始位、8 个数据位、1 个奇偶校验位和 1 个停止位(或者两个停止位) ③ 错误检测域是CRC 检验 ④ 消息发送至少要以 3.5 个字符时间的停顿间隔开始。整个消息帧必须作为一连续的流传输。如果在帧完成之前有超过 1.5 个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一个字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5 个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。1.5~ 3.5 个字符间隔就算接收异常,只有超过 3.5 个字...