有效功能码说明(十进制)

功能码说明
01读取线圈状态
02读取输入状态
03读取保持寄存器
04读取输入寄存器
05强置单线圈
06预置单寄存器
07读取异常状态
08回送诊断校验
09编程(只用于484)
10控询
11读取事件计数
12读取通信事件记录
13编程(184/384/484/584等)
14探寻
15强置多线圈
16预置多线圈
17报告多寄存器
18可使主机模拟编程功能
19重置通信链路
20读取通用参数
21写入通用参数
22屏蔽写寄存器
23读/写多个寄存器
43读设备别识码
22-42, 44-64保留作为扩展功能
65-72保留以备用功能所用
73-119非法功能
120-127保留,留作内部作用
128-255保留,用于异常应答

异常响应

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

  • 如果从设备(服务器)从主设备(客户端)接收了请求,其中没有出现通讯错误,并且正确处理了请求,那么它会返回一个正常晌应。
  • 如果从设备(服务器)因为通讯错误而没有从主设备(客户端)接收请求,那么它不会返回晌应。主设备程序最终会为请求处理一个超时条件。
  • 如果从设备(服务器)从主设备(客户端)接收了请求,但是检测到了一个通讯错误,那么它不会返回晌应。主设备程序最终会为请求处理一个超时条件。
  • 如果从设备(服务器)从主设备(客户端)接收了请求,其中没有出现通讯错误,但是无法处理它(比如该请求是读取一个不存在的寄存器),那么从设备就会返回一个异常晌应,以通知主设备出现了何种错误。

异常帧

从设备向主设备发送了一个异常帧,以报告异常晌应。一个异常帧包括四个域:

定义大小说明
1从设备号1 个字节请求的目的地址1–247:唯一的目的地址
2异常功能代码1 个字节请求功能代码 +128 (0x80)
3异常代码n 字节参见下节
4检查2 字节CRC16(检查传输错误)

异常代码

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

  • 异常晌应的异常功能代码等于原请求的功能代码加上 128 (0x80)。
  • 异常代码取决于从设备所遇到的通讯错误。

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

异常代码名称说明
01 (0x01)非法功能在请求中接收的功能代码不是从设备的一个授权操作。从设备可能处于错误状态,无法处理特定请求。
02 (0x02)非法数据地址从设备接收的数据地址不是从设备的一个授权地址。
03 (0x03)非法数据值在请求数据栏中的数值不是从设备的一个授权值。
04 (0x04)从设备故障从设备未能执行一个请求的操作,因为出现了一个无法修复的错误。
05 (0x05)确认从设备接受了请求,但是需要较长的时间来处理它。
06 (0x06)从设备繁忙从设备忙于处理另一个命令。主设备必须在从设备空闲后发送请求。
07 (0x07)否定确认从设备无法执行主设备发送的编程请求。
08 (0x08)存储器奇偶校验错误从设备在尝试读取扩展存储器的时候从存储器中检测到一个奇偶校验错误。
10 (0x0A)网关通道不可用网关过载,或者没有正确配置。
11 (0x0B)网关目标设备未能晌应在网络中不存在从设备。

相关新闻

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

邮箱

cloud@modbus.cn

QQ
QQ
微信
微信
SHARE
TOP