Jump to content
  • Sign in to follow this  

    西门子 Tia Portal – OB100 启动组织块

       (0 reviews)

    leigehong

    在之前的文章中,我们开始讨论 TIA Portal PLC 的不同组织块,讨论了 OB 是什么,并讨论了一些 OB,例如 OB1 - 主循环、OB10 和 OB20,分别表示时间延迟和时间延迟中断。在本文中,我们将讨论西门子 Tia Portal 中的 OB100 或启动组织块

    内容:

    • 什么是 OB100?
    • 为什么需要 OB100?
    • 启动期间的重要注意事项。
    • 简单的程序示例。

    什么是初创组织块(OB100)?

    OB100 或启动 OB 是一个组织块,在 PLC 启动时由操作系统调用并执行一次,即每次从 STOP 模式转换到 RUN 模式时一次。

    只有执行完 OB100 内部的所有启动函数后,主循环 OB1 才会被调用和执行。

    您的 PLC 逻辑中可以有多个启动 OB,如果发生这种情况,操作系统将从较低 OB 编号到较高编号开始一一调用并执行所有这些启动 OB。IE。如果您有 OB100 和 OB123,则将首先调用并执行 OB100,然后再调用并执行 OB123。

    执行 OB100 后,操作系统将输入模块读入 PII 并启动主循环程序 OB1。

    为什么需要 OB100?

    在启动循环逻辑之前,您可以使用 OB100 来执行许多您可能想要或需要执行的任务,原因如下:

    • 初始化变量。
    • 重置系统模块。
    • 重新校准传感器/执行器。
    • 在开始流程之前检查警报和安全状况。

    即使您尚未为逻辑创建启动 OB,操作系统在启动主逻辑之前仍然需要执行许多任务,其中一些任务是:

    • 清除非保留记忆
    • 清除 PIQ
    • 调用并执行启动 OB(如果有)。
    • 更新个人身份信息
    • 更改为 RUN 模式后启用输出。

    您是否注意到启动例程的最后一个任务是启用输出? 这就是为什么执行主循环程序 OB1 的第一步是将 PIQ 写入输出模块。

    启动期间的重要注意事项

    关于 “STARTUP” 模式,请注意以下几点:

    • 模块上的输出被禁用。
    • 过程映像被初始化。
    • 过程映像未更新。
    1. 为了在“启动”期间从输入读取当前状态,您可以通过直接 I/O 访问来访问输入。
    2. 为了在启动期间初始化输出,可以通过过程映像或直接 I/O 访问写入值。 在转换到“RUN”模式期间,这些值在            输出端输出。
    • 非保持性位存储器、定时器和计数器被初始化。
    • 数据块中的非保持性标签被初始化。
    • 在启动期间,尚未运行循环时间监控。

    简单程序示例

    在此示例中,我们将向 PLC 逻辑添加一个启动 OB100,并查看 OB100 执行了多少次。请参阅图 1 添加新的 OB100。

    142-1.gif

    图 1 – 添加 OB100

    正如您从最后一张图片中看到的,您添加启动组织块的方式与我们添加功能块的功能相同。

    在我们刚刚创建的 OB100 中,我们将添加一个简单的 ADD 指令,以累计 OB100 被调用和执行的次数。见图2。

    142-2.gif

    图 2 – OB100的累计执行次数

    现在,编译并运行您的程序,看看会发生什么。请参阅以下动画来了解 PLC 程序的模拟。

    spacer.png

    动画1

    从上面的动画中可以看到,OB100CycleCounter 为 1,并且当 PLC 模式从 STOP 转换为 RUN 时它不会改变。

    嗯,它确实发生了变化,但你看不到这种变化。每次 PLC 进入 STOP 模式,然后再次进入 RUN 模式。执行 OB100 后,计数器将重置为零,然后再次重置为 1。您还可以看到主 OB1 循环计数器发生变化,PLC 停止然后再次运行,OB1CycleCounter 将再次开始累加。

    为了看到启动计数器的变化,我们需要保留标签内存的值。见图3。

    142-4.gif

    图 3 – 保留 OB100CycleCounter 标签存储器

    我们保留 OB100CycleCounter 标签后,现在再次运行 PLC 仿真,看看会发生什么。参见模拟动画2。

    spacer.png

    动画2

    现在,您可以从上面的动画中看到,每次我停止 PLC 然后再次启动它时,启动计数器都会增加。由于现在保留了标签内存,因此该值不会重置为零,这就是您看到 OB100CycleCounter 的值累加的原因。

    现在,我需要向启动 PLC 逻辑添加额外的功能,即了解 PLC 上次启动的时间。我们将通过一个简单的逻辑来实现这一点,在启动时读取 PLC 的本地时间并将日期和时间移动到某个存储区域。见图4。

    142-6.gif

    图 4 – 启动时读取当地时间

    添加逻辑后,再次编译并运行模拟。参见 PLC 仿真动画3。

    spacer.png

    动画3

    从上面的动画可以看到,每次 PLC 启动时,启动日期和时间都会被记录在我们分配的内存区域中。现在我有了关于我的 PLC 启动了多少次以及上次启动时间是什么时候的信息。

    结论

    如果您想在运行循环过程之前评估某些功能,启动 OB 非常重要。您可以使用启动 OB 来初始化参数、校准传感器,甚至在允许流程运行之前检查安全条件。

    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...