• <tr id='JwPewC'><strong id='JwPewC'></strong><small id='JwPewC'></small><button id='JwPewC'></button><li id='JwPewC'><noscript id='JwPewC'><big id='JwPewC'></big><dt id='JwPewC'></dt></noscript></li></tr><ol id='JwPewC'><option id='JwPewC'><table id='JwPewC'><blockquote id='JwPewC'><tbody id='JwPewC'></tbody></blockquote></table></option></ol><u id='JwPewC'></u><kbd id='JwPewC'><kbd id='JwPewC'></kbd></kbd>

    <code id='JwPewC'><strong id='JwPewC'></strong></code>

    <fieldset id='JwPewC'></fieldset>
          <span id='JwPewC'></span>

              <ins id='JwPewC'></ins>
              <acronym id='JwPewC'><em id='JwPewC'></em><td id='JwPewC'><div id='JwPewC'></div></td></acronym><address id='JwPewC'><big id='JwPewC'><big id='JwPewC'></big><legend id='JwPewC'></legend></big></address>

              <i id='JwPewC'><div id='JwPewC'><ins id='JwPewC'></ins></div></i>
              <i id='JwPewC'></i>
            1. <dl id='JwPewC'></dl>
              1. <blockquote id='JwPewC'><q id='JwPewC'><noscript id='JwPewC'></noscript><dt id='JwPewC'></dt></q></blockquote><noframes id='JwPewC'><i id='JwPewC'></i>

                大发快三

                 找回密码
                 立即注册
                大发快三 大发快三 技术文库 plc plc通讯 查看内容

                深入了解Modbus TCP协议

                2020-6-18 07:45| 编辑:大发快三| 查看: 343| 评论: 0

                摘要: Modbus总线有三种协议:Modbus RTU协议、Modbus ASCII协议和Modbus TCP协议,Modbus总线活跃在工业通信领域。Modbus RTU和Modbus ASCII擅长串行通信,比如基于RS485或者RS232的通信,而Modbus TCP则擅长基于以太网的 ...
                Modbus总线有三种协议:Modbus RTU协议、Modbus ASCII协议和Modbus TCP协议,Modbus总线活跃在工业通信领域。Modbus RTU和Modbus ASCII擅长串行通信,比如基于RS485或者RS232的通信,而Modbus TCP则擅长基》于以太网的通信。由于底层所使用的结构不同,Modbus的应用数据单↘元(Application Data Unit,ADU)有所不同。你可能并去清楚什么是ADU,昌晖仪表下面来详细介绍。

                为了进行通信,Modbus规定了一▽种很简单的数据结构,被称为“协议★数据单元”(Protocol Data Unit,PDU)。协议数据单ζ元由功能码+数据构成,如下面↘这张图:

                协议数据单元
                功能码的长度为1个字节,它表示∑要执行的功能。比如常见的:01读取线圈;02读取离散量输入值;03读取保持寄存器值;05写单个线圈△等;数据部分的ζ 长度为0-252个字节,它表示要读的地址或者要写入的←值,不同的功能码对应的数据有所不同。比如01功能码,其数据为4个字节,其中前两个字节表示要读取的线圈的地址,后两个字节表示要』读取线圈的数量;而对于05功能码,其数据也是4个字节,前两个字节表示要写入线圈的↑地址,后面两字节表示要写入的值。


                协议数据单元有三种类型:请求型协议数据单元(Request PDU)、应答型协议々数据单元(Response PDU)、及异常︽应答型协议数据单元(Exception Response PDU),更多关于协议数据∞单元的内容,大家可以去Modbus官网(
                )下载通信规范好好阅读。

                协议数据单元是Modbus的通用数据结构,它与底☆层物理结构无关,Modbus RTU、Modbus ASCII和Modbus TCP都使用相同的协议数据单元。但是,Modbus在通信的时候,总要依赖物理网络。因此要◥把协议数据单元映射到物理网络上,这就形成了应用数据单①元(Application Data Unit,ADU)。由于底层网络的不同,Modbus TCP跟Modbus RTU和Modbus ASCII的应用数据∏单元是不同的,Modbus RTU和Modbus ASCII的ADU结构如下图所示:

                Modbus RTU和Modbus ASCII的ADU结构

                而Modbus TCP的ADU结构如下:

                Modbus TCP的ADU结构

                可以看到,Modbus TCP的应用数据单元╲是在协议数据单元的基础上,添加了一个叫做“MBAP头(MBAP Header)”的结构。MBAP是英文“ModBus APlication”的缩写,即“应用数据单元”的意思。

                MBAP头结构由7个字节构成,如下表所示:
                MBAP头结构
                其中:

                ◆传输标识符:用于标识应用数据√单元,即请求和应答之间的配对;客户端对该部分进行初始化,服务器端将其拷贝到自己的ADU中;
                协议标识符:系统◆间的协议标识,0=Modbus;
                长度:接下来要发送的数据长度,即:单元标★识符+PDU的总长度,以字节为单位;
                单元标识符:用于系统间的站寻址,比ξ如在以太网+串行链路的网络中,远程站的地址;

                这就是Modbus TCP的ADU结构,即:MBAP头+PDU,是不是很简单呢?Modbus TCP的数据传输采用的是一种被称为“客户端/服务器”的模式,这也是上面的表格中会出卐现客户端/服务器功能描述的原因。其实,很多ζ 网络通信都采用的这种方式,比如大名鼎鼎的西门子的S7通信协议。在串行链路中,这种方式也称为主-从通信。


                说道这里,大家可能会有一个疑惑。因为Modbus在网络通信中,通常需要写明IP地址和端口号,为什么Modbus TCP的ADU中没有相关的内容呢?


                哈哈,其实这⊙是因为Modbus TCP是一个应用层的协议,而你说的IP地址和端口号属于【传输层/网络层的协议。还没明白,好吧,看看这张图:



                你看,在逻辑上Modbus TCP是在TCP层上的。在发送数据的时候,Modbus TCP的应用数据「单元首先向下传送给传输层,加上TCP协议的报文;再传送给网络层,加上IP协议的报文;再向下传送给数据链路层及物理层;接收的过程正好相反,从物理层一层一层的去掉相应层的报文,最终到▆达应用层。所以在使用Modbus TCP进行数据传输的时候,是要配合TCP/IP协议来使用的。通常如果你使用╲电脑编程,就要用到SOCKET技术;如果是使用plc编程,通常厂家已经把底层通信封装成库指令了,你只要直接调用就好了。比如西门子S7-200 SMART/1200/1500等PLC都有现成的Modbus-TCP指令库。偷偷告诉〖你一声,昌晖仪表后续会写基№于PLC和基于PC的Modbus-TCP通信的文章。


                还有一点要特别说明一下,Modbus TCP使用的端口号是502,一定要给Modbus TCP预留好,不能被别人占用哦。

                看过《深入了解Modbus TCP协议》的人还看了以下文章:

                最新评论

                |大发快三 ( )

                GMT+8, 2020-6-23 22:08

                Powered by © 2011-2020 www.diangon.com 版权所有 免责声明 不良信息举报

                技术驱动未来! 大发快三—专业大发快三基础知识大发快三技术学习网站。

                栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

                返回顶部