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

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

3天内不再提示

Modbus TCP示例

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:微笑应对 2022-12-02 09:55 次阅读

Modbus TCP 示例:

示例:MB_SERVE 多 TCP 连接

可以拥有多个 Modbus TCP 服务器连接。为此,必须为每个连接单独执行 MB_SERVER。每个连接必须使用单独的背景数据块、连接 ID 和 IP 端口。S7-1200 仅允许每个 IP 端口进行一个连接。

为了达到最佳性能,应在每个程序周期为各个连接执行 MB_SERVER。CONNECT 参数使用系统数据类型 TCON_IP_V4。这些数据结构的相关示例位于名为“Modbus 连接”的数据块中。

“Modbus 连接”数据块包含两个 TCON_IP_V4 结构:“TCPpassive_1”(针对连接 1)和“TCP_passive_2”(针对连接 2)。

程序段注释中描述的连接属性 ID 和 LocalPort 为存储在 CONNECT 数据结构中的数据元素。TCON_IP_V4 CONNECT 数据同时包含 RemoteAddress ADDR 数组中的 IP 地址。

TCPpassive_1 和 TCP_passive_2 内的 IP 地址分配对建立 TCP 服务器连接没有影响,但是会决定哪些 Modbus TCP 客户端可通过与各 MB_SERVER 连接进行通信

MB_SERVER 被动侦听 modbus 客户端消息,并将进入消息的 IP 地址与存储在相应 RemoteAddress ADDR 数组中的 IP 地址进行比较。

两个 MB_SERVER 指令可使用以下三种 MB_SERVER IP 地址变量:

● IP 地址 = 0.0.0.0

各 MB_SERVER 将响应使用任意 IP 地址的所有 Modbus TCP 客户端。

● IP 地址 = TCPpassive_1 和 TCPpassive_2 中的 IP 地址相同

两个 MB_SERVER 连接仅响应来自该 IP 地址的 Modbus 客户端。

● IP 地址 = TCP_passive_1 和 TCP_passive_2 中的 IP 号不同

各 MB_SERVER 仅响应来自其 TCON_IP_V4 数据中存储的 IP 地址的 Modbus 客户端。

程序段 1:连接 #1,背景 DB =“MB_SERVER_DB”、“Modbus connections.TCPpassive_1”内(ID = 1 且 LocalPort = 502)

0f292906-716f-11ed-8abf-dac502259ad0.png

程序段 2:连接 #2,背景 DB =“MB_SERVER_DB_1”、“Modbus connections.TCPpassive_2”内(ID = 2 且 LocalPort = 503)

0f45d632-716f-11ed-8abf-dac502259ad0.png

示例:MB_CLIENT 1:通过公共 TCP 连接发送多个请求

多个 Modbus 客户端请求可通过同一连接发送。为此,必须使用相同的背景数据块、连接 ID 和端口号。

因为两个 MB_CLIENT 框使用相同的 CONNECT 参数 TCON_IP_v4 数据结构 "Modbus_connections".TCPactive_1),因此连接 ID、端口号和 IP 地址均相同。CONNECT IP 地址数据分配目标 Modbus TCP 服务器的 IP 地址。

在任意给定时间内,只能有一个 MB_CLIENT 处于激活状态。一个客户端完成执行后,下一个客户端才能开始执行。由程序逻辑负责执行顺序逻辑。

本示例所示为两个客户端从单个 Modbus 客户端读取远程数据并将数据传送至 Modbus 客户端 CPU(从 M1000.0 起始的M 存储器)。并捕获返回的错误(可选)。

程序段 1:Modbus 功能 1 - 从使用“Modbus 连接”.TCPactive_1 中所分配的 IP 地址的 Modbus TCP 服务器中读取 16 位输出位。

0f5eabc6-716f-11ed-8abf-dac502259ad0.png

程序段 2:Modbus 功能 2 - 从使用“Modbus 连接”.TCPactive_1 中所分配的 IP 地址的 Modbus TCP 服务器中读取 32 位输入位。

0f8515d6-716f-11ed-8abf-dac502259ad0.png

示例:MB_CLIENT 3:输出映像写入请求

本示例所示为 Modbus 客户端请求将位数据从本地 CPU 存储区(起始地址为 M1000.0)传送至远程 Modbus TCP 服务器。

程序段 1:Modbus 功能 15 - 在 Modbus 服务器中写入输出位

0fa27df6-716f-11ed-8abf-dac502259ad0.png

示例:MB_CLIENT 4:协调多个请求

必须确保各个 Modbus TCP 请求都完成执行。必须由程序逻辑来控制执行顺序。下面的示例显示了首个和第二个客户端请求输出如何控制执行顺序。

该示例所示为两个客户端使用同一 CONNECT 连接数据(不同时使用)。

