Jump to content
  • Sign in to follow this  

    跨 PLC 系统传输数据 – TSEND_C 和 TRCV_C

       (0 reviews)

    caixiaofeng

    在上一篇文章中,我们讨论了如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立连接,以及如何使用 TSEND 和 TRCV 块在它们之间移动数据。

    PLC 系统传输数据
    在本文中,我们将学习一条新指令,可用于使用 TSEND_C 和 TRCV_C 块跨 PLC 系统进行通信和传输数据。

    TSEND_C

    TSEND_C 指令是 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。

    TSEND_C 指令是异步执行的,具有以下功能:

    • 与 TCON 块类似,建立通信连接。
    • 通过类似于 TSEND 块的现有通信连接发送数据。
    • 与 TDISCON 类似,终止或重置通信连接。

    因此,TSEND_C 被称为“紧凑”,因为它同时充当 3 个以上的块。

    TRCV_C

    TRCV_C 指令也是一条 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。

    TRCV_C” 指令异步执行,依次实现以下功能:

    • 建立和建立类似于 TCON 的通信连接。
    • 通过类似于 TRCV 的现有通信连接接收数据。
    • 与 TDISCON 类似,终止或重置通信连接。

    因此,TRCV_C 被命名为“紧凑”,因为它同时充当 3 个以上的块。

    在我们的 PLC 项目中使用 TSEND_C 和 TRCV_C

    在上一篇文章中,当我们需要建立并将数据从 PLC_1 发送到 PLC_2 时,我们必须在每个 PLC 中使用三个不同的块。 见图1。

    89-1.gif

    图 1. PLC_1内部逻辑

    如您所见,我们使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TSEND 从 PLC_1 发送数据。 PLC_2 也是如此。 见图 2。

    89-2.gif

    图 2 PLC_2 逻辑

    我们再次使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TRCV 接收来自 PLC_1 的数据。

    现在,我们想要替换所有这些块并尝试使用 TSEND_C 和 TRCV_C 来实现相同的功能。

    首先,在需要发送数据的 PLC_1 中,我们将使用 TSEND_C 块,只需将该块拖放到主 OB1 内即可。 见图 3。

    89-3.gif

    图 3. 添加 TSEND_C 块。

    由于 TSEND_C 本质上是一个功能块,因此系统会要求您创建一个数据实例。 见图 4。

    89-4.gif

    图 4. 为 TSEND_C 创建实例

    TSEND_C 看起来与 TSEND 块类似,因为您需要进行一些配置并添加一些信号。 见图 5。

    89-5.gif

    图 5. TSEND_C 块

    现在,我们需要一个信号来发送 REQ 和数据并配置连接。 对于 REQ 信号,我们创建了一个 SendData 标签。

    另外,我们可以拖放上一篇文章创建的数据块,我们需要将其发送到 PLC_2,我们可以将其拖放到块的 DATA 输入处。 见图 6。

    89-6.gif

    图 6. TSEND_C 块的配置。

    要配置块的连接参数,我们可以按块顶部的小配置图标打开配置视图。

    配置视图看起来与 TCON 块的配置视图非常相似。 见图 7。

    89-7.gif

    图 7. TSEND_C 的连接参数

    我们已经在之前的文章中展示了如何配置连接参数,因此我们可以像使用 TCON 块一样进行操作,见图 8。

    89-8.gif

    图 8 连接参数配置

    通过这个连接配置,我们就完成了 TSEND_C 的所有配置。 请注意,与配置 TCON、TDISCON 和 TSEND 块相比,它快了多少。

    现在,我们需要将 TRCV_C 添加到 PLC_2,以便它可以接收从 PLC_1 发送的数据。 在 PLC_1 的主 OB1 中,只需将 TRCV_C 拖放到您的逻辑中即可。 请参见图 9。请记住为 TRCV_C 块创建一个数据实例。

    89-9.gif

    图 9. 添加 TRCV_C

    将 TRCV_C 添加到您的逻辑后,我们需要对其进行配置。 正如我们对 TSEND_C 所做的那样,我们需要添加一个信号来启用数据接收,并且我们还需要添加将在其中保存数据的数据块。 见图 10。

    89-10.gif

    图 10.TRCV_C

    我们将 RecieveData 标签定义为 EN_R 信号。 见图 11。

    89-11.gif

    图 11.定义 EN_R 标签

    请记住取消选中数据块的 “优化块访问” 选项,否则该块将无法像我们在上一篇文章中展示的那样工作。

    接下来,我们需要配置 TRCV_C 块的连接参数,就像我们对 TSEND_C 所做的那样,请记住,未指定的伙伴 PLC 现在是 PLC_1,见图 12。

    89-12.gif

    图 12 TRCV_C 连接参数

    PLC 项目模拟

    现在我们已经配置了 TSEND_C 和 TRCV_ C 块,我们想要模拟我们的项目并看看它们将如何工作,但首先,我们将创建一个简单的逻辑来自动更新将发送到 PLC_2 的 PLC_1 的数据。 见图 13。

    89-13.gif

    图 13. 自动更新数据的简单逻辑。

    现在让我们编译并开始我们的项目的模拟。 您会注意到的第一件事是 PLC_1 和 PLC_2 将立即尝试建立连接,因为我们设置了 TSEND_C 和 TRCV_C,它们会自动尝试建立连接。 这就是两个 PLC 之间存在连接的原因。 见图 14。

    89-14.gif

    图14. 直接建立连接。

    可以看到,PLC 之间的连接是直接建立的,因为 TSEND_C 和 TRCV_C 中的 CONT 参数设置为 TRUE,这意味着该块将自动尝试与伙伴 PLC 建立连接。 我们可以在这里放置任何控制信号来控制连接的建立。

    您可以看到的另一件事是 TSEND_C 的 REQ 和 TRCV_C 的 EN_R 设置为 FALSE,这就是为什么 PLC 之间不会有任何数据移动。 见图 15。

    89-15.gif

    图 15. PLC 之间无数据传输。

    如果 TSEND_C 的 REQ 信号设置为 true,则 PLC_1 将尝试发送数据,但会等待其他 PLC 允许接收数据,见图 16。

    89-16.gif

    图 16. REQ 为真。

    正如您所看到的,SendData 为 TRUE,但没有发送任何数据,因为 RecieveData 仍然为 false。

    仅当 ReceiveData 设置为 true 时,PLC_2 才会从 PLC_1 接收数据。 见图 17。

    89-17.gif

    图 17. 数据发送至 PLC_2

    正如您所看到的,RecieveData 何时为 true。 数据将从 PLC_1 发送到 PLC_2,但是,您可以看到两个 PLC 内部的数据是不同的,因为 PLC_1 的数据按照我们之前所做的简单逻辑自动变化。 这意味着 EN_R 信号允许传输数据一次,当我需要再次传输数据时,该信号必须变为 false,然后再次变为 true。

    查看随附的 TIA Portal 项目并查看 PLC 之间的数据传输。

    Sign in to follow this  


    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


×
×
  • Create New...