分享

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

 江海博览 2023-11-04 发布于浙江
煌苑自动化
煌苑自动化
2023-8-23 17:40

PLC 之间的通信是自动化项目中的常见要求。在现代 PLC 中,可用的通信选项如此之多,以至于很难决定使用哪一种。每种通信选项都有优点和缺点,以及独特的工作方式。

在本文中,我将提供在两个 S7 PLC 之间配置 Modbus/TCP 的快速入门指南。它将演示如何在 TIA Portal 中将 S7 PLC 配置为 Modbus 服务器或客户端。

Modbus/TCP 的优点

Modbus/TCP 可通过以太网路

Modbus/TCP 通信可以通过以太网路,这意味着不同子网上的两个设备可以进行通信。与S7 Communication 等协议相比,这是一个巨大的优势,S7 Communication 等协议可以在子网之间路由数据包。

Modbus/TCP 具有内置诊断功能

Modbus/TCP 通信协议定义了客户端和服务器之间发生的通信超时。这意味着,如果两个设备之间的通信中断,我们会收到一条错误消息,提醒我们出现了问题。

Modbus/TCP 可与优化数据块配合使用

由于 Modbus/TCP 是一种相对现代的协议,因此它可以与 TIA Portal 中的优化数据块配合使用。这使其成为利用 S7-1200 和 S7-1500 控制器技术创新的新项目的理想选择。

对于遗留系统,Modbus/TCP 还可以与未优化的数据块一起使用。

Modbus/TCP 与供应商无关

Modbus/TCP 是大多数工业设备都支持的通信协议。这意味着通信协议不依赖于特定供应商的硬件(如 S7 通信)。因此,Modbus/TCP 是不同制造商制造的设备之间进行通信的理想通信协议。

Modbus/TCP 的缺点

Modbus/TCP 不是安全通信协议

Modbus/TCP 不提供在设备之间通信时使用安全性或加密的选项。这会在自动化系统中造成潜在的安全漏洞。

Modbus/TCP 需要客户端和服务器端编程

与单侧通信机制 S7 通信不同,要使两个设备通过 Modbus/TCP 进行通信,必须对两个设备进行编程。在 TIA Portal 中,这意味着发送 PLC 必须使用 MB_CLIENT 指令实例进行编程,接收 PLC 必须使用 MB_SERVER 指令实例进行编程。

基于这些优点和缺点,我们可以看出,在以下情况下使用 Modbus/TCP 通信协议是有意义的:

我们正在不同制造商制造的设备之间进行通信,

当安全性不是问题时

使用Modbus/TCP进行PLC-PLC通信

硬件配置

为了演示如何在两个 S7-1500 PLC 之间配置 Modbus/TCP 通信,我创建了一个新的博途 TIA Portal 项目并向该项目添加了两个 PLC。

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

硬件配置

软件配置

正如我之前提到的,Modbus/TCP 是一种双向通信协议。这意味着我们必须对发送和接收 PLC 进行编程。我们首先配置发送 PLC PLC_1。

MB_CLIENT配置

在 OB1 中,我添加了对 MB_CLIENT 指令的调用,该指令可在指令工具箱的通信 > 其他 > MODBUS TCP 下找到。在此文件夹中,您还可以看到 MODBUS TCP Redundancy 文件夹。这些说明是一个付费选项,西门子并非免费提供。

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

创建对 MB_CLIENT 的调用

创建用于调用 MB_CLIENT 的实例数据块后,我可以开始参数化该块。

REQ 引脚通知 Modbus 客户端轮询与 Modbus 服务器交换的数据。如果 REQ 引脚始终处于高电平,则客户端将以指令预定义的速率轮询服务器。在此示例中,我将 REQ 引脚设置为 True,以便客户端不断轮询服务器。

DISCONNECT 引脚强制客户端与服务器断开连接。在此示例中,我将 DISCONNECT 引脚设置为 False。

MB_MODE 引脚定义来自客户端的 Modbus 请求的模式。您可以使用值 0 选择读取模式,使用值 1 选择写入模式。这里我使用一个值为1的常量来表示我们要使用Modbus客户端向服务器发出写请求。

MB_DATA_ADDR 引脚是对将在客户端和服务器之间的通信中使用的保持寄存器的引用。在 S7 PLC 中,保持寄存器位于地址 40,001 至 49,999。在此示例中,我将使用位于地址 40,0001 的第一个保持寄存器。

MB_DATA_LEN 引脚定义写入服务器的数据长度。该长度用保持寄存器表示。一个保持寄存器是两个字节。在这个例子中,我正在写入2个保持寄存器,即8字节的信息。

MB_DATA_PTR 引脚是指向我们想要从客户端写入服务器的数据的指针。在此示例中,我在 PLC 硬件配置中的内存字节 0 处启用了时钟字节,并创建了指向该位置的指针。

CONNECT 引脚与 UDT TCON_IP_v4 的实​例互连,其中包含连接到其他 PLC 的所有连接信息。在此示例中,我创建了一个新的数据库来存储此信息并将成员与指令互连。

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

MB_CLIENT配置

CONNECT 引脚的配置如下所示。

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

客户端连接配置

MB_SERVER 配置

在 PLC_2 中,我创建了 MB_SERVER 指令的实例。

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

MB_SERVER 调用

在这个块上,我们有几个引脚需要参数化。

再次,DISCONNECT 引脚可用于强制断开客户端和服务器之间的通信。我已将值 False 连接到此输入。

接下来,MB_HOLD_REG 引脚是一个指针,指向从客户端接收到的数据将被写入的位置。在此示例中,我创建了一个 DB 来存储数据并将 DB 的成员连接到引脚。

最后,我们有一个 CONNECT 引脚,其中包含与其他 PLC 连接的信息。我再次将 TCON_IP_v4 类型的成员与名为 DB_Connection 的新数据库互连。

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

MB_SERVER 配置

CONNECT 引脚的配置如下所示:

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

服务器连接配置

下载并上网

配置了 Modbus 客户端和服务器后,我们可以下载到 PLC 并与两个 PLC 联机以查看通信是否按预期工作。

在两个 PLC 中,您应该看到连接已建立,并且 MB_CLIENT 和 MB_SERVER 块的状态引脚处的值正在更新以提供有关通信的诊断信息。值 16#7006 表示正在发送数据,16#7007 表示正在接收数据。

分分钟教会你PLC 与 Modbus/TCP 通信,赶紧收藏!

如果您要断开 PLC 之间的连接,状态引脚将更新以指示检测到的错误。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多