Modbus TCP协议.docx

上传人:安*** 文档编号:17778621 上传时间:2022-05-26 格式:DOCX 页数:5 大小:17.16KB
返回 下载 相关 举报
Modbus TCP协议.docx_第1页
第1页 / 共5页
Modbus TCP协议.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《Modbus TCP协议.docx》由会员分享,可在线阅读,更多相关《Modbus TCP协议.docx(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、ModbusTCP协议导语:Modbus总线有三种协议:ModbusRTU协议、ModbusASCII协议和ModbusTCP协议,Modbus总线活泼在工业通信领域。ModbusRTU和ModbusASCII擅长串行通信,比方基于RS485或RS232的通信,而ModbusTCP那么擅长基于以太网的通信。由于底层所使用的构造不同,Modbus的应用数据单元ApplicationDataUnit,ADU有所不同。你可能并去清楚什么是ADU,昌晖仪表下面来详细介绍。Modbus总线有三种协议:ModbusRTU协议、ModbusASCII协议和ModbusTCP协议,Modbus总线活泼在工业通

2、信领域。ModbusRTU和ModbusASCII擅长串行通信,比方基于RS485或RS232的通信,而ModbusTCP那么擅长基于以太网的通信。由于底层所使用的构造不同,Modbus的应用数据单元ApplicationDataUnit,ADU有所不同。你可能并去清楚什么是ADU,昌晖仪表下面来详细介绍。为了进展通信,Modbus规定了一种很简单的数据构造,被称为“协议数据单元ProtocolDataUnit,PDU。协议数据单元由功能码+数据构成,如下面这张图:功能码的长度为1个字节,它表示要执行的功能。比方常见的:01读取线圈;02读取离散量输入值;03读取保持存放器值;05写单个线圈等

3、;数据局部的长度为0-252个字节,它表示要读的地址或要写入的值,不同的功能码对应的数据有所不同。比方01功能码,其数据为4个字节,其中前两个字节表示要读取的线圈的地址,后两个字节表示要读取线圈的数量;而对于05功能码,其数据也是4个字节,前两个字节表示要写入线圈的地址,后面两字节表示要写入的值。协议数据单元有三种类型:恳求型协议数据单元RequestPDU、应答型协议数据单元ResponsePDU、及异常应答型协议数据单元ExcepTIonResponsePDU,更多关于协议数据单元的内容,大家可以去Modbus官网下载通信标准好好浏览。协议数据单元是Modbus的通用数据构造,它与底层物理

4、构造无关,ModbusRTU、ModbusASCII和ModbusTCP都使用一样的协议数据单元。但是,Modbus在通信的时候,总要依赖物理网络。因此要把协议数据单元映射到物理网络上,这就形成了应用数据单元ApplicaTIonDataUnit,ADU。由于底层网络的不同,ModbusTCP跟ModbusRTU和ModbusASCII的应用数据单元是不同的,ModbusRTU和ModbusASCII的ADU构造如下列图所示:而ModbusTCP的ADU构造如下:可以看到,ModbusTCP的应用数据单元是在协议数据单元的根底上,添加了一个叫做“MBAP头MBAPHeader的构造。MBAP是

5、英文“ModBusAPlicaTIon的缩写,即“应用数据单元的意思。MBAP头构造由7个字节构成,如下表所示:其中:传输标识符:用于标识应用数据单元,即恳求和应答之间的配对;客户端对该局部进展初始化,效劳器端将其拷贝到自己的ADU中;协议标识符:系统间的协议标识,0=Modbus;长度:接下来要发送的数据长度,即:单元标识符+PDU的总长度,以字节为单位;单元标识符:用于系统间的站寻址,比方在以太网+串行链路的网络中,远程站的地址;这就是ModbusTCP的ADU构造,即:MBAP头+PDU,是不是很简单呢?ModbusTCP的数据传输采用的是一种被称为“客户端/效劳器的形式,这也是上面的表

6、格中会出现客户端/效劳器功能描绘的原因。其实,很多网络通信都采用的这种方式,比方大名鼎鼎的西门子的S7通信协议。在串行链路中,这种方式也称为主-从通信。讲道这里,大家可能会有一个疑惑。因为Modbus在网络通信中,通常需要写明IP地址和端口号,为什么ModbusTCP的ADU中没有相关的内容呢?哈哈,其实这是因为ModbusTCP是一个应用层的协议,而你讲的IP地址和端口号属于传输层/网络层的协议。还没明白,好吧,看看这张图:你看,在逻辑上ModbusTCP是在TCP层上的。在发送数据的时候,ModbusTCP的应用数据单元首先向下传送给传输层,加上TCP协议的报文;再传送给网络层,加上IP协

7、议的报文;再向下传送给数据链路层及物理层;接收的经过正好相反,从物理层一层一层的去掉相应层的报文,最终到达应用层。所以在使用ModbusTCP进展数据传输的时候,是要配合TCP/IP协议来使用的。通常假如你使用电脑编程,就要用到SOCKET技术;假如是使用plc编程,通常厂家已经把底层通信封装成库指令了,你只要直接调用就好了。比方西门子S7-200SMART/1200/1500等PLC都有现成的Modbus-TCP指令库。偷偷告诉你一声,昌晖仪表后续会写基于PLC和基于PC的Modbus-TCP通信的文章。还有一点要十分讲明一下,ModbusTCP使用的端口号是502,一定要给ModbusTCP预留好,不能被别人占用哦。0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com