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

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

3天内不再提示

ModBus RTU、ASCII、TCP,选哪种模式更好?

亿佰特物联网应用专家 2023-01-14 10:23 次阅读

ModBus是一种通信协议,用于连接自动化设备(如PLC、温度控制器等)和计算机。它被广泛应用于工业控制系统,支持多种通信方式,包括ModBus RTU、ModBus ASCII和ModBus TCP等。本文将主要解释这三种通信方式的区别和应用场景。

所有ModBus协议的基本结构

无论变体如何,所有标准ModBus通信都遵循相同的消息传递结构。一切都围绕着将值存储在寄存器中然后读取它们。这里有几种数据类型在起作用。例如,离散输入可以存储为单个位。更广泛地说,输入寄存器存储基于 ModBus 的设备收集的值。将多个分立器件存储为单个位,而模拟值甚至 ASCII 字符可能存储在 8 位寄存器中(最低有效位为 0 位,最高有效位为 64 位)。不同类型的寄存器按用于轮询它们的功能代码进行分类。功能代码字段中的“1”用于“读取线圈”(检查控制继电器的状态)。“2”表示“读取离散输入”(检查离散输入的状态)。“3”是“读保持寄存器”(从多用途读/写寄存器收集数据)。ModBus 规范中还有更多。寄存器由其“起始地址”请求,起始地址是一个 16 位值,用于唯一标识设备中的每个寄存器。对RTU或其他设备的主控请求将始终引用要报告的所需寄存器。3f2e58ce-92a8-11ed-ad0d-dac502259ad0.png

3f371126-92a8-11ed-ad0d-dac502259ad0.png

ModBus RTU

ModBus RTU(Remote Terminal Unit)是ModBus协议最常见的实现方式,采用二进制数据传输,具有较高的传输效率和稳定性。它使用串行通信,支持RS232RS485两种接口。在RTU模式下,每个字节可以传输两位十六进制字符。比如0xAB会直接以十六进制0xAB(二进制10101011)进行发送。其消息帧格式由以下部分组成:
3f3cbcfc-92a8-11ed-ad0d-dac502259ad0.pngRTU模式采用16 位CRC校验,后续的命令/数据带有循环冗余校验的校验和。RTU模式比较常用,而ASCII一般很少用。

3f371126-92a8-11ed-ad0d-dac502259ad0.png

ModBus TCP

ModBus TCP(Transmission Control Protocol)是ModBus协议的一种扩展,它使用TCP/IP协议进行通信,可以在局域网(LAN)和广域网(WAN)之间传输数据。ModBus TCP支持多种网络设备,包括计算机、服务器、交换机、路由器等。它适用于远程监控和控制,常用于工业网络和物联网应用。该协议的物理层、数据链路层、网络层、传输层都是基于TCP协议,它只是在应用层将ModBus协议封装进去。然后接收端将该TCP数据包拆包后,重新获得原始ModBus帧,然后按照ModBus协议规范进行解析,并将要返回的数据包重新封装到TCP协议中,发回至发送端。与串行通信的传输格式不同,TCP模式去除了附加地址和校验,增加报文头,如下图所示。
3f4f27de-92a8-11ed-ad0d-dac502259ad0.png通过以太网传输时使用TCP模式,不使用校验,因为TCP协议是一个面向连接的可靠协议。ModBus RTU和ModBus TCP作为ModBus协议的两个主要变体,传统上,ModBus RTU(需要将信息传送回ModBus主站或SCADA HMI的RTU)被许多不同类型的设备使用。ModBus RTU通常通过RS485串行发送。这种菊花链通信通道允许多个设备在主从配置中向单个HMI端口报告。每个从设备都能够通过向主设备发送流量来说话。这使得ModBus网络结构保持相当简单。

3f371126-92a8-11ed-ad0d-dac502259ad0.png

ModBus ASCII

ModBus ASCII(American Standard Code for Information Interchange)采用ASCII码传输文本信息,每个8Bit 字节都作为两个ASCII字符发送。相对ModBus RTU而言,它的传输效率较低,但具有更好的可读性。ModBus ASCII也使用串行通信,并支持RS232和RS485两种接口,适用于短距离通信。在ASCII模式下,每个8位的字节拆分为两个ASCII字符进行发送,消息帧以英文冒号“:”开始,以回车和换行(CRLF)符号结束。例如十六进制数0xAB,会被分解成ASCII字符“A”和“B”进行发送。
3f5c6ef8-92a8-11ed-ad0d-dac502259ad0.pngASCII模式允许两个字符之间长达1s的间隔时间而不引发通信故障,ASCII格式采用纵向冗余校验(LRC)的校验和。3f371126-92a8-11ed-ad0d-dac502259ad0.png

三者的区别

ModBus RTU和ModBus TCP的主要区别在于ModBus RTU使用菊花链网络,因此可以通过两条线连接整个网络,并通过为每个节点提供唯一的地址来与每个设备进行通信。ModBus TCP使用星形网络,其中每个节点都有一条称为Cat 5或Cat 6的单独电缆。它们可以使用路由器连接。它们还带有网络上每个节点唯一的个人地址。地址可以是 1 到 255,这意味着理论上,我们可以在同一网络上拥有 254 台设备。也可以通过互联网使用ModBus TCP。在ModBus RTU和ModBus ASCII中,通信是通过串行接口进行的,这意味着它们只能在较短的距离内进行通信。因此,如果需要在较远的距离进行通信,则需要使用ModBus TCP。另一方面,ModBus RTU和ModBus ASCII使用二进制和ASCII码分别进行数据传输,因此它们的传输效率和可读性存在差异。在选择ModBus通信方式时,需要考虑多种因素,包括通信距离、传输效率和可读性。对于短距离通信,ModBus RTU和ModBus ASCII均可作为选择。如果需要更高的传输效率,则可以选择ModBus RTU;如果需要更好的可读性,则可以选择ModBus ASCII。对于远距离通信,则只能使用ModBus TCP。

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

    关注

    28

    文章

    1759

    浏览量

    76780
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1348

    浏览量

    78950
