DOCA0214ZH-04

Modbus 异常代码

异常响应

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

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

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

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

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

异常帧

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

字段

定义

大小

描述

1

服务器编号

1 个字节

请求的目的地址

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

2

异常功能代码

1 个字节

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

3

异常代码

n 个字节

参见下节

4

检查

2 字节

CRC16(检查传输错误)

异常代码

异常响应帧有两个令其区别于普通响应帧的字段:

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

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

下表介绍了由 ATSE 处理的异常代码:

异常代码

名称

描述

01 (0x01)

非法功能

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

02 (0x02)

非法数据地址

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

03 (0x03)

非法数据值

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

04 (0x04)

服务器设备故障

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

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

这有帮助吗?