客户端将保持寄存器数据从同一远程 Modbus TCP 服务器传送至同一本地 CPU 存储区 M 地址。此外,还捕获了返回的错误,这是可选的。

程序段 1:Modbus 功能 3 - 读取 Modbus TCP 服务器保持寄存器字

0fc485ea-716f-11ed-8abf-dac502259ad0.png

程序段 2:Modbus 功能 3 - 读取 Modbus TCP 服务器保持寄存器字

0fe24ce2-716f-11ed-8abf-dac502259ad0.png






审核编辑:刘清

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

    关注

    68

    文章

    10825

    浏览量

    211147
  • ModBus协议
    +关注

    关注

    3

    文章

    174

    浏览量

    33388
  • TCP通信
    +关注

    关注

    0

    文章

    146

    浏览量

    4217

原文标题:S7 1200-Modbus TCP 示例

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

收藏 人收藏

    评论

    相关推荐

    使用协议栈实现Modbus TCP客户端应用

    自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例。所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,这一篇中我们将解说如何使用协议栈实现一个
    的头像 发表于 12-13 16:18 1712次阅读
    使用协议栈实现<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>客户端应用

    Modbus TCP通信报文解析

    Modbus TCP是在TCP/IP网络上运行的Modbus的实现,旨在允许Modbus ASCII/RTU协议在基于
    发表于 09-20 15:55 2.8w次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>通信报文解析

    Modbus TCP转profinet网关连接1200plc在博图软件快速配置示例# ModbusTCP

    MODBUSTCP
    兴达易控
    发布于 :2023年12月12日 17:40:03

    Modbus TCPModbus RTU的实现

    使用ZLSN2040、NETCOM2040实现Modbus TCPModbus RTU的转化。1.Modbus TCP
    发表于 08-10 10:04

    Modbus TCP如何使用

    大家好。我有ApIC32 MX575 F512L,它使用了Modbus TCP在从配置(它完美地工作)。现在,我需要实现另一个软件(也就是FPIC32 MX575 F512L),使主板工作在主模式中
    发表于 01-08 14:25

    Modbus/TCP通讯配置

    MODBUSTCP 是简单的、中立厂商的用于管理和控制自动化设备的MODBUS 系列通讯协议的派生产品,它覆盖了使用TCP/IP 协议的Intranet和Internet环境中MODBUS 报文
    发表于 09-30 09:13 38次下载
    <b class='flag-5'>Modbus</b>/<b class='flag-5'>TCP</b>通讯配置

    Modbus TCP通讯协议概述

    Modbus TCP通讯概述 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列讯协议的派生产品,显而
    的头像 发表于 01-04 17:51 3w次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>通讯协议概述

    Modbus RTU和Modbus TCP的区别

    Modbus RTU和Modbus TCP的区别: 1.概念不同:MODBUS是一种标准的工业控制数据交换协议,可以通过RTU和ASCII交换协议数据。RTU通过二进制数据直接传输数据
    发表于 08-03 17:00 5.4w次阅读

    Modbus TCP常见问题

    Modbus RTU和 Modbus TCP的区别?
    的头像 发表于 12-19 14:57 3225次阅读

    ModBus RTU 与 ModBus TCP

    一、两个密切相关的协议:RTU 与 TCP ModBus RTU和ModBus TCP作为ModBus协议的两个主要变体,传统上,
    的头像 发表于 02-07 10:05 2965次阅读

    如何仿真Modbus_TCP

    仿真Modbus_TCP
    的头像 发表于 02-07 10:16 4809次阅读
    如何仿真<b class='flag-5'>Modbus_TCP</b>

    Modbus TCP通讯概述

    MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环
    的头像 发表于 04-20 09:46 2751次阅读

    CCLINK IE FIELD BASIC转MODBUS-TCP网关MODBUS TCP协议详解

    协议的不同,数据读取困难,这是很多生产管理系统的难题。但是现在,远创智控YC-CCLKIE-TCP通讯网关,让这个问题变得非常简单。这款通讯网关可以将各种MODBUS-TCP设备接入到CCLINK
    的头像 发表于 07-11 12:15 1392次阅读
    CCLINK IE FIELD BASIC转<b class='flag-5'>MODBUS-TCP</b>网关<b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b>协议详解

    EtherCAT转Modbus TCP协议网关(JM-ECT-TCP

    JM-ECT-TCP网关实现EtherCAT网络与Modbus TCP网络之间的数据通讯,即将Modbus TCP设备转换为EtherCAT
    的头像 发表于 09-07 17:05 305次阅读
    EtherCAT转<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>协议网关(JM-ECT-<b class='flag-5'>TCP</b>)

    MODBUS TCP 转 CANOpen

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