Modbus 通信协议


1. 术语和定义

ADU (Application Data Unit) 应用数据单元
PDU (Protocol Data Unit) 协议数据单元
MB (Modbus Protocol) MODBUS协议
LSB (Least Significant Bit) 最低有效位

2. 通讯协议

2.1 概述

通讯协议实现压缩机驱动器、风机驱动器或功率因数校正器等功能模块与主控制板(或具备主控制板通讯功能的设备)的数据交互。通讯在串行链路上实现,可使用的方式为:有线(EIA/TIA 232、EIA/TIA 485、光纤等)或无线等上的异步串行传输。通讯协议各层关系如图所示。本规范侧重于应用层的定义。

2.2 通讯协议基于MODBUS RTU,主控制板(或具备主控制板通讯功能的设备)为唯一主节点,驱动器、功率因数校正器等为从节点。主从节点关系如图

2.3 物理层

通讯媒介可以为有线(EIA/ TIA 232、EIA/TIA 485、光纤等)或无线等。
通讯速率可以为1200、2400、4800、9600、19200bps,推荐1200bps。

2.4数据链路层

通讯由主节点发起,子节点在没有收到主节点的请求时,不会发送数据。主节点/从节点通讯时序如图

T1: 请求处理延迟时间,允许范围10ms~200ms;
T2: 应答处理延迟时间,允许范围0ms~10ms;
T3: 请求帧间间隔,最大允许时间为30S,超过此时间表示通讯故障。通讯故障后,从节点接收新的通讯数据,则立即复位故障,恢复工作。

 2.5 通讯以帧为单位,单个帧格式定义为:

 

2.6 帧内每个字节格式,采用MODBUS RTU模式,帧中每个字节采用二进制编码,为10/11位,格式定义见表

2.7 通讯地址规则:合法的子节点地址为十进制 0~247。地址0~31为可使用地址,其他地址保留

2.8 CRC:是对全部帧内容(子节点地址、功能码和数据)执行的基于循环冗余校验 (CRC - Cyclical Redundancy Checking) 算法的错误检验域并附加在帧最后。CRC 包含由两个8位字节组成的一个16位值。首先附加低字节,然后是高字节

3 应用层

3.1 可用的功能码定义见表

3.2 功能码03(0x03)读多个寄存器

主节点PDU格式(请求帧)

 从节点PDU格式(应答帧)

 

 N: 寄存器数量

3.3 功能码06(0x06)写单个寄存器

主节点PDU格式(请求帧)

 从节点PDU格式(应答帧)

3.4 功能码16(0x10)写多个寄存器

主节点PDU格式(请求帧)

 从节点PDU格式(应答帧)

 N: 寄存器数量