设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
控制专题
›
『数控/电机控制/运动控制/工业总线』
›
Modbus TCP简介
返回列表
发新帖
Modbus TCP简介
[复制链接]
91143
|
0
|
2024-10-19 09:38:51
|
显示全部楼层
|
阅读模式
Modbus TCP协议介绍
Modbus TCP是一种基于TCP/IP的应用层协议,它是Modbus协议的网络版本。Modbus最初是为串行通信设计的,而Modbus TCP则将其扩展到以太网环境中。这种协议利用TCP/IP协议栈的传输层和网络层,以实现设备间的高效数据通信。Modbus/TCP以其简单性、可靠性和广泛的应用范围而受到青睐,特别是在工业自动化控制系统、能源管理和环境监测等领域。
一、Modbus TCP协议中的角色
Modbus TCP协议是一种命令/响应协议,需要一个请求数据的客户端(也称为TCP客户端)和一个处理请求并返回响应的服务器(称为TCP服务器)。客户端和服务器之间通过TCP/IP网络连接进行通信。在Modbus TCP中,客户端是数据请求的发起方,而服务器是数据请求的接收方。具体来说,客户端通过发送Modbus数据帧(包括功能代码、数据起始地址和数据数量等)向服务器请求数据。服务器收到数据请求后,解析客户端的请求并按照客户端的请求返回相应的数据。而对于Modbus TCP的服务器(也称为Modbus TCP从站或Modbus TCP Slave),需要设置的参数包括:IP地址:服务器的IP地址,用于与客户端进行通信。子网掩码:用于确定网络地址的范围。端口号:用于指定Modbus TCP通信的端口号,默认为502。接收地址:接收客户端发来的数据对于Modbus TCP的客户端(也称为Modbus TCP主站或Modbus TCP Master),需要设置的参数包括:IP地址:客户端的IP地址,用于与服务器进行通信。端口号:用于指定Modbus TCP通信的端口号,与服务器的端口号相对应。连接名称:用于标识连接的名称。服务端IP:服务器的IP地址,用于与服务器的通信。服务端端口:服务器的端口号,用于与服务器的通信。Slave ID:从站的ID号,用于标识从站设备。通信协议:用于指定通信协议的类型,如TCP/UIP写功能码:用于指定写操作的Modbus功能码,如Coil或Holding等。起始地址:第一个起始寄存器地址寄存器数量:从起始地址开始,读取多少个数量的寄存器
二、Modbus TCP通信报文分析
通过百度网盘分享的文件:ModbusPoll.zip 链接:https://pan.baidu.com/s/15VvINKFw4UNZEpX0x3AmwA?pwd=kut9提取码:kut9通过百度网盘分享的文件:modbusslave.rar链接:https://pan.baidu.com/s/1Mxv3YjIYrxBeaAzd-sMITA?pwd=uly3提取码:uly31、Modbus Slave设置快速连接,并设置IP和端口,端口默认用502
在设置,采用默认设置:从0开始的10个保持寄存器地址,并手动给寄存器赋值。
2、Modbus Pool设置
客户端连接成功,并正确读取到服务器从地址0开始的10个保持寄存器数据。
3、查看报文
因为10个寄存器太长,所以先修改成两个寄存器,方便进行查看,如下图
查看通信,如下图
报文如下:
点击 Stop, Copy 两个报文
发送的报文解析:
MBP报头文
功能码
数据
事务表示符
协议表示符
长度
单元标识符
功能码
起始寄存器
长度
03 73
00 00
00 06
01
03
00 00
00 02
2个字节
2个字节
2个字节
1个字节
1个字节
2个字节
2个字节
Modbus TCP报文格式:
TCP报文格式:MBAP报文头+功能码+数据MBAP报文头(共占7个字节)事务处理标识符:报文的ID,此字段用于匹配请求消息与其相应的响应消息。协议标识符:协议的ID,对于Modbus通信,该字段始终设置为0。长度:后面有多少个字节,该字段指定帧中剩余的字节数。单元标识符:从站地址,此字段包含该消息所针对的设备(从属设备)的地址,类似于 Modbus RTU 中的地址字段。
接收的报文解析:
MBP报头文
功能码
数据
事务表示符
协议表示符
长度
单元标识符
功能码
数据长度
具体数据
03 73
00 00
00 07
01
03
04
00 01 00 02
2个字节
2个字节
2个字节
1个字节
1个字节
1个字节
4个字节
与 Modbus RTU 不同,Modbus TCP 不包含用于错误检测的 CRC 字段,因为此功能由底层以太网和 IP 层提供。通过依赖以太网和 IP 层内置的错误检测和纠正技术,Modbus TCP可确保工业应用中的可靠通信和数据完整性。简化了Modbus TCP协议,并使其能够利用现代以太网和IP网络的稳健性和可靠性。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
姜工Engineer
回复楼主
返回列表
『数控/电机控制/运动控制/工业总线』
『机器视觉/AI/IoT/机器人论坛』
『高级语言/组态软件/触摸屏』
『操作系统xp/xin7/win10/linux』