Modbus通信协议常见错误码及处理措施

Modbus协议定义了一系列的错误码(也称异常码),用来指示在执行Modbus请求时可能发生的错误情况。这些错误码可以帮助诊断通信问题,并且在接收到异常响应时进行适当的错误处理。

错误码

处理措施

1.验证功能码

2.检查地址码

3.检查数据

4.检查通讯接口

5.检查通讯参数

6.检查报文内容

7.使用调试工具

8.重试机制

9.错误日志记录


错误码

错误码

描述

0x01

非法功能 (Illegal Function)

0x02

非法数据地址 (Illegal Data Address)

0x03

非法数据值 (Illegal Data Value)

0x04

设备故障 (Slave Device Failure)

0x05

设备忙 (Acknowledge)

0x06

负号应答 (Negative Acknowledge)

0x07

内存区保留 (Memory Parity Error)

0x08

Gateway路径不存在 (Gateway Path Not Available)

0x0A

Gateway目标失败 (Target Device Failed to Respond)

0x01 (1) - 非法功能,请求的功能未被从设备识别或不支持。

0x02 (2) - 非法数据地址,数据地址不在设备的可访问范围内。

0x03 (3) - 非法数据值,请求的操作尝试设置一个无效或非法的值。

0x04 (4) - 从设备故障,未知的设备故障。

0x05 (5) - 从设备繁忙,设备正在执行另一个任务,无法立即响应请求。

0x06 (6) - 负号应答,请求的操作不能被执行,因为它是非法的(例如试图清除一个只读存储区)。

0x08 (8) - 内存溢出,执行请求时内存溢出。

0x0A (10) - 通讯超时,请求超出了允许的时间限制。

0x0B (11) - 从设备内部操作失败,设备内部发生了一个错误。

0x0C (12) - 从设备不支持此功能,设备不支持请求的功能。

0x0D (13) - 从设备不支持此数据类型,设备不支持请求的数据类型。

0x0E (14) - 从设备不支持此数据地址,设备不支持请求的数据地址。

0x0F (15) - 从设备不支持此数据长度,设备不支持请求的数据长度。


处理措施

1.验证功能码

检查发送的功能码是否正确,是否与设备上安装的Modbus协议版本匹配。如果不匹配,可以尝试升级或降级Modbus协议版本,以使功能码与设备上安装的Modbus协议版本匹配。

序号

功能码

描述

请求数据

预期响应

实际响应

测试结果

1

0x01

读取线圈状态

地址: 0x0000, 数量: 10

状态: [0x01, 0x00, ...]

-

成功/失败

2

0x02

读取离散输入

地址: 0x0000, 数量: 10

状态: [0x01, 0x00, ...]

-

成功/失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下一次春天見

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值