文章目录

西门子PLC的循环中断OB35应用

发布于 2026-03-31 03:03:51 · 浏览 6 次 · 评论 0 条

西门子 PLC 的循环中断 OB35 应用

在工业自动化控制中,某些任务对时间精度要求极高,例如 PID 闭环控制、高速计数处理或特定频率的脉冲输出。主程序循环 OB1 的执行时间是不固定的,受程序长度和指令复杂度影响,无法满足毫秒级的精准定时需求。西门子 PLC 提供的循环中断组织块 OB35 专门用于解决这一问题。它能按照预设的时间间隔优先执行,确保关键逻辑的稳定运行。本指南将手把手教你如何在 TIA Portal 中配置并使用 OB35

准备工作

在开始之前,请确保你具备以下软硬件环境:

  1. 安装好西门子博途软件 TIA Portal(推荐 V15 及以上版本)。
  2. 准备一台支持中断功能的 PLC,如 S7-1200S7-1500 系列。
  3. 准备好编程电脑与 PLC 之间的通讯连接(网线或 MPI/DP 电缆)。
  4. 明确需要定时执行的任务周期,例如 100ms10ms

第一步:创建循环中断组织块

打开 你的 TIA Portal 项目,进入 左侧项目树中的 程序块 文件夹。双击 添加新块 图标,弹出 新建块对话框。

  1. 选择 块类型为 组织块 (OB)
  2. 点击 组织块名称下拉菜单,找到选择 OB35 - 循环中断
  3. 确认 语言类型为 梯形图 (LAD)SCL,根据你的习惯设定。
  4. 点击 确定 按钮 完成 创建。

此时,项目树中会出现一个名为 OB35 的块。这是系统预留的中断接口,无需手动调用,PLC 运行时会自动管理。


第二步:设置中断循环时间

默认的循环时间可能不符合你的工艺要求,需要 修改为特定值。

  1. 双击 项目树中的 OB35 打开 编辑器。
  2. 点击 编辑器上方的 属性 标签页。
  3. 找到 常规 分类下的 属性 列表。
  4. 定位循环中断 设置项。
  5. 修改 循环间隔 参数。例如,输入 100选择 单位 ms

这意味着 OB35 内的程序每隔 100ms 会被 CPU 强制执行一次,无论主程序 OB1 运行到哪里。设置完成后,按下 Ctrl + S 保存 配置。


第三步:编写中断程序逻辑

OB35 内部的空间宝贵,务必 只放置时间敏感的关键代码。

  1. 切换程序视图
  2. 拖动 所需的指令到 OB35 的网络中。
  3. 编写 具体控制逻辑。例如,实现 一个累加计数器:
// 在 OB35 中每隔 100ms 执行一次
"Global_DB".Counter_Value := "Global_DB".Counter_Value + 1;
  1. 避免OB35 中使用耗时指令,如大量通信读取、复杂数学运算或文件操作。
  2. 禁止 在中断程序中等待输入信号,这会阻塞中断返回。

逻辑编写完毕后,点击 编译按钮 检查 是否有错误。


第四步:下载与监控

配置完成后,需要 将程序下载到 PLC 并验证效果。

  1. 选中 项目树中的 程序块 文件夹。
  2. 点击 工具栏上的 下载 图标(或 按下 F3)。
  3. 选择 目标设备,点击 开始搜索
  4. 勾选 需要下载的块,点击 下载
  5. 确认 停机提示,点击 继续 完成 下载。
  6. 点击 监视 按钮 开启 在线状态查看。
  7. 观察 OB35 内的计数器变量,验证 数值是否按预期频率增加。

OB1 与 OB35 的核心区别

理解两者的差异有助于合理分配程序任务。下表列出了关键参数的对比:

特性 OB1 (主循环) OB35 (循环中断)
执行机制 循环扫描,时间不固定 定时触发,时间固定
优先级 最低 (等级 1) 较高 (等级 12)
典型周期 10ms - 100ms 波动 固定 1ms - 60s 可设
适用场景 逻辑控制、通信、人机交互 PID 控制、高速处理、精准计时
超时影响 看门狗报错停机 触发时间错误中断 (OB80)

中断执行流程示意

为了更直观地理解 OB35 如何打断主程序,请参考以下执行流程图。当到达设定时间时,CPU 会暂停当前任务,优先处理中断。

graph TD A["PLC 启动"] --> B["执行主程序 OB1"] B --> C{"到达中断时间?"} C -- 否 --> B C -- 是 --> D["暂停 OB1"] D --> E["执行中断程序 OB35"] E --> B

图中显示,OB1 是持续运行的基线。一旦满足时间条件,流程立即跳转至 OB35。执行完毕后,流程返回 OB1 暂停处继续运行。这种机制保证了定时任务的优先级。


常见故障与排查

在使用过程中,可能会遇到中断未执行或报错的情况,请按以下步骤排查。

  1. 检查 循环时间设置。如果设置时间小于 CPU 处理最小周期, 导致时间错误。
  2. 查看 诊断缓冲区。若发生时间超载,系统 调用 OB80 时间错误中断。
  3. 确认 OB80 是否存在。如果没有下载 OB80,严重错误 会导致 PLC 停机。
  4. 优化 OB35 程序长度。确保指令执行时间远小于中断周期。
  5. 计算 最大负载。公式如下:

$$ T_{load} = \frac{T_{exec}}{T_{cycle}} \times 100\% $$

其中 $T_{exec}$ 是 OB35 执行耗时,$T_{cycle}$ 是设定周期。确保 $T_{load}$ 低于 50% 以预留安全余量。

  1. 禁用 未使用的中断。若不需要 OB35务必 在项目树中 删除 该块,防止 CPU 尝试调用空块产生警告。
  2. 重启 PLC 测试。某些配置更改 需要 断电重启后才能生效。

记录 每次修改后的系统响应时间,建立 性能基线以便后续维护。若发现周期抖动过大,检查 是否有其他高优先级中断(如硬件中断)占用了资源。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文