Jump to content
  • Sign in to follow this  

    西门子 Tia Portal – OB20 延时中断组织块

       (0 reviews)

    leigehong

    在之前的文章中,我们讨论了什么是组织块,并讨论了主循环中断 OB1 和时间中断 OB10。

    在本文中,我们将继续讨论不同的 OB,这次我们讨论的是延时中断组织块或 OB20

    内容:

    • 什么是 OB20?
    • 如何调用 OB20?
    • SRT_DINT 指令的参数。
    • 示例程序。
    • 结论。

    什么是延时中断 (OB20)?

    OB20 是一个组织块,由操作系统调用并执行,但是我们必须告诉操作系统什么时候调用这个 OB20。

    操作系统从用户 PLC 程序获取信息来调用该 OB20,它将等待配置的延迟时间,然后调用并执行 OB20 内部的任何逻辑。

    我们通过在项目树中添加新块来创建 OB20 块。见图1。

    144-1.gif

    图 1 – 创建一个新的 OB20 块

    现在我已经创建了延时中断,那么什么时候执行呢? 以及如何配置块执行的时间延迟?

    同样,OB20 是一个组织块,这意味着您不调用要执行的块,而是告诉操作系统何时可以调用它并执行其中写入的任何功能。

    如何让操作系统调用 OB20?

    为了告诉操作系统我们要调用 OB20,我们使用 SRT_DINT 或启动时间延迟中断,见图 2。

    144-2.gif

    图 2 - 启动延时指令

    SRT_DINT 指令的参数

    从上图可以看出,可以使用 SRT_DINT 指令来调用 OB20。但您需要配置一些参数才能使指令正常工作。

    EN:在 EN 输入出现下降沿信号之前,不会执行指令。这意味着您必须指定一组条件中的一个条件来启用信号,并且只有当该条件为真然后再次为假时,指令才会起作用。

    OB_NR:您分配需要调用的延迟中断的编号,在我们创建 OB20 的情况下为 20,但我们可以创建多个延迟中断,然后我们必须使用单独的 SRT_DINT 指令调用每个延迟中断。

    DTIME:即执行OB20之前要等待的延迟时间,为了模拟,我们将这个时间设置为 5 秒。

    SIGN:调用延时中断 OB 时在 OB 的启动事件信息中出现的标识符。

    PLC 程序示例

    为了更好地理解 OB20,我们将创建一个简单的逻辑来了解如何调用和执行 OB20。我们将基于之前文章中为 OB1 和 OB10 制作的逻辑构建此 PLC 示例。

    在 OB20 内部,我们将创建一个逻辑,用于计算在我们为 OB20 配置的 5 秒延迟时间内调用和执行了多少个 OB1 周期。见图3。

    144-3.gif

    图 3 – OB20 内部逻辑

    在最后一张图中,您可以看到我们使用 MOVE 指令在 OB20 调用开始时以及执行后推送有关周期计数的信息。

    其余逻辑请参见图 4。

    144-4.gif

    图 4 – 计算 5 秒内有多少个周期

    之后,我们将循环计数的两个值相减,即可得到在五秒延迟内执行了多少个循环。

    现在我们已经创建了我们想要的逻辑,我们如何调用 OB20? 如前所述,我们必须使用 SRT_DINT 指令。我们将在之前配置为每分钟执行一次的 OB10 中使用该指令。这意味着 OB20 也将每分钟调用并执行一次,但延迟时间为 5 秒。

    在上一篇文章中,我们构建了一个逻辑来调用 OB1 被调用和执行的次数,我们还构建了另一个逻辑来每分钟调用 OB10。

    在本例中,我们将使用 OB10 的调用来调用 OB20。见图5。

    144-5.gif

    图 5 – 通过 OB10 调用 OB20

    我们之前说过,SRT_DINT 需要 EN 处的下降沿信号才能启动调用。这就是为什么我们使用 TimeOfDayInterruptEnabled 信号,我们知道执行 OB10 时该信号将为 true,然后返回 false,为我们提供所需的边沿信号。

    现在所有 PLC 逻辑都已完成,让我们编译并运行一个新的仿真。请参阅以下我们项目的模拟。

    spacer.png

    您首先在动画中看到周期计数的值为零,但是当调用 OB10 并且 TimeOfDayInterruptEnabled 为 true 时,逻辑将等待 5 秒,然后计数值将使用周期计数进行更新。

    结论

    • OB20 是由操作系统调用并执行的组织块。
    • 我们可以通过 SRT_DINT 指令告诉操作系统调用 OB20。
    Sign in to follow this  


    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

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

    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

Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...