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

执行条件代码

审核编辑:郭婷

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

    关注

    39

    文章

    7664

    浏览量

    168471
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11121

    浏览量

    218386
  • 服务器
    +关注

    关注

    13

    文章

    9871

    浏览量

    88464

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业场景下塔讯 Modbus RTUModbus TCP 网关实现横河流量计与 WinCC 数据交互案例

    米)、组网复杂、无法直接接入以太网等问题。Modbus RTUModbus TCP协议 塔讯TX 131-RE-RS/TCP-2C网关通过
    的头像 发表于 08-19 15:16 ?136次阅读
    工业场景下塔讯 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> 转 <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 网关实现横河流量计与 WinCC 数据交互案例

    塔讯 Modbus RTUModbus TCP 在污水处理厂 PLC 数据采集中的配置案例

    水处理厂中有多种支持 Modbus RTU 协议的设备,如水质分析仪表、流量计、液位计等,为了实现这些设备与上位机系统(采用 Modbus TCP
    的头像 发表于 08-18 15:20 ?47次阅读
    塔讯 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> 转 <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 在污水处理厂 PLC  数据采集中的配置案例

    Modbus TCPModbus RTU电脑端 TCP 与西门子 V20 变频器的通信案例

    在工业自动化控制系统中,经常需要实现不同设备之间的通信与数据交互。本案例旨在展示如何通过 Modbus 协议,将电脑作为主站(Modbus TCP)与多台西门子变频器 V20(
    的头像 发表于 07-27 17:19 ?204次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 转 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>电脑端 <b class='flag-5'>TCP</b> 与西门子 V20 变频器的<b class='flag-5'>通信</b>案例

    什么是Modbus TCP协议

    Modbus TCP是一种基于TCP/IP协议的Modbus通信协议,用于在客户机和服务器之间进行数据
    的头像 发表于 07-23 17:18 ?847次阅读
    什么是<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>协议

    CCLinkIE转Modbus TCP:光伏逆变器的“万能钥匙”

    CCLinkIE和Modbus TCP的差异导致通信难题: 数据格式不同:CCLinkIE用二进制包,Modbus TCP用ASCII/
    发表于 07-09 10:17

    一触即达:CCLink IE遇见Modbus RTU,解锁智能电表“数据超车道”

    障碍。电表数据无法实时回传至SCADA系统,导致能耗分析模块无法正常运行。经排查,问题根源在于CCLINKIE的高速总线协议与Modbus RTU的异步串行通信机制存在数据格式差异。
    发表于 06-23 13:59

    基于 DeviceNet 转 MODBUS RTU 协议的施耐德 PLC 与 ABB 电机驱动器仓储堆垛机的定位控制优化方案?

    连续运行的物流仓储场景中稳定工作。 ____? 配置过程? 硬件连接? 将称重传感器、电机驱动器控制器等 MODBUS RTU 设备连接到塔讯__MODBUS
    发表于 05-03 10:45

    Modbus TCP通信的那些坑!你遇到过几个?

    Modbus TCP通信,需要建立连接,对于S7-200 Smart CPU作为Modbus TCP客户端时,可以通过mbus_client
    的头像 发表于 04-16 17:17 ?688次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b><b class='flag-5'>通信</b>的那些坑!你遇到过几个?

    Modbus TCPModbus RTU网关连接组态王的5大技巧!

    在工业自动化领域,Modbus协议以其简洁高效、易于实施的特性被广泛应用。然而,面对不同的网络环境和设备需求,单一的通信方式往往难以满足实际应用场景的复杂性。这时,兴达易控Modbus TCP
    的头像 发表于 03-16 16:11 ?527次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>转<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关连接组态王的5大技巧!

    Modbus TCPRTU:轻松转换指南!

    在现代工业自动化领域,Modbus TCPModbus RTU两种通信协议因其高效、稳定的特点被广泛应用。然而,随着技术的发展和设备升级的
    的头像 发表于 03-14 15:21 ?734次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 到 <b class='flag-5'>RTU</b>:轻松转换指南!

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

    着重要作用。 Modbus网关 作为数据通信的桥梁,能够实现Modbus RTUModbus TCP
    的头像 发表于 10-22 15:57 ?1120次阅读

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

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

    MODBUS TCP 转 CANOpen

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

    Modbus RTU转CC-Link协议网关(CC-Link转Modbus RTU

    远创智控YC-CCLK-RTU型网关实现了CC-Link从站和Modbus RTU主站(从站)。网关作为CC-Link从站接入到CC-Link网络中,比如连接到三菱PLC。CCLK-RTU
    的头像 发表于 09-07 14:59 ?834次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>转CC-Link协议网关(CC-Link转<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

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

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