Skip to content

Modbus 功能码对照表

Modbus 功能码对照表是 Modbus 协议中最核心的重要内容之一。Modbus 功能码(Function Code)用于告诉从站设备要执行何种操作,是所有 Modbus 通讯中必不可少的参数。本页整理最常用的 Modbus 功能码、对应的读写能力、典型场景与示例,适合开发、运维与系统集成工程师参考。

🔍 Modbus 功能码是什么?

Modbus 功能码用于指定从站执行的操作类型,是所有 Modbus 指令的基础。常见的 Modbus 功能码包括:

  • 读取线圈(Read Coils)
  • 读取输入寄存器
  • 写单个寄存器
  • 写多个保持寄存器

任何一次 Modbus 数据操作都必须同时指定 Modbus 功能码 + 寄存器地址 才能正确完成读写,因此理解 Modbus 功能码对照表至关重要。

📌 Modbus 功能码对照表

功能码(Hex)操作类型说明常用场景
0x01Read Coils读取线圈(开关量输出)读取或监控开关状态
0x02Read Discrete Inputs读取离散输入读取传感器开关量输入
0x03Read Holding Registers读取保持寄存器读取测量值、运行状态
0x04Read Input Registers读取输入寄存器读取只读类传感数据
0x05Write Single Coil写单个线圈控制继电器或启停操作
0x06Write Single Register写单个保持寄存器设置设备参数或阈值
0x0F (15)Write Multiple Coils写多个线圈同时控制多路 DO 输出
0x10 (16)Write Multiple Registers写多个保持寄存器批量下发配置与参数

以上表格是最标准、最常见的 Modbus 功能码对照表,用于快速查找每个功能码的能力与适配场景。

🧭 使用时的典型组合示例

下表展示了常见的操作类型与对应的 Modbus 功能码组合:

操作需求使用功能码示例地址
读取温度值0340001(保持寄存器)
读取电压、电流0430001(输入寄存器)
控制继电器闭合0500001(线圈)
下发多个参数1640010–40020

这些场景都是基于 Modbus 功能码对照表中功能码与寄存器类型的匹配关系。

🛠 完整指令示例

以下示例进一步展示 Modbus 功能码在真实操作中的使用方式。

读取 2 个保持寄存器:

功能码:03
起始地址:0x000A
寄存器数量:0x0002

写单个寄存器(设定阈值):

功能码:06
寄存器地址:0x0010
写入值:0x00FA

这些示例均体现了“选择正确的 Modbus 功能码”在实际读写过程中的关键作用。

⭐ 总结

  • Modbus 功能码决定设备要执行的具体操作
  • 地址决定对 Modbus 数据区中的哪个位置操作
  • 常见组合:03 + 保持寄存器、04 + 输入寄存器、05 + 线圈
  • 使用错误的 Modbus 功能码会导致读写失败或设备报错

理解并正确使用 Modbus 功能码对照表,可以让设备接入、调试与工程配置更加高效、可靠。

📚 相关文档