10.5.13
(0x11)报告从站ID(仅用于串行链路)
1. 功能说明
17功能码用于读取从站设备的ID、类型描述、当前状态以及其他信息,不支持广播模式。响应消息的构成依赖于设备而不尽相同。
2. 查询报文
查询报文中不包含请求数据字段。举例说明,从站设备地址为5,获取相关信息,如下表所示。
功能码17查询报文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
帧头 | “:” | ||
从设备地址 | 0x05 | “0”,“5” | 0x05 |
功能码 | 0x11 | “1”,“1” | 0x11 |
差错校验 | LRC(2字符) | CRC(2字节) | |
帧尾 | CR/LF | ||
合计字节数 | 9 | 4 |
3. 响应报文
对于从设备,在正常情况下,响应报文包括从站ID、运行状态以及其他附加信息,如下表所示。运行状态字段占用1字节,且0x00=OFF,0xFF=ON,而响应报文的组成则由开发者决定。
功能码17响应报文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
帧头 | “:” | ||
从设备地址 | 0x05 | “0”,“5” | 0x05 |
功能码 | 0x11 | “1”,“1” | 0x11 |
字节数 | 设备相关 | 设备相关 | 设备相关 |
从设备ID | 设备相关 | 设备相关 | 设备相关 |
运行状态 | 0xFF | “F”,“F” | 0xFF |
附加情报1 | 设备相关 | 设备相关 | 设备相关 |
…… | 设备相关 | 设备相关 | 设备相关 |
差错校验 | LRC(2字符) | CRC(2字节) | |
帧尾 | CR/LF | ||
合计字节数 | 17 | 8 |
10.5.14
Modbus异常响应
以上介绍了一些常见的公共功能码的报文(消息顿)构成,广播模式以外的查询报文都希望能够获取一个正常的响应报文。在通常情况下,从站设备将返回一个正常响应报文,但是在某些特殊情况下将返回异常响应报文。
对于查询报文,存在以下4种处理反馈:
①正常接收,正常处理,返回正常响应报文。
②因为通信错误等原因造成从站设备没有接收到查询报文,主站设备将按超时处理:从站设备接收到的查询报文存在通信错误(如LRC、CRC错误等),此时从站设备将丢弃报文不响应,主站设备将按超时处理。
③从站设备接收到正确的报文,但是超过处理范围(如不存在的功能码或者寄存器等),此时从站设备将返回包含异常码(Exception Code)的响应报文。
④异常响应报文由从站地址、功能码以及异常码构成。其中,功能码与正常响应报文不同,在异常响应报文中,功能码最高位(即MSB)被设置为1。因为Modbus协议中的功能码占用1字节故用表达式描述为:
异常功能码=正常功能码+0x80
举例说明,如下表所示,查询报文的起始地址为0x012C(十进制300),即需要读取寄存器地址为30301开始的值。若从站设备中不存在输入寄存器30301,则从站设备将返回一个异常响应报文,参见下表的功能码和异常码。
异常响应示例(功能码04查询报文):
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
帧头 | “:” | ||
从设备地址 | 0x07 | “0”,“7” | 0x07 |
功能码 | 0x04 | “0”,“4” | 0x04 |
起始地址 (高位) |
0x01 | “0”,“1” | 0x01 |
起始地址 (低位) |
0x2c | “2”,“c” | 0x2c |
寄存器数 (高位) |
0x00 | “0”,“0” | 0x00 |
寄存器数 (低位) |
0x03 | “0”,“3” | 0x03 |
差错校验 | LRC(2字符) | CRC(2字节) | |
帧尾 | CR/LF | ||
合计字节数 | 17 | 8 |
异常响应示例(功能码04响应报文):
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
帧头 | “:” | ||
从设备地址 | 0x07 | “0”,“7” | 0x07 |
功能码 | 0x84 | “8”,“4” | 0x84 |
异常码 | 0x02 | “0”,“2” | 0x02 |
差错校验 | LRC(2字符) | CRC(2字节) | |
帧尾 | CR/LF | ||
合计字节数 | 11 | 5 |
常见的异常码如下表所示:
常见异常码说明:
异常码 | 名称 | 说明 |
01 | 非法功能码 | 从站设备不支持此功能码 |
02 | 非法数据地址 | 指定的数据地址在从站设备中不存在 |
03 | 非法数据值 | 指定的数据超过范围或者不允许使用 |
04 | 从站设备故障 | 从站设备处理响应的过程中出现未知错误等 |
全部0条评论
快来发表一下你的评论吧 !