NDB5E Document

Smart B5E


附:《Modbus协议》 简要文档

<p>[TOC]</p> <h1>Modbus 协议简要说明</h1> <p>Modbus是总线模式工作,所有设备连在一个总线上,每个设备都能监听到总线上的信号; 1、主从工作方式,总线中只有一个主机; 2、主机通常采用一问一答的方式工作,从机设备通过地址标识来区分是否需要处理; 3、主机也可以使用广播地址要求每个设备处理,但广播方式从机不应答;</p> <h2>1 报文字段</h2> <p>以一个查询请求的报文举例(HEX):03 03 00 01 00 03 55 E9</p> <table> <thead> <tr> <th>地址</th> <th>功能码</th> <th>变量起始地址</th> <th></th> <th>变量个数</th> <th></th> <th>校验码</th> <th></th> </tr> </thead> <tbody> <tr> <td></td> <td></td> <td>高字节</td> <td>低字节</td> <td>高字节</td> <td>低字节</td> <td>高字节</td> <td>低字节</td> </tr> <tr> <td>03</td> <td>03</td> <td>00</td> <td>01</td> <td>00</td> <td>03</td> <td>55</td> <td>E9</td> </tr> </tbody> </table> <p>1)地址(Address)域</p> <p>由8位(0-64)组成,设备的地址必须是唯一的; 0号地址代表网关地址,主机可以通过0号地址获取网关信息。</p> <p>2)功能(Functon)域</p> <table> <thead> <tr> <th>代码</th> <th>意义</th> <th>行为</th> </tr> </thead> <tbody> <tr> <td>0x03</td> <td>读寄存器</td> <td>获得一个或多个寄存器的当前二进制值</td> </tr> <tr> <td>0x06</td> <td>写单个寄存器</td> <td>放置一个特定的二进制值到一个单寄存器中</td> </tr> <tr> <td>0x10</td> <td>写多个寄存器</td> <td>放置特定的二进制值到一系列多寄存器中</td> </tr> </tbody> </table> <p>3)数据域 数据域包含了终端执行特定功能所需要的下发给从机的数据,或者从机响应查询的数据。</p> <p>4)错误校验域 为避免数据在传输中,电噪声等干扰引起传输错误,加入帧CRC校验码,使用16位循环冗余的方法。循环冗余校验(CRC)域占用两个字节。 [见:校验码算法](<a href="https://www.showdoc.com.cn/NDB5EGW/10962909844967028">https://www.showdoc.com.cn/NDB5EGW/10962909844967028</a> &quot;校验码算法&quot;)</p> <h2>2 交互报文</h2> <h3> 2.1 读数据(功能码0x03)</h3> <p>主站向从站发送读取多个变量数值的命令(即查询),从站在收到命令之后向主站发送所需的变量数值(即响应),报文的格式如下表2-2。</p> <table> <thead> <tr> <th>请求报文</th> <th></th> <th></th> <th>正常响应报文</th> <th></th> <th></th> <th>异常响应报文</th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>字节号</td> <td>名称</td> <td>数值</td> <td>字节号</td> <td>名称</td> <td>数值</td> <td>字节号</td> <td>名称</td> <td>数值</td> </tr> <tr> <td>1</td> <td>从站地址</td> <td>0-247</td> <td>1</td> <td>从站地址</td> <td>0-247</td> <td>1</td> <td>从站地址</td> <td>0-247</td> </tr> <tr> <td>2</td> <td>功能码</td> <td>0x03</td> <td>2</td> <td>功能码</td> <td>0x03</td> <td>2</td> <td>差错码</td> <td>0x83</td> </tr> <tr> <td>3</td> <td>变量起始地址高字节</td> <td>xx</td> <td>3</td> <td>字节数</td> <td>N*2</td> <td>3</td> <td>异常码</td> <td>xx</td> </tr> <tr> <td>4</td> <td>变量起始地址低字节</td> <td>xx</td> <td>4</td> <td>第一个变量数值高字节</td> <td>xx</td> <td>4</td> <td>CRC校验低字节</td> <td>xx</td> </tr> <tr> <td>5</td> <td>变量个数高字节</td> <td>0</td> <td>5</td> <td>第一个变量数值低字节</td> <td>xx</td> <td>5</td> <td>CRC校验高字节</td> <td>xx</td> </tr> <tr> <td>6</td> <td>变量个数低字节</td> <td>N</td> <td>…</td> <td>……</td> <td>…</td> </tr> <tr> <td>7</td> <td>CRC校验低字节</td> <td>xx</td> <td>…</td> <td>……</td> <td>…</td> </tr> <tr> <td>8</td> <td>CRC校验高字节</td> <td>xx</td> <td>2N + 2</td> <td>最后一个变量数值高字节</td> <td>xx</td> </tr> <tr> <td>2N + 3</td> <td>最后一个变量数值低字节</td> <td>xx</td> </tr> <tr> <td>2N + 4</td> <td>CRC校验低字节</td> <td>xx</td> </tr> <tr> <td>2N + 5</td> <td>CRC校验高字节</td> <td>xx</td> </tr> </tbody> </table> <p>注:1≤N≤125</p> <h3> 2.2 写单寄存器(功能码0x06)</h3> <table> <thead> <tr> <th>请求报文</th> <th></th> <th></th> <th>正常响应报文</th> <th></th> <th></th> <th>异常响应报文</th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>字节号</td> <td>名称</td> <td>数值</td> <td>字节号</td> <td>名称</td> <td>数值</td> <td>字节号</td> <td>名称</td> <td>数值</td> </tr> <tr> <td>1</td> <td>从站地址</td> <td>0-247</td> <td>1</td> <td>从站地址</td> <td>0-247</td> <td>1</td> <td>从站地址</td> <td>0-247</td> </tr> <tr> <td>2</td> <td>功能码</td> <td>0x06</td> <td>2</td> <td>功能码</td> <td>0x06</td> <td>2</td> <td>差错码</td> <td>0x86</td> </tr> <tr> <td>3</td> <td>变量起始地址高字节</td> <td>xx</td> <td>3</td> <td>变量起始地址高字节</td> <td>xx</td> <td>3</td> <td>异常码</td> <td>xx</td> </tr> <tr> <td>4</td> <td>变量起始地址低字节</td> <td>xx</td> <td>4</td> <td>变量起始地址低字节</td> <td>xx</td> <td>4</td> <td>CRC校验低字节</td> <td>xx</td> </tr> <tr> <td>5</td> <td>变量数值高字节</td> <td>xx</td> <td>5</td> <td>变量数值高字节</td> <td>xx</td> <td>5</td> <td>CRC校验高字节</td> <td>xx</td> </tr> <tr> <td>6</td> <td>变量数值低字节</td> <td>xx</td> <td>6</td> <td>变量数值低字节</td> <td>xx</td> </tr> <tr> <td>7</td> <td>CRC校验低字节</td> <td>xx</td> <td>7</td> <td>CRC校验低字节</td> <td>xx</td> </tr> <tr> <td>8</td> <td>CRC校验高字节</td> <td>xx</td> <td>8</td> <td>CRC校验高字节</td> <td>xx</td> </tr> </tbody> </table> <h3>2.3 写多个寄存器(功能码0x10)</h3> <table> <thead> <tr> <th>请求报文</th> <th></th> <th></th> <th>正常响应报文</th> <th></th> <th></th> <th>异常响应报文</th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>字节号</td> <td>名称</td> <td>数值</td> <td>字节号</td> <td>名称</td> <td>数值</td> <td>字节号</td> <td>名称</td> <td>数值</td> </tr> <tr> <td>1</td> <td>从站地址</td> <td>0-247</td> <td>1</td> <td>从站地址</td> <td>0-247</td> <td>1</td> <td>从站地址</td> <td>0-247</td> </tr> <tr> <td>2</td> <td>功能码</td> <td>0x10</td> <td>2</td> <td>功能码</td> <td>0x10</td> <td>2</td> <td>差错码</td> <td>0x90</td> </tr> <tr> <td>3</td> <td>变量起始地址高字节</td> <td>xx</td> <td>3</td> <td>变量起始地址高字节</td> <td>xx</td> <td>3</td> <td>异常码</td> <td>xx</td> </tr> <tr> <td>4</td> <td>变量起始地址低字节</td> <td>xx</td> <td>4</td> <td>变量起始地址低字节</td> <td>xx</td> <td>4</td> <td>CRC校验低字节</td> <td>xx</td> </tr> <tr> <td>5</td> <td>变量个数高字节</td> <td>0</td> <td>5</td> <td>变量个数高字节</td> <td>0</td> <td>5</td> <td>CRC校验高字节</td> <td>xx</td> </tr> <tr> <td>6</td> <td>变量个数低字节</td> <td>N</td> <td>6</td> <td>变量个数低字节</td> <td>N</td> </tr> <tr> <td>7</td> <td>字节数</td> <td>N*2</td> <td>7</td> <td>CRC校验低字节</td> <td>xx</td> </tr> <tr> <td>8</td> <td>第一个变量数值高字节</td> <td>xx</td> <td>8</td> <td>CRC校验高字节</td> <td>xx</td> </tr> <tr> <td>9</td> <td>第一个变量数值低字节</td> <td>xx</td> </tr> <tr> <td>…</td> <td>……</td> <td>…</td> </tr> <tr> <td>…</td> <td>……</td> <td>…</td> </tr> <tr> <td>2N + 6</td> <td>最后一个变量数值高字节</td> <td>xx</td> </tr> <tr> <td>2N + 7</td> <td>最后一个变量数值低字节</td> <td>xx</td> </tr> <tr> <td>2N + 8</td> <td>CRC校验低字节</td> <td>xx</td> </tr> <tr> <td>2N + 9</td> <td>CRC校验高字节</td> <td>xx</td> </tr> </tbody> </table> <p>注:1≤N≤123</p> <h2> 3 异常码</h2> <table> <thead> <tr> <th>序号</th> <th>值</th> <th>说明</th> <th>备注</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>1</td> <td>无效功能码</td> </tr> <tr> <td>2</td> <td>2</td> <td>无效地址</td> </tr> <tr> <td>3</td> <td>3</td> <td>无效数据</td> </tr> <tr> <td>4</td> <td>4</td> <td>无权限</td> <td>控制锁定/需超级密码</td> </tr> <tr> <td>5</td> <td>5</td> <td>从机无应答</td> <td>无应答/不在线(未收到断路器应答)</td> </tr> <tr> <td>6</td> <td>6</td> <td>从站忙</td> </tr> </tbody> </table>

页面列表

ITEM_HTML