0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

揭秘ModBusRTU转换成TCP

捷米特 来源:jf_75800470 作者:jf_75800470 2025-03-24 10:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

wKgZPGfgwy-ACLO2AAJNgGMyC5097.jpeg

一、Modbus RTU 和 Modbus TCP 在多个方面存在差异

物理层与传输介质

Modbus RTU:常使用串口通信,如 RS - 232 或 RS - 485。RS - 232 适合短距离通信,通常在十几米以内;RS - 485 则支持更长距离,可达 1200 米左右,并且允许多个设备连接在同一总线上,适用于小型、局部的工业控制网络。

Modbus TCP:基于以太网,利用 TCP/IP 协议栈进行数据传输。它使用网线作为传输介质,可借助现有的局域网、广域网基础设施,传输距离仅受网络设备和拓扑结构限制,能实现跨地域的远程通信。

数据帧格式

Modbus RTU:数据帧以二进制形式编码,包含从站地址、功能码、数据和校验信息(通常是 CRC 循环冗余校验)。数据帧没有额外的网络层和传输层开销,格式相对紧凑,但不同厂家设备可能在细节上有差异。

Modbus TCP:数据帧基于 TCP/IP 协议,在 Modbus 应用层数据前添加了 MBAP(Modbus 应用协议头)。MBAP 包含事务标识符、协议标识符、长度和单元标识符等信息,用于在网络中准确识别和传输 Modbus 数据,数据帧整体结构更复杂。

传输效率

Modbus RTU:由于使用串口通信,传输速率相对较低,常见波特率有 9600bps、19200bps 等。在数据传输量较大或对实时性要求较高的场景下,容易出现传输延迟。

Modbus TCP:依托以太网,传输速率高,常见的有 10Mbps、100Mbps 甚至更高。能够快速传输大量数据,更适合对实时性要求高、数据交换频繁的应用场景。

连接方式

Modbus RTU:采用主从式通信结构,一个主站可以与多个从站进行通信。主站发起请求,从站根据请求返回响应,通信过程是一问一答式,不支持并发通信。

Modbus TCP:支持多主站和多从站的连接方式,多个客户端(主站)可以同时与服务器(从站)进行通信,实现并发数据访问,提高了系统的通信效率和灵活性。

网络兼容性

Modbus RTU:串口通信的局限性使其难以直接集成到基于 IP 的网络系统中,需要通过协议转换器才能与其他网络设备进行通信。

Modbus TCP:基于 TCP/IP 协议,与现代网络系统高度兼容,可直接接入企业局域网、互联网,方便与其他基于 IP 的系统(如 SCADA 系统、ERP 系统等)进行数据交互和共享。

应用场景

Modbus RTU:适用于小型工业控制系统、局部设备监控等场景,如小型工厂的设备控制、楼宇自动化中的局部设备管理等,这些场景对通信距离和数据传输量要求相对较低。

Modbus TCP:常用于大型工业自动化系统、远程监控和管理系统等,如大型工厂的分布式控制系统、跨地域的能源管理系统等,这些场景需要长距离、高速率、大规模的数据通信和集成。

二、从以下几方面说明一下为什么要将ModBusRTU转换成TCP

wKgZPGfgwzKAO4mtAAzFzBSR5-o471.png

1.长距离通信和网络扩展性:Modbus RTU 通常用于基于串口的通信,如 RS-485,通信距离有限,一般 RS-485 总线在理想条件下最大通信距离约 1200 米 。而 Modbus TCP 基于以太网,使用 IP 网络进行数据传输,借助现有的局域网、广域网基础设施,理论上可以实现几乎无限距离的通信,方便连接位于不同地理位置的设备,满足大型工业自动化系统、智能建筑等跨区域通信需求,易于构建大规模的分布式控制系统。

2.提高数据传输速度和效率:串口通信的速率相对有限,如常见的 9600bps、19200bps 等。以太网的传输速率通常要高得多,常见的有 100Mbps、1Gbps 甚至更高。当需要传输大量数据或对实时性要求较高时,Modbus TCP 能更好地满足快速数据交换的需求,提高系统的响应速度和整体性能。

