首页/网络/工控与物联网速查/Modbus功能码的含义与使用场合
工业协议80 条

Modbus功能码的含义与使用场合

Modbus 功能码决定对哪类数据区做读写:01/02/03/04 为读类,05/06/0F/10 为写类,另有 16、17、2B 等特殊功能。在网关层按功能码做白名单可有效收紧权限,避免采集系统获得写能力。

工控与物联网速查网络更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​​‌‌​​‌‌‌​‌​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

功能码决定做什么

功能码是 Modbus 请求的第一个字节,决定对哪类数据区执行什么操作。常用功能码可分为读类与写类:读线圈、读离散输入、读保持寄存器、读输入寄存器用于采集;写单个与多个线圈、写单个与多个寄存器用于控制与参数下发;另有掩码写寄存器、读写多个寄存器与设备识别等特殊功能。理解功能码的实际意义是:在网关或防火墙上限制可用功能码,本身就是一种有效的访问控制。

常用功能码

0x01 读线圈读取开关量输出状态
0x02 读离散输入读取开关量输入状态
0x03 读保持寄存器读取可写参数与设定值
0x04 读输入寄存器读取测量值
0x05 写单个线圈控制单个开关量
0x06 写单个寄存器写单个参数
0x0F 写多个线圈批量控制开关量
0x10 写多个寄存器批量下发参数
0x16 掩码写寄存器按位修改寄存器内容
0x17 读写多个寄存器一次完成读与写
0x2B 设备识别读取设备信息,子功能区分用途

读类与写类的用法

类别功能码使用场合注意
读开关量01、02状态采集与画面显示区分只读区与可读写区
写开关量05、0F设备启停与阀门控制写操作应有授权与审计
读寄存器03、04测量值、参数与状态读取注意数据类型与字节序
写寄存器06、10、16参数下发与设定值修改写操作影响物理行为,需审批
组合操作17需要读改写连续进行部分设备不支持复杂功能码

使用与限制建议

  • 采集只使用读类功能码,写类功能码单独授权并记录
  • 设备对不支持的功能码返回异常码 01,属于正常的保护行为
  • 批量读取要遵守各功能码的单次数量上限,具体数值以协议规范为准
  • 掩码写等复杂功能码并非所有设备支持,上线前需实测
  • 在网络侧尽量按功能码做白名单,只放行业务必需的操作
只限制端口不限制功能码是常见的防护缺口:放行 502 端口就等于允许设备支持的读写类功能码。具备协议级过滤能力的工业防火墙或网关可以把限制收敛到功能码与地址范围。
写类功能码直接影响物理过程:一条 0x10 指令可一次改动多个寄存器。默认把写类功能码一并开放给采集系统,是工控环境里比较危险的权限设计。

易错点

  • 放行端口即视为放行全部操作:采集系统实际获得写类功能码能力
  • 用 0x10 批量写入代替逐点确认:一次误写影响多个参数,故障定位困难
  • 忽略单次数量上限:超限请求被拒绝或设备异常,采集出现周期性失败
  • 依赖不支持的功能码做设备识别:部分设备返回异常码,导致资产信息不完整
  • 不区分读类与写类的日志:出现问题后无法从记录中还原是否发生过写操作

数据来源与参考

  • Modbus 应用协议规范(Modbus Organization)
  • Modbus over Serial Line 规范
  • IEC 62443-3-3:使用控制与受限数据流要求

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/ics/modbus-function-codes.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​​‌‌​​‌‌‌​‌​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​