有效功能码说明(十进制)
功能码
说明
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
网关目标设备响应失败。与网关一起使用,指示没有从目标设备中获得响应。通常意味着设备未在网络中。