3.网络兼容性和集成性:在现代企业网络环境中,TCP/IP 是主流的网络通信协议,几乎所有的计算机、服务器、路由器等网络设备都支持 TCP/IP 协议。将 Modbus RTU 转换为 Modbus TCP,可以使基于 Modbus RTU 的工业设备无缝集成到现有的企业网络中,便于与其他基于 IP 的系统(如企业资源计划 ERP 系统、制造执行系统 MES 等)进行数据交互和共享,实现更高效的生产管理和决策。

4.远程监控和管理:通过将 Modbus RTU 转换为 Modbus TCP,设备可以连接到互联网,允许用户通过网络从任何地方远程访问和监控设备。这对于需要远程维护、故障诊断和实时数据采集的应用场景非常重要,例如远程泵站监控、无人值守变电站等。

5.设备管理和维护便利性:基于 TCP 的网络管理工具和技术更加丰富和成熟,网络管理员可以利用这些工具对连接的设备进行配置、监控和故障排除。相比之下,Modbus RTU 设备的管理通常需要专用的串口工具和更复杂的现场操作。通过转换为 Modbus TCP,可以降低设备管理和维护的难度和成本。

三、捷米特JM-RTU-TCP-PLUS 网关模块如何助力ModBusRTU转换成TCP

先说一下此产品广泛应用于支持RS485接口的软启动器、变频器、智能高低压电 器、电量测量装置、智能现场测量设备、仪表、PLCDCS、FCS等等。

技术指标

TCP - RTU RS485 设备在 TCP 一侧为 TCP Server,在 RTU 一侧通过 RS485 可以作为 Modbus主站;

支持Modbus协议;

功能码:支持01H、02H、03H、04H、05H、06H、0FH、10H号功能;

供电:24VDC(±5%),最大功率3.5W ;

工作环境温度:-25~55℃,湿度≤95%;

外形尺寸:34mm(宽)×110mm(高)×70mm(厚) ;

安装方式:35mm导轨; Ø防护等级:IP20;

wKgZPGfgwzOAZVQLAACjeP8yc5w33.jpeg

配置模块

1. 正确连接电源,通过配置网口将TCP - RTU RS485与计算机相连,给TCP - RTU RS485 上电;

2. 打开配置软件,根据需求在配置软件中进行配置;

3. 选择正确的COM口,点击工具栏中的“下载”按钮,将配置下载到TCP - RTU RS485 中;

4. 等待大约10秒,TCP - RTU RS485与PLC之间建立正确连接,此时OK灯亮。

4.2 Configuration Tool 配置软件 配置模块需要使用配置软件,用户可以从光盘或者网站上获取并安装,用户使用网关配置软 件可以轻松完成TCP - RTU RS485的配置,包括设备IP地址,子网掩码,网关地址和设备名 称,串口波特率、奇偶校验、停止位等,并可对网关内存映射数据进行冲突检测。主界面如下图:

wKgZO2fgwzOAMrLdAAIPq5xKlEw175.png

数据交换

TCP - RTU RS485的TCP 网络和串口之间的数据转换是通过“映射”关系来建立的。在 TCP - RTU RS485中有两块数据缓冲区,一块是输入缓冲区(1500字节),地址范围为0x000 0x5DB;另一块是输出缓冲区(1500字节),地址范围为0x5DC-0xBB7。

1TCP Server端

假定用户配置的输入数据的长度为L1,输出数据的长度为L2。TCP - RTU RS485会把 [0x000,L1]地址范围内的数据发送到TCP 网络中,当从TCP 网络接收到数据时,TCP - RTU RS485 会将数据写到[0x5DC,0x5DC+L2]地址范围内。

2Modbus RTU端

当串口运行Modbus主站协议时,对于TCP - RTU RS485所支持的所有写寄存器、写线 圈命令,都可以从0x000-0x5DB、0x5DC-0xBB7地址范围内取数据,发给Modbus从站。对 于TCP - RTU RS485所支持的所有读寄存器、读线圈命令,TCP - RTU RS485会从Modbus 从站返回的数据写到0x000-0x5DB范围内。 注意:Modbus主站可配置的命令数为32条,每条命令可以读取一组连续的Modbus寄存器。

