hixon 发表于 2021-7-1 09:46:21

Modbus功能码和错误码

本帖最后由 hixon 于 2021-7-1 10:19 编辑

1、功能码:


数据类型功能描述功能码(10进制)功能码(16进制)异常功能码
8比特访问物理离散量输入读输入离散量020x020x82
内部比特或者物理线圈读单个/多个线圈010x010x81
写单个线圈050x050x85
写多个线圈150x0F0x8F

16比特访问输入存储器读输入寄存器040x040x84
内部存储器或物理输出存储器(保持寄存器)读多个寄存器030x030x83
写单个寄存器060x060x86
写多个寄存器160x100x90
读/写多个寄存器(先写后读)230x170x97
掩码写寄存器220x160x96

文件记录访问读文件记录200x14

写文件记录210x15

2、错误码:

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

页: [1]
查看完整版本: Modbus功能码和错误码