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: 寄存器数量