DOCA0108ZH-03

Modbus 异常代码

异常响应

客户端或服务器中的任何一方出现异常响应,都会导致数据处理错误。在客户端发出请求以后,可能出现以下事件中的一种:

  • 如果服务器从客户端接收了请求,其中没有出现通讯错误,并且正确处理了请求,那么它会返回一个正常响应。

  • 如果服务器因为通讯错误而没有从客户端接收到请求,那么服务器不会返回响应。客户端程序最终会为请求处理一个超时条件。

  • 如果服务器从客户端接收到请求但检测到通讯错误,那么服务器不会返回响应。客户端程序最终会为请求处理一个超时条件。

  • 如果服务器从客户端接收了请求,其中没有出现通信错误,但是无法处理它(比如该请求是读取一个不存在的寄存器),那么服务器会返回一个异常响应,以通知客户端出现了何种错误。

异常帧

服务器向客户端发送了异常帧,以报告异常响应。一个异常帧包括四个域:

字段

定义

大小

描述

1

服务器编号

1 个字节

请求的目的地址

  • 0:广播(涉及到所有服务器)

  • 1–247: 唯一的目的地址

2

异常功能代码

1 个字节

请求功能代码 +128 (0x80)

3

异常代码

n 个字节

请参阅 异常代码

4

检查

2 字节

CRC16(检查传输错误)

异常代码

异常响应帧有 2 个字段与普通响应帧不同:

  • 异常响应的异常功能代码等于原请求的功能代码加上 128 (0x80)。

  • 异常代码取决于服务器所遇到的通讯错误。

下表介绍了由断路器处理的异常代码:

异常代码

名称

说明

01 (0x01)

非法功能

请求所收到的功能代码并非服务器的授权操作。服务器可能处于错误状态,无法处理特定请求。

02 (0x02)

非法数据地址

服务器接收的数据地址不是服务器的授权地址。

03 (0x03)

非法数据值

请求数据字段中的值并非服务器的授权值。

04 (0x04)

服务器设备故障

由于存在不可逆的错误,服务器未能执行所请求的操作。

05 (0x05)

确认

服务器接受了请求,但是需要较长的时间来处理它。

06 (0x06)

服务器设备繁忙

服务器忙于处理另一个命令。客户端应在服务器可用的情况下发送请求。

07 (0x07)

否定确认

服务器无法执行客户端发送的编程请求。

08 (0x08)

存储器奇偶校验错误

服务器在读取扩展存储器的时候从存储器中检测到奇偶校验错误。

10 (0x0A)

网关通道不可用

网关过载,或者没有正确配置。

11 (0x0B)

网关目标设备未能晌应

网络中不存在此服务器。

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

这有帮助吗?