在之前的文章中,我们讨论了不同类型的组织块,例如主 OB1 是主循环程序块,在本文中我们将讨论另一个循环组织块。OB30 或循环中断 OB。
内容:
- 什么是循环中断 OB30?
- OB1 的主周期是什么?
- 为什么需要 OB30?
- 如何配置循环中断?
- 如果我有多个循环中断怎么办?
- 结论。
什么是循环中断 OB30?
循环中断 OB30 是一个组织块,它以指定且精确的时间间隔被调用和执行,与连续调用和执行的主循环 OB1 不同,循环中断将按照您在创建循环中断 OB 时配置的时间间隔被调用 。
例如,如果我创建的 OB30 的时间间隔(也称为周期时间)为 20ms,则意味着操作系统将中断主周期 OB1 并每 20ms 调用 OB30。
必须确保循环中断 OB 的运行时间必须小于其时间间隔。否则,当 OB30 的本次调用仍在执行时,仍有可能发生下一次 OB30 的调用到达。在这种情况下,操作系统会生成时间错误,可能导致 PLC 进入 STOP 模式。
什么是主循环 OB1?
主循环 OB1 是负责由 PLC 循环执行逻辑的组织块。每当您创建新项目并添加 PLC 时,软件都会自动创建主 OB1。
PLC 代码的基本基础是循环行为,这意味着您需要连续执行代码。当逻辑处理完成后,操作系统将再次开始处理它。这是通过使用主 OB1 来完成的,您可以在该 OB1 中放置和调用所有逻辑和代码,操作系统将确保连续执行它。
主 OB1 循环时间是指循环程序的运行时间,包括所有嵌套程序部分(例如 FC、FB 和更高优先级 OB)的运行时间。如果创建了多个程序循环 OB,则每个程序循环 OB 都会影响循环时间。
操作系统监视循环时间是否仍然小于配置的最大循环时间。如果超过最大循环时间,PLC 将根据您的编程进入 STOP 模式或调用 OB80。
为什么需要 OB30?
有人可能会说,我可以将 OB30 内的任何功能放在主 OB1 中,并尝试摆脱它,这取决于当今大多数 PLC 的快速性能。有时这可能没问题,但并非每次都如此。
根据 PLC 的性能,主循环时间可能在 1 到 150 毫秒之间;它可以不同,但这是标准配置,该循环时间取决于很多因素,例如 PLC 程序的大小、逻辑内部的中断以及其他因素,这些因素很可能会使循环的运行时间不稳定。
现在,如果您需要精确地每 10 毫秒执行某些功能,而不是 9 毫秒或 11 毫秒。现在您不能依赖主 OB1,因为结果可能达不到预期。在这种情况下,您使用循环中断 OB30,将其配置为您想要的 10ms,操作系统将确保精确地每 10ms 调用并执行此函数。这就是为什么它被称为中断;因为它会中断主 OB1 的执行来调用并执行您的 OB30。
需要 OB30 的功能示例
- PID 控制器处理。
- 安全电路监控。
- 监控机器之间的通信。
前面的所有示例都需要在特定时间连续监视和检查参数,因为它们与实际物理量或机器安全相关。不应延迟执行此类功能,因为它们会影响流程的安全性和连续性。
如何配置循环中断?
创建循环中断时,需要配置一些参数。请参见图 1 添加新 OB30。
图 1 – 添加新的循环中断 OB30
创建循环中断时,您可以在块的属性中找到许多可以设置的参数,请参见图 2。
图 2——OB30的特性
您需要考虑的最重要的参数如下:
- 周期
使用参数“循环时间”设置循环中断 OB 两次调用之间的时间间隔。它是 1 µs 的整数倍。
- 相位偏移
在此,您可以设置开始时间相对于循环时间的倍数偏移的时间段。
有关周期时间和相位偏移配置,请参见图 3。
图 3 – 设置 OB30 的循环时间和偏移量
- 循环中断 OB 的优先级
这是配置循环中断时必须考虑的另一个重要参数,因为您可能有多个循环块,如果需要同时调用两个不同的 OB,操作系统将调用并执行该块 更高优先级的编号。
您应该知道 PLC 主程序循环 OB1 的优先级编号为 1,这是块可以具有的最低优先级。这就是 OB1 可以被任何其他块调用中断的原因。见图4。
图 4 – 设置 OB30 的优先级
如果我有多个循环中断怎么办?
在逻辑中出现多个循环中断的情况并不罕见。如果您的 PLC 逻辑中有两个 PID 控制器,那么您可能需要两个循环中断来处理每个 PID。在这种情况下,需要确保不同循环中断的调用和执行不会重叠。
例如,如果 OB30 的间隔循环时间为 5ms,OB31 的循环间隔为 10ms,则意味着 OB30 的第二次调用也将是调用 OB31 的时间。这可能会导致逻辑错误,即使您将其中一个的优先级设置为高于另一个,也会扰乱较低优先级块的循环时间。见图5。
图 5 – 调用不同循环中断的重叠
在这种情况下,当您使用多个循环中断 OB 时,可能建议使用相位偏移。
如果它们的周期时间具有公倍数,则可以使用相位偏移来防止同时启动时间。见图6。
图 6 – 不同 OB 调用之间的偏移
因此,为了避免这种重叠,我们将 OB31 的偏移时间设置为 1 ms。
这意味着 OB31 时间间隔的计数将比 OB30 的起始时间偏移 1ms。见图7。
图 7 – OB31 的偏移设置
结论
- 循环中断对于不应该面临任何延迟的时间关键任务非常有用。
- 您的逻辑中可以有多个循环中断。
- 使用循环中断的偏移设置来避免同时启动时间。
- 使用优先级设置来控制不同循环中断的执行顺序。
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 accountSign in
Already have an account? Sign in here.
Sign In Now