Leave Your Message
新闻类别
专题新闻

Modbus 功能码/异常功能码/错误码

2026-04-09

Modbus Modbus 是一种广泛应用于电子设备通信的串行通信协议,尤其适用于工业环境。它支持多种数据传输模式,包括 ASCII 和 RTU(远程终端单元)。该协议通过功能码实现各种操作,例如读取保持寄存器、写入单个寄存器以及监控输入状态。此外,Modbus 还定义了一组异常码和错误码,用于处理数据交换过程中的通信错误或异常情况。

Ⅰ.功能码

‌01 (0x01)‌ - 读取持有登记簿

‌02 (0x02)‌ - 读取输入寄存器

‌03 (0x03)‌ - 读取持有登记簿

‌04 (0x04)‌ - 读取输入寄存器

‌05 (0x05)‌ - 强制单寄存器

‌06 (0x06)‌ - 预设多个寄存器

15 (0x0F) - 强制多个寄存器

16 (0x10) - 报表服务器 ID

22 (0x16) - 掩码写入寄存器

‌23 (0x17)‌ - 读/写多个寄存器

24 (0x18) - 读取 FIFO 队列

26 (0x1A) - 诊断寄存器

图片1.jpg

二、异常代码

当请求无法执行时,Modbus 设备会返回一个包含异常功能码的异常响应。通常,异常功能码出现在响应的第一个字节中,紧随其后的是实际的代码值。

0x01 - 非法函数

0x02 - 数据地址

0x03 - 数据值

0x04 - 从设备故障

0x05 - 确认

0x06 - 从设备忙

0x07 - 网关路径不可用

0x08 - 目标设备无响应

图片2.jpg

三、错误代码

实际上,除了异常功能码之外,还可能出现其他类型的错误代码,尤其是在硬件或软件层面。这些错误可能源于 Modbus 协议的实现细节、物理连接问题、电磁干扰或其他硬件故障。例如:

①CRC 错误:在 RTU 模式下,CRC 校验和失败表示传输过程中可能存在数据损坏。

②设备无响应:尝试与从设备通信时,如果未收到响应,则可能表明设备出现故障、连接问题或配置错误。

③过载/超时:尝试执行操作时,如果设备由于负载过大或处理时间过长而未能及时响应,则可能会发生超时错误。

图片3.jpg

故障排除步骤:

①检查连接:确保所有连接正确且无物理损坏。

②测试从站设备:使用各种工具或基本 Modbus 命令验证设备的响应能力。

③配置验证:确保Modbus地址、波特率和其他配置设置正确。

④软件和固件更新:确保所有相关设备都具有最新的软件和固件版本。

⑤电磁干扰测试:在可能出现电磁干扰的区域使用屏蔽电缆或滤波器。

上述方法能够有效诊断和解决在 Modbus 协议实施过程中遇到的问题。