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

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

3天内不再提示

Modbus RTU和Modbus TCP的通信过程分析

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-10-12 17:02 次阅读

Modbus RTU 和 Modbus TCP 通信

Modbus 功能代码

CPU 作为 Modbus RTU 主站(或 Modbus TCP 客户端)运行时,可在远程 Modbus RTU 从站(或 Modbus TCP 服务器)中读/写数据和 I/O 状态。可在程序逻辑中读取并处理远程数据。

● CPU 作为 Modbus RTU 从站(或 Modbus TCP 服务器)运行时,监控设备可在 CPU 存储器中读/写数据和 I/O 状态。RTU 主站(或 Modbus TCP 客户端)可以将新值写入从站/服务器 CPU 存储器,以供用户程序逻辑使用。

RTU 站 :标准站地址 1 到 247扩展站地址 1 到 65535

TCP 站 :站地址 IP 地址和端口

实际可用的 Modbus 存储区地址数取决于 CPU 型号、存在多少工作存储器以及其他程序数据占用多少 CPU 存储区。下表给出地址范围的额定值。

2cbf965e-427f-11ed-96c9-dac502259ad0.png

Modbus RTU 通信

Modbus RTU(远程终端单元)是一个标准的网络通信协议,它使用 RS232RS485 电气连接在 Modbus 网络设备之间传输串行数据。可在带有一个 RS232 或 RS485 CM 或一个 RS485 CB 的 CPU 上添加 PtP(点对点)网络端口。Modbus RTU 使用主/从网络,单个主设备启动所有通信,而从设备只能响应主设备的请求。主设备向从一个从设备地址发送请求,然后该从设备地址对命令做出响应。

Modbus TCP 通信

Modbus TCP(传输控制协议)是一个标准的网络通信协议,它使用 CPU 上的 PROFINET 连接器进行 TCP/IP 通信。不需要额外的通信硬件模块。

我们主要以Modbus TCP为主介绍:

2cd9f1ca-427f-11ed-96c9-dac502259ad0.png

在指令任务卡中,在“通信”(Communication) 组中的“其它”(Others) 下显示 MODBUS TCP 指令。

要更改 Modbus TCP 指令的版本,请从下拉列表中选择相应版本。可以选择一组指令或分别选择各个指令。

使用指令树将 Modbus TCP 指令放入程序时,将在项目树中创建新的 FB 实例。在项目树的“PLC_x > 程序块 > 系统块 > 程序资源”(PLC_x > Program blocks > System blocks > Program resources) 下可看到新的 FB 实例。

2d14976c-427f-11ed-96c9-dac502259ad0.png

要确认程序中 Modbus TCP 指令的版本,必须检查项目树的属性而不是程序编辑器中显示的框的属性。选择项目树的 Modbus TCP FB 实例,单击右键,选择“属性”(Properties),然后选择“信息”(Information) 页查看 Modbus TCP 指令的版本号。

Modbus TCP 指令

MB_CLIENT(作为 Modbus TCP 客户端使用 PROFINET 进行通信)指令

2d3b5de8-427f-11ed-96c9-dac502259ad0.png

"MB_CLIENT_DB"(

REQ:=_bool_in_,

DISCONNECT:=_bool_in_,

MB_MODE:=_usint_in_,

MB_DATA_ADDR:=_udint_in_,

MB_DATA_LEN:=_uint_in_,

DONE=>_bool_out_,

BUSY=>_bool_out_,

ERROR=>_bool_out_,

STATUS=>_word_out_,

MB_DATA_PTR:=_variant_inout_,

CONNECT:=_variant_inout_);

MB_CLIENT 作为 Modbus TCP 客户端,通过 S7-1200 CPU 上的 PROFINET 端口进行通信。不需要额外的通信硬件模块。MB_CLIENT 可进行客户端-服务器连接、发送 Modbus 功能请求、接收响应,以及控制 Modbus TCP 服务器的断开。

REQ In Bool

FALSE = 无 Modbus 通信请求TRUE = 请求与 Modbus TCP 服务器通信

DISCONNECT IN Bool