收藏 人收藏

    评论

    相关推荐

    Modbus网关如何实现Modbus RTUModbus TCP协议的数据采集?

    着重要作用。 Modbus网关 作为数据通信的桥梁,能够实现Modbus RTUModbus TCP协议之间的数据采集与转换,进而为监控系
    的头像 发表于 10-22 15:57 171次阅读

    Modbus RTU协议与Modbus TCP/IP协议的区别

    Modbus RTUModbus TCP/IP的本质都是Modbus协议,都是通过Modbus
    的头像 发表于 10-18 17:44 299次阅读

    Modbus网关实现Modbus RTUModbus TCP协议相互转换

    钡铼Modbus网关BL120是一款专注于Modbus协议转换的通信设备,支持Modbus RTUModbus
    的头像 发表于 08-02 15:13 637次阅读
    <b class='flag-5'>Modbus</b>网关实现<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>协议相互转换

    钡铼Modbus RTU/TCP协议转换网关BL120

    Modbus网关BL120是一款在工业自动化和物联网领域广泛应用的通信设备,专注于Modbus协议之间的相互转换。支持的下行采集协议和上行转发协议有Modbus RTU
    的头像 发表于 08-02 11:58 393次阅读
    钡铼<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>/<b class='flag-5'>TCP</b>协议转换网关BL120

    PLC协议、Modbus RTU TCP 、DL T645、IEC101-104、BACnet 转Modbus TCP RTU、OPC UA、MQTT、BACnet IP协议网关

    一、概述 BL110是一款物联网无线工业智能网关,支持各种PLC协议、Modbus RTU 、Modbus TCP、DL/T645、IEC101、IEC104、BACnet IP、BA
    的头像 发表于 07-24 16:04 389次阅读
    PLC协议、<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>  <b class='flag-5'>TCP</b> 、DL T645、IEC101-104、BACnet 转<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>RTU</b>、OPC UA、MQTT、BACnet IP协议网关

    Modbus RTUModbus TCP转MQTT网关实现Modbus设备与云平台的无缝通信

    钡铼Modbus转MQTT网关,简而言之,就是通过将Modbus协议(包括Modbus RTUModbus
    的头像 发表于 07-23 16:58 2362次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>、<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>转MQTT网关实现<b class='flag-5'>Modbus</b>设备与云平台的无缝通信

    ModbusRTU ASCII转ModbusTCP协议转化网关通讯解决方案

    /ASCII网络中。 本网关连接到Modbus RTU/ASCII总线中做为主站使用,连接到MODBUS-TCP总线中做为主站(客户端)或从
    的头像 发表于 07-23 15:12 371次阅读
    ModbusRTU <b class='flag-5'>ASCII</b>转ModbusTCP协议转化网关通讯解决方案

    esp32 idf支持modbus ascii协议的主机模式吗?

    esp32 idf 支持 modbus ascii协议的主机模式吗?
    发表于 06-25 06:25

    RS485转以太网串口服务器Modbus网关连接调试方法

    ZP-8XXX 系列串口网关可让您设备立刻联网,专为整合 Modbus RTU/ASCIIModbus TCP 网络设计
    的头像 发表于 06-13 10:09 2281次阅读
    RS485转以太网串口服务器<b class='flag-5'>Modbus</b>网关连接调试方法

    Modbus-RTU通讯协议是什么?

    Modbus-RTU通讯协议是一种串行通讯协议,它可以用于连接不同类型的设备,以实现远程监控和控制。Modbus协议包括RTUASCIITCP
    的头像 发表于 05-23 15:06 530次阅读

    BL124采集Modbus RTUModbus TCP协议

    Modbus网关BL120是一款专注于Modbus协议之间相互转换的通信设备。Modbus网关BL120支持多种下行采集协议,包括Modbus RT
    的头像 发表于 04-29 16:28 405次阅读
    BL124采集<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>协议

    Modbus TCPModbus RTU的区别

    Modbus是一种广泛应用于工业自动化领域的通信协议,用于不同厂商生产的设备之间的数据交换和通信。在Modbus协议中,ModbusTCP和ModbusRTU是两种最为常见的通信方式。尽管它们都是
    的头像 发表于 04-12 09:14 1514次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>与<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>的区别

    STM32L431RC通过命令切换到MODBUS/RTU模式,为什么RTU模式的CMF中断一直在工作?

    我使用的芯片是STM32L431RC,用USART2和上位机通信。默认使用MODBUS/ASCII模式,CMF字符匹配中断工作没有问题。现在需要通过命令切换到MODBUS/
    发表于 03-27 06:01

    MODBUS RTU详细解释

    Modbus 一个工业上常用的通讯协议、一种通讯约定。Modbus 协议包括 RTUASCIITCP。其中
    发表于 01-12 16:39 9次下载

    Modbus RTUModbus TCP网关应用技术

    通过Modbus RTUModbus TCP网关,设备之间的通信更加灵活便捷,大大提高了系统的可伸缩性和可靠性。此外,Modbus
    的头像 发表于 12-05 09:04 808次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>转<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>网关应用技术