3通用模式-问答

当串口运行通用模式-问答式协议时,命令请求部分可以从缓冲区0x000-0x5DB、0x5DC 0xBB7 的任意位置取数,然后发出到从站串口设备中。当串口从站设备给出响应时,若响应中有 多少取决于用户的配置。

4通用模式-接收式

数据部分,JM-RTU-TCP-PLUS 会将响应的数据部分写到 0x000-0x5DB 范围内,具体数据的 当串口运行通用模式-接收协议时,JM-RTU-TCP-PLUS 的某个串口仅接收用户的串口主站 设备发送的数据,而不会做出任何的响应。在这种方式下JM-RTU-TCP-PLUS 会把接收到的数 据写到0x000-0x5DB地址范围内的某段区域内。

5输出命令轮询模式

该节的内容仅适用于 Modbus主站协议和通用模式-问答式协议。 命令执行过程: 1. 超时重发次数设置为0; 2. 发送命令的请求帧。发送完成后,响应超时定时器开始计时; 3. 等待命令的响应帧; 4. 若在响应超时时间内接收到响应帧,则认为有响应,至于是否响应正确,依赖于具体的响 应格式。若响应帧正确,命令执行结束。若在响应超时时间内没有接收到响应帧,则认为响应超 时。响应错误和响应超时时,进入步骤5; 5. 判断重传次数是否为 3,若为3 则命令执行结束,否则,超时重传次数加一,进入步骤 2。 连续输出模式: 在主站协议中,每一条命令在每一个子网内都有唯一的命令索引号。 主站协议工作在连续输出模式(输出命令轮询模式)时,以下列方式执行: 1. 执行第n号命令; 2. 第n号命令执行完成后,n加一,若大于最大命令条数,则n设置为0。重新进入步骤1。 变化输出模式: 主站协议工作在变化输出模式时,按以下方式执行: 否有变化,有变化则执行命令n; 1. 若命令n为读命令,执行命令n。否则,检测命令n的请求帧中包含的内存数据映射数据是 2. 如果命令n被执行则等待命令n执行完成,n加一,若大于最大命令条数,则n设置为0。 重新进入步骤1。

6字节交换方式

字节交换方式共有4种方式:无交换、2字节交换、4字节寄存器交换和4字节大小端交换。 2 字节交换: 使用2字节交换时,交换的字节个数一定要是2的整数倍。2字节交换是以2个字节为单元进 行交换的,交换方式见下表:

wKgZPGfgwzSAPTsiAAI5VmNkBdM746.png

软件安装步骤

wKgZO2fgwzWAMCaMAAR9VVAaHdM280.png

wKgZPGfgwzeAZ7FfAAXn6yT5WYs030.pngwKgZO2fgwzmAfqrVAAhBNSLCr9g854.png