DISCONNECT 参数允许程序控制与 Modbus 服务器设备的连接和断开。如果 DISCONNECT = 0 且不存在连接,则 MB_CLIENT 尝试连接到分配的 IP 地址和端口号。如果 DISCONNECT = 1 且存在连接,则尝试断开连接操作。每当启用此输入时,无法尝试其它操作。

MB_MODE IN USInt

模式选择:分配请求类型(读、写或诊断)。

MB_DATA_ADDR IN UDInt

Modbus 起始地址:分配 MB_CLIENT 访问的数据的起始地址。有效地址的相关信息,请参见下面的 Modbus 功能表。

MB_DATA_LEN IN UInt

Modbus 数据长度:分配此请求中要访问的位数或字数。有效长度的相关信息,请参见下面的 Modbus 功能表。

MB_DATA_PTR IN_OUT Variant

指向 Modbus 数据寄存器的指针:寄存器缓冲进出 Modbus 服务器的数据。指针必须分配一个未进行优化的全局 DB 或 M 存储器地址。

CONNECT IN_OUT Variant

引用包含系统数据类型为“TCON_IP_v4”的连接参数的数据块结构。

DONE OUT Bool

上一请求已完成且没有出错后,DONE 位将保持为 TRUE 一个扫描周期时间。

BUSY OUT Bool

● 0 - 无 MB_CLIENT 操作正在进行

● 1 - MB_CLIENT 操作正在进行

ERROR OUT Bool

MB_CLIENT 执行因错误而结束后,ERROR 位将在一个扫描周期时间内保持为 TRUE。STATUS 参数中的错误代码仅在 ERROR = TRUE 的一个循环周期内有效。

STATUS OUT Word

执行条件代码

审核编辑:郭婷

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

    关注

    38

    文章

    7443

    浏览量

    163544
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10816

    浏览量

    210929
  • 服务器
    +关注

    关注

    12

    文章

    8986

    浏览量

    85111

原文标题:S 7-1200-Modbus RTU 和 Modbus TCP 通信概

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    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 TCP 转 CANOpen

    产品概述 SG-TCP-COE-210 网关可以实现将 CANOpen 接口设备连接到 MODBUS TCP 网络中。用户不需要了解具体的 CANOpen 和 Modbus
    的头像 发表于 09-24 13:59 214次阅读
    <b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b> 转 CANOpen

    EtherNet/IP转Modbus-RTU主站网关(EtherNet/IP转Modbus-RTU

    ,用户的变频器采用Modbus RTU通信,耐用通信EtherNet/IP转Modbus RTU
    的头像 发表于 09-04 10:55 238次阅读
    EtherNet/IP转<b class='flag-5'>Modbus-RTU</b>主站网关(EtherNet/IP转<b class='flag-5'>Modbus-RTU</b>)

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

    钡铼Modbus网关BL120是一款专注于Modbus协议转换的通信设备,支持Modbus RTUMo
    的头像 发表于 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
    的头像 发表于 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>设备与云平台的无缝<b class='flag-5'>通信</b>

    说明白了,Modbus RTU通信协议解析-成都电路板单片机开发

    TCPModbus ASCII,Modbus RTUModbus TCP
    发表于 06-30 22:28

    Modbus TCP转Profinet网关配置案例

    本案例采用Modbus TCP转Profinet网关做为Modbus TCP通信协议设备与Profinet
    的头像 发表于 05-27 11:55 543次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>转Profinet网关配置案例

    BL124采集Modbus RTUModbus TCP协议

    Modbus网关BL120是一款专注于Modbus协议之间相互转换的通信设备。Modbus网关BL120支持多种下行采集协议,包括Modbus
    的头像 发表于 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>的区别

    RS485与MODBUS RTU的区别 如何选择合适的通信技术?

    RS485与MODBUS RTU的区别 如何选择合适的通信技术? RS485是一种通信总线标准,而MODBUS
    的头像 发表于 02-01 10:27 8975次阅读

    MODBUS RTU详细解释

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

    Modbus RTUModbus TCP网关应用技术

    通过Modbus RTUModbus TCP网关,设备之间的通信更加灵活便捷,大大提高了系统的可伸缩性和可靠性。此外,
    的头像 发表于 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>网关应用技术