欢迎光临散文网 会员登陆 & 注册

Modbus TCP及其注意点

2022-06-06 10:33 作者:北京微控工业网关  | 我要投稿

 主机和从机、服务端和客户端

【在modbus协议中】

主机发送modbus请求,从机根据请求内容向主机返回响应。在modbus协议中,主机总是主动方,从机总是被动方。

【在网络应用中】

在网络应用中存在客户端和服务器端,客户端(例如浏览器)发送请求到服务器,服务器向客户端返回内容(例如HTML文本)。

【在modbus tcp中】

主机是客户端,而从机是服务器端。千万不要以为服务器端重要,主机也重要,所以主机就是服务器端。

是否可以多主机

通过前面的分析,主机为客户端那么modbustcp支持多个主机,在一个 局域网中可存在多个主机和多个从机。从机的连接能力(连接主机的数 量)由UIP的最大TCP连接个数决定。

modbus TCP协议简述

modbus TCP和modbus RTU基本相同,但是也存在一些区别。

a.从机地址变得不再重要,多数情况下忽略。从某种意义上说从机地址被IP地址取代。

b.CRC校验变得不再重要,甚至可以忽略。由于TCP数据包中已经存在校验,为了不重复造轮子,modbus TCP干脆取消了CRC校验。

TCP 模式是为了让Modbus 数据顺利在以太网上传输产生的,使用TCP502 端口。该协议物理层,数据链路层,网络层,传输层都是基于TCP 协议,只在应用层,将Modbus 协议修改后封装进去; 接收端将该TCP 数据包拆封后,重新获得原始Modbus 帧,然后按照Modbus 协议规范进行解析,并将返回的数据包重新封装进TCP 协议中,返回到发送端。与串行链路传输的数据格式不同,TCP 模式去除了附加地址和校验,增加了报文头,其具体格式如图所示。

在modbus TCP中包含一个MBAP头,该头包含以下几个部分。

区域长度,描述客户端服务器传输标志2字节MODBUS 请求和响应传输过程中,序列号客户端生成应答时,复制该值协议标志2字节,Modbus协议默认为0。客户端生成应答时复制该值长度2字节,剩余部分的长度客户端生成应答时,由服务器端生成单元标志1字节,从机标志(从机地址)客户端生成应答时复制该值。

【注意】

【1】传输标志可理解为序列号,防止 MODBUS TCP通信错位,例如后发生的响应先到了主机,而早发生的响应后到主机

【2】单元标志可理解为从机地址,此时已经不再重要

modbus tcp 和 TCP IP的关系

modbus TCP可以理解为发生在TCP上的应用层协议,既然是TCP协议那么一个完整的MODBUSTCP报文必然包括TCP首部,IP首部和Ethernet首部。

Modbus TCP及其注意点的评论 (共 条)

分享到微博请遵守国家法律