17705161255@163.com    17705161255(微信同号)
2026-07-29 580

MODBUS 应用协议规范详解

Modbus Application Protocol Specification(V1.1b3)是定位于Modbus 应用层标准,只规定第 7 层 PDU,独立于 RS485、TCP 等底层传输。统一规定跨传输链路的 Modbus 请求 / 应答语义、数据寻址方式、功能码与错误响应,保证不同厂商设备互通。

    国内等同国标:GB/T 19582.1-2008《基于 Modbus 协议的工业自动化网络规范 第 1 部分:Modbus 应用协议》2008-09-01实施,代替GB/Z 19582.1-2004

 

一、通信模型

采用 客户端 / 服务器(Client/Server) 请求 - 应答模型(原主从 Master/Slave)。

1. 客户端:发起请求

2. 服务器:接收请求、执行操作、返回应答

3. 规则:服务器不能主动发送数据,必须由客户端轮询。

 

二、核心报文单元:PDU(协议数据单元)

1.PDU = 功能码(1字节) + 数据域(N字节)

2.PDU 是通用载荷,Modbus RTU / ASCII / TCP 共用

3.ADU(应用数据单元)= 传输层头部 + PDU + 校验(不同链路格式不同) 

4. RTU:从站地址 + PDU + CRC

5.TCP:MBAP 头 (7字节) + PDU

 

三、四种标准数据模型(协议最核心)

重点:报文中地址为0 起始;设备手册常标注 1 起始,程序要 - 1。

    1.  线圈 Coils1bit,读写(开关输出)

    2.  离散输入 Discrete Inputs1bit,只读(开关输入)

    3.  保持寄存器 Holding Registers16bit,读写(参数、设定值)

    4.  输入寄存器 Input Registers16bit,只读(采集模拟量)

 

四、标准功能码(公共功能码)

1. 读取类01,读线圈; 02,读离散输入; 03,读保持寄存器; 04,读输入寄存器。

2. 写入类05,写单个线圈; 06,写单个保持寄存器; 15 (0x0F),写多个线圈; 16 (0x10),写多个保持寄存器。

3. 复合功能23 (0x17),同时读写保持寄存器。

4. 异常应答规则:原功能码 + 0x80,后跟 1 字节异常码。

 

五、标准异常码(Exception Code)

Modbus 标准异常码为 1 字节数值(0x01-0x0B),位于异常响应帧数据域;异常响应特征为‌功能码最高位置 1(原码 +0x80)‌。‌

核心标准异常码列表

‌0x01 非法功能‌:从站不支持请求的功能码或处于未配置状态无法执行该操作 。

‌0x02 非法数据地址‌:请求的寄存器地址不存在、超出范围或对该类型地址不可访问(最常见)。

‌0x03 非法数据值‌:请求中的数据值(如写入值)超出从站允许范围或格式错误。

‌0x04 从站设备故障‌:从站处理请求时发生不可恢复的内部错误。

‌0x05 确认‌:从站已接收长时操作命令(如编程),正在处理中,主站需稍后轮询确认 。

‌0x06 从站忙‌:从站正处理长时任务,暂时无法接受新请求,主站应稍后重试 。

‌0x08 存储奇偶校验错误‌:扩展文件区读取时检测到内存/存储奇偶校验失败(特定功能码使用)。

‌0x0A 网关路径不可用‌:网关配置错误或过载,无法分配内部通信路径(仅网关模式)。

‌0x0B 网关目标设备响应失败‌:网关未收到目标从站的响应(仅网关模式)。

 

六、数据编码强制规则

1. 16 位数值:大端模式 Big-Endian(高字节在前)

2. 线圈状态:ON=0xFF00,OFF=0x0000,禁止其他值

3. 协议未定义 32 位整数、浮点数;高低字节组合属于厂商自定义实现

 

七、报文长度约束

1. 最大 PDU 长度253字节 功能码(1字节) + 数据域(252字节)

2. Modbus RTU/ASCII最大ADU 256字节:1字节地址码+253字节PDU+2字节CRC或LRC。

3. Modbus TCP最大长度ADU 260字节:7字节MBAP+253字节PDU。

 

八、功能码分区

1. 01-64:标准公共功能码

2. 65-72、100~110:厂商预留自定义

3. 128-255:专门用于异常响应

 

九、文件边界

本应用协议规范不包含

1.  RS485 时序、CRC/LRC 校验(串行链路规范)

2.  Modbus TCP MBAP 头部、502 端口(TCP 实现指南)

 

 

 

 

 



17705161255
首页
电话
微信
E_mail邮件
X

截屏,微信识别二维码

微信号:17705161255

(点击微信号复制,添加好友)

  打开微信