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 网关目标设备响应失败。与网关一起使用,指示没有从目标设备中获得响应。通常意味着设备未在网络中。

地址信息:

经验分享 程序员 微信小程序 职场和发展