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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/153726.html