DOCA0172ZH-09

Modbus TCP/IP 和 Modbus-SL 异常代码

异常响应

来自客户端或服务器的异常响应可能缘于数据处理错误。在客户端发出请求以后,可能出现以下事件中的一种:

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

  • 如果服务器因为通讯错误而没有从客户端接收到请求,那么服务器不会返回响应。通过对请求应用延时条件,来终止客户端程序。

  • 如果服务器从客户端接收到请求但检测到通讯错误,那么服务器不会返回响应。通过对请求应用延时条件,来终止客户端程序。

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

异常帧

服务器向客户端发送了异常帧,以指示异常响应。异常响应包含四个字段:

字段

定义

大小

1

服务器编号

1 个字节

2

异常功能代码

1 个字节

3

异常代码

n 个字节

4

检查

2 个字节

管理 Modbus 异常

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

  • 异常功能代码相当于原始请求功能代码加上 128 (0x80)。

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

下表介绍了由 EcoStruxure Panel Server 的无线设备管理的异常代码:

异常代码

名称

描述

01

非法功能

在请求中接收的功能代码不是服务器的允许操作。可能服务器的状态不适合处理特定请求。

02

非法数据地址

服务器接收的数据地址不是服务器的允许地址。

03

非法数据值

在请求数据字段中的值不是服务器的允许值。

04

服务器设备故障

由于存在不可恢复的错误,服务器无法执行所需的操作。

06

服务器设备繁忙

服务器忙于处理另一个命令。客户端应在服务器空闲时发送请求。

注: 如需了解更多信息,请参阅 www.modbus.org 上的 Modbus 协议详细说明。

访问变量

Modbus 变量具有以下属性:

  • 只读

  • 读/写

  • 只写

注: 若尝试对只读变量执行写操作,会生成异常响应。
QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

这有帮助吗?