审核编辑 黄宇


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1418

    浏览量

    83033
  • modbusRTU
    +关注

    关注

    0

    文章

    128

    浏览量

    9485
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    pdf转换成word文档格式乱了

    df转换成word文档格式乱了   将 pdf 转为 word 是常见的操作,但很多人发现结果很乱,文字会移位,字体变化,表格断裂,图片偏离原位.这是因为 pdf 存储的是最终的排版用于显示或打印
    的头像 发表于 11-22 10:04 771次阅读

    pdf如何转换成pptx

    df如何转换成pptx   将 pdf 转成 powerpoint pptx 文件是很常见的需求,当你需要把现有文档内容做成幻灯片时可以这样做,本文介绍一些简单实用的步骤,可以用免费工具或内置软件
    的头像 发表于 11-22 09:42 669次阅读

    对UART0输入到串口的char型数据转换成16进制的寄存器常用int型相关处理

    参赛小队名:强强联合队。报名编号:CICC1316 通过UART0接受到键盘输入的数据是char型的,这时候就会又出现一个问题,如果是char型的数据,直接转换成int型我们接收到的数据就变成
    发表于 10-31 07:58

    .elf 转换成.img 后,如何知道SPI flash 中的变量地址呢?

    它的 .map 中找到内存映射项目构建完成后的文件,如下图。 数据.abcDscr 0x40030b00 0x100 ./usbabc.o 但是.elf 转换成.img 后,如何知道SPI flash 中的变量地址呢?
    发表于 07-18 07:44

    揭秘ModbusRTU转DP,轻松连三菱PLC!

    新的控制系统需要使用ProfibusDP协议。为了解决这种不兼容的问题,可以使用ModbusRTU转ProfibusDP网关来实现两种协议之间的转换
    的头像 发表于 06-04 12:48 611次阅读
    <b class='flag-5'>揭秘</b><b class='flag-5'>ModbusRTU</b>转DP,轻松连三菱PLC!

    GP9301B将0V到10V的模拟电压输入,线性转换成0%-100%占空比PWM信号输出

     GP9301B将0V到10V的模拟电压输入,线性转换成0%-100%占空比的PWM信号输出。 GP9301BM将0V到10V的模拟电压输入,线性转换成0%-100%占空比的PWM信号,并且将
    发表于 05-29 10:15 0次下载

    DAC3162输出是电流型的,这个能不能转换成电压型的,复杂吗?

    DAC3162输出是电流型的,这个能不能转换成电压型的,复杂吗?或者帮我重新选型一下,参数:工作速率300MHz,采样带宽大于30MHz,量化12bit,输出的频率15MHz+-5MHz,内部有放大器,输出功率0+-2dBm,即0.83mW至1.6mW,带外抑制大于50dBc,谢谢!!!
    发表于 02-11 06:36

    请问如何用Verilog实现将ascaii码数值字符串转换成定点数?

    我需要接收一个ascaii码字符串,内容是12位有效数字的数值,带小数。我不知道怎么把小数部分转换成定点数。
    发表于 01-23 21:57

    ADC的值如何转换成电压值?

    ),读出来的还是ADS1115默认的0x85 2:我没看明白ADC的值如何转换成电压值,比如电源电压是3.3V,并且PGA设置为2,FS为+-2.048V,则如何通过ADC计算电压值? 望指导,谢谢前辈
    发表于 01-10 08:17

    AN-1249:使用ADV8003评估板将3D图像转换成2D图像

    电子发烧友网站提供《AN-1249:使用ADV8003评估板将3D图像转换成2D图像.pdf》资料免费下载
    发表于 01-08 14:28 0次下载
    AN-1249:使用ADV8003评估板将3D图像<b class='flag-5'>转换成</b>2D图像

    TLK10022可以将5Gbps的高速数据转换成4路1.25Gbps的低速数据吗?

    请问,TLK10022可以将5Gbps的高速数据(无协议的裸数据,伪随机码)转换成4路1.25Gbps的低速数据么,然后再用一个TLK10022将4路1.25G合成1路5G。TLK10022可以实现这种功能么?
    发表于 01-08 07:35

    请问ADS1220采样数据负数怎么转换成电压?

    采用如图1所示的三线法PT100测温,设置ads1220输出10uA的电流源,外部参考电压为40.3mv,采样数据转换成电压的函数如图2所示.正压转换成电压时没问题,负压时转换有错,什么原因呢?还有,怎么会有负压输出呢?
    发表于 01-06 07:57

    请问CD4504B可以将12V信号转换成3.3V信号吗?

    有一些12V信号,需要输入至FPGA,可以用CD4504B转换成3.3V吗,看手册感觉可以。
    发表于 01-03 08:25

    请问ldc1000怎么把proximtyData转换成距离?

    尊敬的ti工作人员,请教您ldc1000怎么把proximtyData转换成距离?
    发表于 01-02 06:06

    ADS553模拟量是怎么转换成数字量的?

    您好!请问ADS553这个AD芯片,它的输入是差分输入,有两个参考电压,输出是14位二进制补码格式,我想问:对于差分输入的AD,模拟量是怎么转换成数字量的,比如:当输出为14个1时,我的AD差分
    发表于 12-27 06:10