文章目录
- 前言
- 问题:
- 一、Modbus 整体核心基础原理
- 1.1 通信架构
- 1.2 四类核心寄存器(物理量唯一底层载体)
- 1.3 Modbus RTU 标准报文结构
- 二、Modbus RTU 官方标准时隙规定(V1.02 标准版)
- 2.1 基础参数定义
- 2.2 核心时隙规则
- 2.3 全波特率时隙参数对照表
- 三、拓展功能码详细定义、原理、帧格式、报文示例与工程适用场景
- 3.1 0x07 读异常状态(仅串口RTU/ASCII,TCP不支持)
- 3.1.1 功能与原理
- 3.1.2 适用场合
- 3.1.3 标准帧格式
- 3.1.4 实战报文示例
- 3.1.5 状态字节说明
- 3.2 0x08 诊断功能(仅串口)
- 3.2.1 功能与原理
- 3.2.2 适用场合
- 3.2.3 子功能码定义
- 3.2.4 标准帧格式
- 3.2.5 实战报文示例(回环测试)
- 3.3 0x0C 读取通信事件日志(仅串口)
- 3.3.1 功能与原理
- 3.3.2 适用场合
- 3.3.3 标准帧格式
- 3.3.4 实战报文示例
- 3.4 0x11 报告从站ID(仅串口)
- 3.4.1 功能与原理
- 3.4.2 适用场合
- 3.4.3 标准帧格式
- 3.4.4 实战报文示例
- 3.5 0x14 / 0x15 读写文件记录
- 3.5.1 功能与原理
- 3.5.2 适用场合
- 3.5.3 帧格式(0x14读文件)
- 3.5.4 报文示例
- 3.6 0x16 屏蔽写寄存器
- 3.6.1 功能与原理
- 3.6.2 适用场合
- 3.6.3 标准帧格式
- 3.6.4 实战示例
- 3.7 0x17 读写多寄存器
- 3.7.1 功能与原理
- 3.7.2 适用场合
- 3.7.3 标准帧格式
- 3.7.4 实战报文示例
- 3.8 0x2B MEI 扩展功能码
- 3.8.1 功能与原理
- 3.8.2 适用场合
- 3.8.3 通用帧格式
- 3.8.4 常用MEI类型
- 3.8.5 OTA拓展报文示例(完整复用前文规范)
- 四、五大完整工程落地案例(含完整报文、逐字解析、工作流程)
- 案例1:温湿度变送器模拟量采集(0x04 读输入寄存器)
- 场景说明
- 通信完整流程
- 请求报文
- 响应报文
- 案例2:电磁阀开关量控制与状态回读(0x05写单线圈+0x01读线圈)
- 场景说明
- 开阀控制请求报文(0x05)
- 状态回读请求报文(0x01)
- 案例3:变频器参数读写配置(0x03读保持寄存器+0x06写单寄存器)
- 场景说明
- 读取运行频率请求报文
- 写入50Hz频率请求报文
- 案例4:串口通信参数读取与批量配置
- 场景说明
- 寄存器映射定义
- 读取串口参数请求报文
- 读取响应报文
- 批量修改串口参数(0x10 多寄存器写入)
- 案例5:Modbus 0x2B MEI 完整固件OTA在线升级(分包传输+会话管理+收尾重启)
- 5.1 OTA基础规范
- 5.2 OTA专属子命令全集
- 5.3 全流程标准报文与详解
- 5.4 OTA核心约束与容错机制
- 五、全文统一技术总结
- 附录:Modbus 核心实用附表(工程速查)
- 附录1:不同波特率下的典型时隙数值(实用对照表)
- 附录2:寄存器与物理量极简口诀
- 附录3:Modbus 功能码 + 寄存器类型 + 现实物理参数 一一对应表
前言
本文档整合 Modbus 全部核心技术知识点,包含通信原理、寄存器模型、RTU 官方时隙标准、基础+拓展全功能码释义、五大工业落地实战案例(模拟量采集、开关量控制、变频器参数配置、串口参数读写配置、0x2B MEI 固件OTA在线升级)。覆盖工业现场调试、开发、故障排查、设备远程升级全场景,可直接作为标准技术手册使用。
问题:
1、modbus功能码与实际参数怎么对应?
2、主站连续下发请求,从站处理不过来丢帧,怎么处理?
一、Modbus 整体核心基础原理
1.1 通信架构
Modbus 为标准主从一问一答通信架构,是工业自动化领域开源免费、应用最广泛的事实通用标准,1979年由 Modicon(现施耐德电气)发布。通信规则严格固定:仅主站(上位机/PLC/工控机)主动下发请求报文,从站(仪表、传感器、变频器、IO模块)不会主动上传任何数据,全程遵循「请求→应答」机制,无请求则无通信数据。
主流通信链路适配:Modbus RTU(RS485/RS232 串口)、Modbus TCP。其中 RTU 为工业现场最常用模式。
1.2 四类核心寄存器(物理量唯一底层载体)
Modbus 所有现场物理信号、设备控制指令、设备配置参数,全部依托四类固定寄存器存储,无额外自定义存储区域,四类寄存器属性、用途、对应物理场景完全固定:
线圈 Coils(0区|1位、可读写):用于设备开关量输出控制,适配继电器通断、电磁阀开关、风机/水泵启停、阀门开关等硬件输出动作。
离散输入 Discrete Inputs(1区|1位、只读):用于外部开关量信号采集,适配急停按钮、限位开关、光电传感器、接近开关、门禁干接点等外部输入信号。
输入寄存器 Input Registers(3区|16位、只读):用于工业模拟量采集,适配温度、湿度、压力、流量、液位、电压、电流、功率、转速、介质浓度等连续变化的物理量。
保持寄存器 Holding Registers(4区|16位、可读写):设备核心配置存储区,用于存放设备运行参数、阈值参数、变频频率、温控设定值、串口通信参数、设备校准参数等可自定义修改的配置数据。
1.3 Modbus RTU 标准报文结构
Modbus RTU 无固定帧头、帧尾标识,依靠总线时隙区分报文边界,完整 ADU(应用数据单元)结构:从站地址(1字节) + 功能码(1字节) + 数据域(N字节) + CRC16校验(2字节)。
各字段作用:从站地址用于总线设备寻址、功能码定义通信行为、数据域存放读写地址/数量/设备数据、CRC16校验保证报文传输完整性,杜绝干扰导致的数据错误。
二、Modbus RTU 官方标准时隙规定(V1.02 标准版)
2.1 基础参数定义
Modbus 串口通信标准字符帧格式:1起始位 + 8数据位 + 1校验位 + 1停止位,单字符固定11bit。
单字符传输时间公式:Tchar = 11 / 波特率 (s),所有时隙阈值均基于该参数计算。
2.2 核心时隙规则
T1.5 帧内间隔:同一帧报文内部,相邻两个字节的传输间隔必须小于1.5倍 Tchar。若超时,接收端判定当前帧异常、数据残缺,直接丢弃整帧数据。作用:保证单帧报文数据连续传输。
T3.5 帧间间隔:两帧独立报文之间,总线空闲时长必须大于3.5倍 Tchar。总线满足该空闲时间,代表上一帧传输彻底结束,下一帧为全新有效报文。作用:RTU 唯一帧边界判定标准,是串口通信不丢帧、不串帧的核心。
2.3 全波特率时隙参数对照表
| 波特率 | Tchar(ms) | T1.5(ms) | T3.5(ms) | 工程建议延时 |
|---|---|---|---|---|
| 9600 | 1.146 | 1.72 | 4.01 | ≥5ms |
| 19200 | 0.573 | 0.86 | 2.00 | ≥2.5ms |
| 115200 | 0.095 | 0.143 | 0.333 | ≥0.5ms |
工程通用强制规则:波特率≥19200的高波特率场景,单片机、嵌入式设备定时器精度不足,统一固定参数:T1.5=750us,T3.5=1.75ms,规避帧粘连、误丢帧问题。
三、拓展功能码详细定义、原理、帧格式、报文示例与工程适用场景
常规 01/02/03/04/05/06/0F/10 为基础读写功能码,以下为工业设备进阶调试、诊断、升级专用拓展功能码,仅串口RTU/ASCII模式支持(绝大部分不兼容Modbus TCP),多用于设备运维、故障诊断、日志读取、固件升级、精准位控等高阶场景。本节对所有拓展功能码逐项完整拆解:原理、适用场合、标准帧结构、请求帧、响应帧、实战示例、异常应答。
3.1 0x07 读异常状态(仅串口RTU/ASCII,TCP不支持)
3.1.1 功能与原理
0x07 功能码用于快速读取从站1字节8位全局异常状态字,无需读取多个保持/输入寄存器。从站将设备电源异常、传感器故障、过温、通信异常等所有故障标志压缩在8个Bit位中,主站单帧即可完成设备健康巡检,报文短小、轮询速度极快。
3.1.2 适用场合
批量仪表巡检、分布式传感器组网、低成本从站设备故障筛查、无人值守设备在线状态监测,适合需要高频、快速判断设备是否故障的场景。
3.1.3 标准帧格式
请求帧:从站地址(1B) + 0x07(1B) + CRC(2B)
正常响应帧:从站地址(1B) + 0x07(1B) + 异常状态字节(1B) + CRC(2B)
异常响应帧:从站地址(1B) + 0x87(1B) + 异常码(1B) + CRC(2B)
3.1.4 实战报文示例
请求(读取地址01设备异常状态):01 07 94 0B
正常响应(无故障,状态0x00):01 07 00 25 08
异常响应(设备功能不支持):01 87 01 81 90,0x01代表非法功能码
3.1.5 状态字节说明
Bit0Bit7由设备厂商自定义,通用规范:Bit0=传感器故障、Bit1=电源欠压、Bit2=过温故障、Bit3=通信异常、Bit4Bit7=厂商自定义故障位。
3.2 0x08 诊断功能(仅串口)
3.2.1 功能与原理
0x08 是 Modbus 标准诊断功能码,自带多个子功能码,用于总线链路检测、通信计数器清零、错误统计。核心原理:主站下发子功能指令,从站执行对应诊断动作并返回统计数据,用于定位总线干扰、报文丢失、链路异常问题。
3.2.2 适用场合
工程现场485总线调试、间歇性掉线排查、电磁干扰定位、总线稳定性压测、设备通信计数器复位校准。
3.2.3 子功能码定义
0x00:返回查询数据(回环测试)
0x01:重启通信选项,复位所有通信计数器
0x02:返回从站诊断寄存器
0x0A:清零总线错误与消息计数器
3.2.4 标准帧格式
请求帧:从站地址(1B) + 0x08(1B) + 子功能码(2B) + 数据域(2B) + CRC(2B)
正常响应帧:从站地址(1B) + 0x08(1B) + 子功能码(2B) + 返回数据(2B) + CRC(2B)
3.2.5 实战报文示例(回环测试)
请求:01 08 00 00 12 34 76 27
响应:01 08 00 00 12 34 76 27
说明:从站原样返回用户自定义数据 0x1234,证明链路收发正常、无干扰丢包。
3.3 0x0C 读取通信事件日志(仅串口)
3.3.1 功能与原理
0x0C 用于读取从站本地固化的通信事件日志,从站长期记录总线异常:CRC校验错误、帧长度错误、帧超时、字节丢失、总线冲突等异常记录。用于回溯历史通信故障,解决偶现、难以复现的通信不稳定问题。
3.3.2 适用场合
设备长期运维故障复盘、现场干扰偶发掉线定位、老旧设备通信劣化检测、自动化产线疑难通信BUG排查。
3.3.3 标准帧格式
请求帧:从站地址(1B) + 0x0C(1B) + CRC(2B)
正常响应帧:从站地址(1B) + 0x0C(1B) + 字节数(1B) + 日志数据(NB) + CRC(2B)
3.3.4 实战报文示例
请求:01 0C 04 0E
响应:01 0C 04 00 02 00 01 3F 45
解析:设备记录2次CRC错误、1次帧超时异常,可判定现场总线存在干扰。
3.4 0x11 报告从站ID(仅串口)
3.4.1 功能与原理
0x11 功能码用于读取从站完整设备身份信息,包含:从站地址、设备厂商ID、设备型号、固件版本、设备唯一序列号。属于设备身份核验指令,无需人工查看设备铭牌,总线直接读取设备信息。
3.4.2 适用场合
现场设备批量盘点、设备替换校验、固件升级前型号匹配、陌生总线设备识别、产线设备台账自动录入。
3.4.3 标准帧格式
请求帧:从站地址(1B) + 0x11(1B) + CRC(2B)
正常响应帧:从站地址(1B) + 0x11(1B) + 数据长度(1B) + 设备ID信息(N字节) + 状态字节(1B) + CRC(2B)
3.4.4 实战报文示例
请求:01 11 77 05
响应:01 11 06 10 01 02 03 04 01 AA BB
解析:返回设备型号、固件版本、序列号信息,状态字节0x01代表设备运行正常。
3.5 0x14 / 0x15 读写文件记录
3.5.1 功能与原理
0x14 读取文件记录、0x15 写入文件记录。该组功能码不操作标准寄存器,独立读写设备内部文件分区,支持大容量、结构化数据存储,突破16位寄存器数据长度限制。
3.5.2 适用场合
生产配方读写、传感器校准系数批量存储、设备运行日志导出、故障记录保存、大批量自定义参数存储。
3.5.3 帧格式(0x14读文件)
请求:从站地址 + 0x14 + 文件号 + 记录号 + 读取记录数量 + CRC
响应:从站地址 + 0x14 + 数据长度 + 文件数据 + CRC
3.5.4 报文示例
读文件请求:01 14 00 01 00 01 00 02 XX XX
读文件响应:01 14 04 11 22 33 44 XX XX
3.6 0x16 屏蔽写寄存器
3.6.1 功能与原理
普通写寄存器会覆盖整个寄存器数值,0x16 屏蔽写寄存器可以精准修改寄存器指定Bit位,其余Bit保持不变。运算公式:新值 = (旧值 & 与掩码) | 或掩码。无需先读再写,规避多主站轮询读写冲突。
3.6.2 适用场合
设备标志位控制、故障标志清零、功能开关单独置位、指示灯状态切换、阀门细分状态控制、单Bit独立配置,不影响寄存器其他状态位。
3.6.3 标准帧格式
请求帧:从站地址(1B) + 0x16(1B) + 寄存器地址(2B) + 与掩码(2B) + 或掩码(2B) + CRC(2B)
响应帧:原样返回请求帧数据
3.6.4 实战示例
需求:仅置位0号Bit,其余位不变
请求报文:01 16 00 10 FF FE 00 01 XX XX
原理:与掩码FF FE清除Bit0,或掩码0001置位Bit0,精准单点修改位状态。
3.7 0x17 读写多寄存器
3.7.1 功能与原理
0x17 是合并读写功能码,单条报文同时完成读寄存器+写寄存器。主站下发指令,先写入指定寄存器组,再读取另一组寄存器数据,一次通信完成两次操作,减少总线轮询次数、降低通信延迟。
3.7.2 适用场合
高实时性工控场景:变频器同步控参+读状态、温控仪下发PID参数+读取温度、闭环实时控制设备。
3.7.3 标准帧格式
请求:从站地址 + 0x17 + 读起始地址(2B) + 读数量(2B) + 写字节长度(1B) + 写起始地址(2B) + 写数量(2B) + 写入数据(NB) + CRC
响应:从站地址 + 0x17 + 读取数据字节数 + 读取寄存器数据 + CRC
3.7.4 实战报文示例
请求:单帧写入参数、同时读取设备运行状态
01 17 00 00 00 02 04 00 10 00 01 13 88 XX XX
响应:01 17 04 00 64 00 0A XX XX
3.8 0x2B MEI 扩展功能码
3.8.1 功能与原理
0x2B 为 Modbus 官方标准 MEI(Modbus Encapsulated Interface)封装扩展接口,不属于基础寄存器读写功能。通过不同 MEI 类型实现设备信息读取、时间同步、私有透传、固件OTA升级,是智能设备高阶拓展能力的标准载体。
3.8.2 适用场合
智能设备身份认证、远程固件升级、设备时间校准、自定义私有协议透传、设备运维、批量设备远程维护。
3.8.3 通用帧格式
请求帧:从站地址(1B) + 0x2B(1B) + MEI类型(1B) + 子命令(1B) + 数据域(NB) + CRC(2B)
响应帧:从站地址(1B) + 0x2B(1B) + MEI类型(1B) + 子命令(1B) + 状态码(1B) + 数据域 + CRC
3.8.4 常用MEI类型
0x0E:读取设备标识信息
0x0D:自定义固件OTA升级(本文专用)
0x0F:设备时间同步
3.8.5 OTA拓展报文示例(完整复用前文规范)
开启OTA会话请求:01 2B 0D 01 00 00 00 XX XX
开启会话成功响应:01 2B 0D 01 00 00 00 XX XX
常规 01/02/03/04/05/06/0F/10 为基础读写功能码,以下为工业设备进阶调试、诊断、升级专用拓展功能码,仅部分智能仪表、嵌入式设备、高端工控设备支持。
四、五大完整工程落地案例(含完整报文、逐字解析、工作流程)
案例1:温湿度变送器模拟量采集(0x04 读输入寄存器)
场景说明
RS485总线挂载从站地址01的温湿度变送器,上位机周期性采集设备温度、湿度两组模拟量数据,数据存储在设备只读输入寄存器区域。
通信完整流程
- 总线空闲满足T3.5时隙,主站发起读取请求;2. 从站匹配地址、校验CRC、解析指令;3. 读取寄存器数据并打包响应;4. 主站校验报文、解析数值并换算物理量。
请求报文
01 04 00 00 00 02 71 CB
报文解析:01(从站地址)、04(读输入寄存器)、00 00(起始寄存器地址)、00 02(读取2个寄存器)、71 CB(CRC校验)
响应报文
01 04 04 00 1A 00 32 XX XX
报文解析:04(数据字节数)、00 1A=十进制26(温度2.6℃)、00 32=十进制50(湿度50%RH)
案例2:电磁阀开关量控制与状态回读(0x05写单线圈+0x01读线圈)
场景说明
从站地址02为电磁阀控制模块,上位机下发指令控制电磁阀启停,并回读线圈硬件状态,形成控制闭环,确认设备动作生效。
开阀控制请求报文(0x05)
02 05 00 00 FF 00 8C 09
参数释义:FF 00=线圈闭合(电磁阀开启),00 00=线圈断开(电磁阀关闭)
状态回读请求报文(0x01)
02 01 00 00 00 01 9D CA
功能:读取0号线圈实时硬件状态,校验控制指令是否执行成功。
案例3:变频器参数读写配置(0x03读保持寄存器+0x06写单寄存器)
场景说明
从站地址03为工业变频器,上位机读取设备当前运行频率,并下发指令将变频器设定频率修改为50Hz。设备运行参数、设定参数全部存储在保持寄存器。
读取运行频率请求报文
03 03 00 01 00 01 D5 CA
写入50Hz频率请求报文
03 06 00 02 13 88 XX XX
参数释义:1388(十六进制)=5000(十进制),对应频率50.00Hz,设备接收后刷新运行给定值。
案例4:串口通信参数读取与批量配置
场景说明
所有标准Modbus设备可通过内置保持寄存器存储自身串口通信参数,上位机可读写修改波特率、校验位、停止位、设备从站地址、应答超时,实现设备通信参数远程配置。参数修改后设备重启生效。
寄存器映射定义
0x0000:波特率编号(1=1200、2=2400、3=4800、4=9600、5=19200、6=115200)
0x0001:数据位、校验位、停止位组合参数
0x0002:设备Modbus从站地址
0x0003:设备应答超时时间(单位ms)
读取串口参数请求报文
01 03 00 00 00 04 44 09
读取响应报文
01 03 08 00 04 00 02 00 01 00 64 35 12
解析:当前设备波特率9600、偶校验+1停止位、从站地址1、应答超时100ms
批量修改串口参数(0x10 多寄存器写入)
修改需求:波特率115200、从站地址02、应答超时200ms,其余参数不变
写入报文:01 10 00 00 00 04 08 00 06 00 02 00 02 00 C8 XX XX
配置说明:报文下发成功后,必须重启设备,新串口参数方可生效,同时上位机需同步修改串口参数,保证通信匹配。
案例5:Modbus 0x2B MEI 完整固件OTA在线升级(分包传输+会话管理+收尾重启)
5.1 OTA基础规范
基于标准功能码0x2B,自定义专用OTA升级MEI类型:0x0D。适配Modbus RTU帧长限制,单包最大有效固件数据长度240字节。
标准完整升级流程:开启OTA会话 → 有序分包传输固件 → 结束会话完整性校验 → 重启设备进入Bootloader完成固件覆盖升级
5.2 OTA专属子命令全集
0x01:开启OTA升级会话,初始化设备升级状态
0x02:下发固件分包数据,核心传输指令
0x03:结束OTA会话,设备校验固件MD5/CRC完整性,锁定固件镜像
0x04:设备重启,跳转Bootloader执行固件升级覆盖
0x05:查询设备当前OTA升级状态(空闲/升级中/校验成功/升级失败)
5.3 全流程标准报文与详解
1、开启OTA会话
请求:01 2B 0D 01 00 00 00 XX XX
响应:01 2B 0D 01 00 00 00 XX XX(00状态码代表会话开启成功)
2、固件分包下发标准帧
标准格式:从站地址 + 0x2B + 0x0D + 0x02 + 分包序号(2字节) + 数据长度(1字节) + 固件数据(240字节) + CRC16
首包示例:01 2B 0D 02 00 01 F0 [240字节固件数据] CRC
3、结束OTA会话
请求:01 2B 0D 03 00 00 00 XX XX
功能:所有固件分包传输完成,设备自动校验固件完整性,拒绝后续新数据包写入,防止固件损坏。
4、设备重启升级
请求:01 2B 0D 04 00 00 00 XX XX
设备响应成功后延时重启,Bootloader读取备份分区新固件,覆盖运行程序,完成OTA升级。
5、查询OTA状态
请求:01 2B 0D 05 00 00 00 XX XX
5.4 OTA核心约束与容错机制
分包序号严格递增,断包、乱序包直接返回异常,支持断点续传,无需重新全量传输固件。
全程严格遵循T1.5/T3.5时隙规则,避免分包粘连、丢包,保证升级稳定性。
固件优先写入设备备份分区,不直接覆盖运行程序,升级失败自动回滚旧固件,杜绝设备变砖。
五、全文统一技术总结
Modbus RTU 通信稳定性核心依赖T1.5帧内时隙、T3.5帧间时隙,是串口报文解析、防丢帧、防串帧的核心标准。
基础功能码覆盖常规采集与控制,拓展功能码实现设备诊断、日志读取、位精准控制、文件读写、远程OTA升级等高级功能。
五大工程案例完整覆盖工业现场最常用场景:模拟量采集、开关量闭环控制、设备参数配置、串口通信参数修改、设备远程固件升级,适配99%工业Modbus落地需求。
0x2B MEI 扩展协议是智能工控设备进阶功能的核心,可实现设备身份识别、私有数据透传、远程运维与升级,是高端设备必备拓展能力。
附录:Modbus 核心实用附表(工程速查)
附录1:不同波特率下的典型时隙数值(实用对照表)
基于标准11bit字符格式(1起始位+8数据位+1校验位+1停止位)计算,附带工程落地推荐延时,适配所有RTU串口设备。
| 波特率 | Tchar(ms) | T1.5(ms) 帧内超时 | T3.5(ms) 帧间间隔 | 工程推荐延时 |
|---|---|---|---|---|
| 1200 | 9.167 | 13.75 | 32.08 | ≥35 ms |
| 2400 | 4.583 | 6.875 | 16.04 | ≥18 ms |
| 4800 | 2.292 | 3.438 | 8.02 | ≥10 ms |
| 9600 | 1.146 | 1.72 | 4.01 | ≥5 ms |
| 19200 | 0.573 | 0.86 | 2.00 | ≥2.5 ms |
| 38400 | 0.286 | 0.43 | 1.00 | ≥1.25 ms |
| 115200 | 0.095 | 0.143 | 0.333 | ≥0.5 ms |
补充工程说明:高波特率(≥19200)设备定时器精度有限,行业统一固化阈值:T1.5=750μs,T3.5=1.75ms,规避帧粘连、误丢帧、报文解析异常问题。
附录2:寄存器与物理量极简口诀
专为现场调试、快速记忆设计,全覆盖Modbus常规通信场景:
02只读开关量:所有传感器按钮、限位、急停、外部干接点全用它
01读输出状态:查看继电器、电磁阀、风机水泵当前启停状态
04只读模拟量:温度、压力、流量、液位、电压、电流、功率等采集必用
03读写参数:设备设定值、阈值、频率、校准参数、通信参数全存储于此
05/0F 写开关:单点/批量控制现场继电器、电磁阀、阀门启停
06/10 写数值:单点/批量下发设备设定参数、阈值、配方数据
场景速记总结:采模拟用04、采开关用02、控开关用05/0F、设参数用06/10、读设备状态用01、读配置参数用03
附录3:Modbus 功能码 + 寄存器类型 + 现实物理参数 一一对应表
| 功能码 | 十六进制 | 寄存器类型 | 读写属性 | 对应现实物理参数 / 现场信号 | 典型设备应用 |
|---|---|---|---|---|---|
| 01 | 0x01 | 线圈 Coils | 读 | 开关量输出状态;继电器通断、接触器启停、电磁阀开关、风机水泵运行状态、阀门开闭状态 | PLC输出模块、继电器IO模块、变频器启停端子、配电柜输出 |
| 02 | 0x02 | 离散输入 Discrete Inputs | 只读 | 外部开关量输入状态;接近开关、光电开关、限位开关、急停按钮、门禁开关、设备故障干接点 | 现场传感器、远程IO输入模块、设备故障检测、安全防护信号采集 |
| 03 | 0x03 | 保持寄存器 Holding Registers | 读 | 设备内部配置参数、运行设定值;变频器频率、温控阈值、PID参数、设备通信地址、波特率、保护限值、校准参数 | 变频器、温控仪、智能仪表、PLC、各类智能工控设备 |
| 04 | 0x04 | 输入寄存器 Input Registers | 只读 | 现场实时采集模拟物理量;温度、湿度、压力、流量、液位、电压、电流、功率、转速、介质浓度、重量 | 温湿度变送器、压力/流量传感器、电表、称重模块、水质检测仪 |
| 05 | 0x05 | 单线圈 Coil | 写 | 单点开关量控制;单点继电器吸合断开、单点电磁阀启停、单路设备开关控制 | 单点远程控制、末端执行器单点操作 |
| 06 | 0x06 | 单保持寄存器 Holding Register | 写 | 单点设备参数下发;设定运行频率、温控目标、压力报警阈值、延时时间、通信参数 | 单参数配置调试、设备单点参数校准 |
| 15 | 0x0F | 多线圈 Coils | 写 | 批量开关量控制;多路继电器、风机、水泵、阀门一次性批量启停 | 多路IO模块、配电柜批量设备控制、流水线设备联动 |
| 16 | 0x10 | 多保持寄存器 Holding Registers | 写 | 批量设备参数下发;多组PID参数、保护阈值、生产配方、通信参数批量配置 | 设备批量调试、生产线配方下载、多参数统一配置 |