[西门子] 一文解释一下关于TIA Portal循环中断OB

[复制链接]
查看281 | 回复0 | 2024-6-27 08:46:39 | 显示全部楼层 |阅读模式




    在自动化控制系统中,时间是一个至关重要的因素。TIA Portal的循环中断OB(组织块)提供了一种精确控制时间间隔执行任务的方法。
    循环中断OB的含义
    循环中断OB是在PLC(可编程逻辑控制器)中用于在固定时间间隔后执行特定任务的程序块。S7-1500 PLC最多支持20个循环中断OB,编号范围为30~38或大于等于123。



    一,循环中断OB的功能
    循环中断OB的主要功能包括:
    • 定时任务执行:在设定的时间间隔后自动执行任务。
    • 动态时间控制:使用SET_CINT指令动态设置间隔扫描时间和相移时间。
    • 状态查询:使用QRY_CINT指令查询循环中断的状态。




    二,循环中断OB的执行过程
    循环中断OB的执行过程通常如下:
    1、PLC启动后开始计时。
    2、达到设定的时间间隔后,操作系统启动相应的循环中断OB。
    3、如果有多个循环中断OB,可以通过设置相移时间来错开执行时间,避免冲突。


    三,循环中断OB的使用示例
    以下是一个使用循环中断OB的示例:
    1、点击添加新块,选择添加cyclic interrupt

    2、再数据块上创建一个新的变量





    3、编写对应的简单循环中断程序



    四,相移时间的设置
    当使用多个循环中断OB时,相移时间的设置可以防止执行时间的冲突。通过设置相移时间,可以确保即使多个循环中断OB有相同的间隔时间,它们也能够错开执行,保持系统的稳定性。
    下图中,没有设置相移时间,以相同的时间间隔调用两个 OB ,则低优先级的 OB 块将不能以固定间隔时间 t 执行;何时执行受高优先级的 OB 执行时间影响。


    下图中,低优先级的 OB 块可以以固定间隔时间 t 执行;相移时间应大于较高优先级 OB 块的执行时间。


    小结:如果以相同的时间间隔调用优先级较高和优先级较低的循环中断 OB ,则只有在优先级较高的 OB 完成处理后才会执行优先级较低的 OB 。低优先级 OB 的执行起始时间会根据优先级较高的 OB 的处理时间而延迟,如果希望以固定的时间间隔来执行优先级较低的 OB ,则优先级较低的 OB 需要设置相移时间,且相移时间应大于优先级较高的 OB 的执行时间。

    五,如何设置相移时间?
    请看下图的设置步骤。(请注意,如果程序中调用“SET_CINT”指令设置相移时间,则以程序中设定的时间为准)


    六,常见问题:
    使用循环中断需要注意什么?
    1、循环中断 + 延时中断数量 <= 20;
    2、循环间隔时间1~60000ms,通过指令“SET_CINT”设置错误的时间将报错16#8091;
    3、CPU 运行期间,可通过“SET_CINT”指令设置循环中断间隔时间、 相移时间;
    4、如果“SET_CINT”指令的使能端 EN 为脉冲信号触发;则 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括启动模式处于 RUN 模式时上电和执行 STOP 到 RUN 命令切换,循环中断间隔时间将复位为 OB 块属性中设置的数值;
    5、如果循环中断执行时间大于间隔时间,将会导致时间错误。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则