Modbus功能码及错误码说明

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

功能码说明
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 保留,用于异常应答

异常码说明

ExceptionCode: Function Code的最左边Bit设定为 1

举例:86 01,功能码06最左边Bit设定为1,即为86

ErrorCode参照下表

Modbus错误码(10进制)

功能码说明
01 非法功能。对于服务器(或从站)来说,询问中接收到的功能码是不可允许的操作,可能是因为功能码仅适用于新设备而被选单元中不可实现同时,还指出服务器(或从站)在错误状态中处理这种请求,例如:它是未配置的,且要求返回寄存器值。
02 非法数据地址。对于服务器(或从站)来说,询问中接收的数据地址是不可允许的地址,特别是参考号和传输长度的组合是无效的。对于带有100个寄存器的控制器来说,偏移量96和长度4的请求会成功,而偏移量96和长度5的请求将产生异常码02。
03 非法数据值。对于服务器(或从站)来说,询问中包括的值是不可允许的值。该值指示了组合请求剩余结构中的故障。例如:隐含长度是不正确的。modbus协议不知道任何特殊寄存器的任何特殊值的重要意义,寄存器中被提交存储的数据项有一个应用程序期望之外的值。
04 从站设备故障。当服务器(或从站)正在设法执行请求的操作时,产生不可重新获得的差错。
05 确认。与编程命令一起使用,服务器(或从站)已经接受请求,并且正在处理这个请求,但是需要长持续时间进行这些操作,返回这个响应防止在客户机(或主站)中发生超时错误,客户机(或主机)可以继续发送轮询程序完成报文来确认是否完成处理。
06 从属设备忙。与编程命令一起使用。服务器(或从站)正在处理长持续时间的程序命令。张服务器(或从站)空闲时,用户(或主站)应该稍后重新传输报文。
08 存储奇偶差错。与功能码20和21以及参考类型6一起使用,指示扩展文件区不能通过一致性校验。服务器(或从站)设法读取记录文件,但是在存储器中发现一个奇偶校验错误。客户机(或主方)可以重新发送请求,但可以在服务器(或从站)设备上要求服务。
10 不可用网关路径。与网关一起使用,指示网关不能为处理请求分配输入端口至输出端口的内部通信路径。通常意味着网关是错误配置的或过载的。
11 网关目标设备响应失败。与网关一起使用,指示没有从目标设备中获得响应。通常意味着设备未在网络中。

转载于:https://my.oschina.net/robin3d/blog/2245715

posted @ 2022-07-27 17:10  lnsane-G  阅读(2906)  评论(0编辑  收藏  举报