PLC 中断组织块 OB30/OB40/OB8x 与综合设计

PLC S7-1200中断组织块实训与综合设计:循环中断OB30、硬件中断OB40、诊断OB82/插拔OB83/机架OB86、启动OB100与抢答器传送带彩灯

本篇为《电气控制与 PLC(西门子 S7-1200 / TIA 博途)》第八章”中断组织块与综合程序设计”的课堂实训整理。上半部分讲六类组织块(OB)的作用、编号与博途建块/组态方法,重点是循环中断 OB30、硬件中断 OB40/OB41、错误处理 OB82/OB83/OB86、启动 OB100;下半部分是四个综合程序设计大题:锅炉引风机/鼓风机顺序启停、四人抢答器、传送带行程开关顺序控制、8 路彩灯循环,并串讲交叉引用、多重背景 FB、自锁互锁等工程要点。与此前”用户程序结构(FC/FB/DB/OB 概念、时间中断与延时中断)”一篇互补,本篇侧重中断 OB 的实操配置与综合应用题。个别 OB 编号、定时器号、I/O 地址以教材和博途实际组态为准,已标注【以教材为准】。


一、核心结论(先记住这 22 条)

  1. 组织块(OB)是操作系统与用户程序之间的接口,由 CPU 在特定事件或状态下自动调用;用户程序通过编写不同 OB 来响应”循环扫描、启动、中断、错误”等事件。
  2. OB1 是程序循环组织块(主程序),CPU 处于 RUN 时从上到下循环扫描执行 OB1。
  3. S7-1200 常见中断/事件类 OB:启动组织块、时间中断、延时中断、循环中断、硬件中断,以及诊断错误、插拔、机架故障等错误处理组织块。
  4. 循环中断 OB(默认 OB30)按固定的时间间隔被周期性调用,与 OB1 的扫描周期无关;在其属性中可设置”循环时间(周期)”。
  5. 用循环中断让 Q0.0 每 500ms 翻转一次,即可得到0.5s 为 1、0.5s 为 0、周期 1s 的方波;改循环时间即改方波周期。
  6. QRY 是中断查询指令,可实时查询某中断(如循环中断、时间中断)的当前状态(启用/禁用等),也可按指定日期时间查询。
  7. 硬件中断 OB(编号从 OB40 开始)在发生硬件事件时执行,事件包括数字量输入的上升沿/下降沿、高速计数器事件等;它会中断正常循环程序、优先执行,用于快速响应(如立即停止关键设备)。
  8. 用 ATTACH 指令把硬件事件(输入通道)与硬件中断 OB 关联,DETACH 解除关联;还要在 CPU 属性的数字量输入通道里启用上升沿/下降沿检测。
  9. 硬件中断例:I0.0 上升沿触发 OB40 让 MW200 加 1,I0.1 上升沿触发让 MW200 减 1,每来一个沿动作一次。
  10. 诊断错误中断 OB82 在模块出现诊断事件(模块烧毁、短路、测量值超量程等)时调用;若程序中没有下载 OB82,CPU 会进入 STOP(停机)。
  11. 插拔中断 OB83 在 RUN 状态下插拔模块/导轨(设备不支持热插拔时)触发;没有 OB83 可能导致 CPU 异常停机。
  12. 机架故障 OB86 在 CPU 检测到分布式机架或分布式 I/O 站通讯丢失(站故障)时调用;缺失时 CPU 同样会停机。
  13. 启动组织块(默认 OB100)只在 CPU 从 STOP 切换到 RUN 时执行一次,执行完后才进入 OB1 循环,常用于上电初始化(如用 MOVE 给某 MW 送初始值)。
  14. 启动 OB 执行期间不更新过程映像,读到的是过程映像的规定(初始)值——了解即可。
  15. 交叉引用(Cross-reference)可查看任一变量(停止按钮、TON 定时器、电机线圈等)在哪些程序段、哪些块中被读/写,是排查与统一控制多台设备的重要调试工具(教材约 161 页)。
  16. 多台相同电动机可用一个功能块 FB(如 FB2)+ 多次调用统一实现启停逻辑;实例多、变量多时用多重背景(Multi-instance)集中管理背景数据,避免地址冲突。
  17. 注意 M 区地址重叠:MW20 包含 M20.0、M20.1 等位,用 MOVE 向 MW/M 位复制数据时不要让多个线圈占用重叠地址。
  18. 引风机/鼓风机顺序控制:开机先开引风机、延时 10s(T37)再自动开鼓风机;停机先停鼓风机、延时 20s(T38)后再停引风机。
  19. 启动(常开)按钮是瞬动信号,PLC 扫描下只接通一个扫描周期,必须用线圈自身常开触点自锁(启保停)才能保持输出;停止按钮常用常闭(低电平有效)。
  20. 工程上定时器触点一般不直接驱动输出负载,而是先驱动中间继电器 M,再由 M 去驱动输出 Q,逻辑更规范、便于扩展。
  21. 四人抢答器核心:主持人开始后用 T37 限定 10s 抢答窗口;先抢者用中间继电器自锁,并把其常闭触点串入其余三人支路实现互锁;灯亮 3s、音响响 2s,由定时器常闭触点定时切断。
  22. 传送带顺序控制靠行程开关 SQ1SQ5 作为输入,按工艺顺序逐台启动/停止电机并循环;8 路彩灯用 0.1s 定时器(T33/T37)配合移位/循环指令让 Q0.0Q0.7 依次点亮。

二、知识结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
S7-1200 中断组织块实训与综合程序设计(第8章)
│
├─ 1. 组织块 OB 总览(操作系统调用用户程序的接口)
│ ├─ 程序循环 OB1(主循环扫描)
│ ├─ 启动 OB100(STOP→RUN 执行一次,初始化)
│ ├─ 时间中断 OB10~OB17(设定日期/时刻)
│ ├─ 延时中断 OB20~OB23
│ ├─ 循环中断 OB30~OB38(固定周期,重点)
│ ├─ 硬件中断 OB40~OB47(上升/下降沿、高速计数,重点)
│ └─ 错误处理:诊断 OB82、插拔 OB83、机架故障 OB86(缺失则停机)
│
├─ 2. 循环中断 OB30 实训:建块→设循环时间→Q0.0 方波→QRY 查询
├─ 3. 硬件中断 OB40/OB41:ATTACH 关联、CPU 通道启用沿检测、MW 加减
├─ 4. 错误处理 OB82/OB83/OB86 与启动 OB100
│
├─ 5. 调试与结构化:交叉引用、多重背景 FB、MOVE 与地址重叠
│
└─ 6. 综合程序设计四大题
├─ 锅炉引风机/鼓风机顺序启停(T37 10s、T38 20s、自锁、常闭停止)
├─ 四人抢答器(10s 限时、先抢自锁互锁、灯 3s、音响 2s)
├─ 传送带行程开关顺序控制(SQ1~SQ5、M1/M2/M3、循环)
└─ 8 路彩灯循环(Q0.0~Q0.7、0.1s、移位/循环指令)

三、详细知识点

(一)组织块(OB)与中断总览

组织块是 CPU 操作系统与用户程序之间的接口。操作系统按照不同的事件(开始运行、循环扫描、定时时间到、硬件沿信号、模块出错等)去调用对应的 OB;用户把要在该事件下执行的程序写进相应 OB 即可。S7-1200 常用的组织块类别(第八章选择题高频):

类别 典型编号【以教材为准】 何时被调用 本次要求
程序循环组织块 OB1 CPU 在 RUN 时循环扫描执行 主程序
启动组织块 OB100(默认) STOP→RUN 时执行一次 初始化
时间中断组织块 OB10~OB17 按设定的日期/时刻(可一次性或周期)执行 了解/会查
延时中断组织块 OB20~OB23 由指令启动、延时设定时间后执行 前序课已讲
循环中断组织块 OB30~OB38 按固定时间间隔周期性执行 重点实训
硬件中断组织块 OB40~OB47 数字量沿、高速计数器等硬件事件触发 重点实训
诊断错误中断 OB82 模块诊断错误(短路、烧毁、超量程等) 重点
插拔中断 OB83 RUN 中插拔模块/导轨 了解
机架故障组织块 OB86 分布式机架/I/O 站通讯丢失 了解

选择题常让按顺序填写:”①程序循环、②时间中断、③延时中断、④循环中断、⑤硬件中断、⑥启动”,要能把名称与触发条件一一对应。

(二)循环中断 OB30 实训:用 Q0.0 输出周期 1s 方波

1. 控制要求

让输出 Q0.0 前 500ms 输出为 1、后 500ms 输出为 0,即 0.5s 高电平、0.5s 低电平交替,得到周期为 1s 的方波。该功能当然也能用定时器在 OB1 里”0.5s 高—0.5s 低”循环编程实现,但用循环中断更直接:让 OB 每隔 500ms 自动执行一次,在 OB 内对 Q0.0 取反即可。

2. 博途建块步骤

  1. 在项目树中展开该 PLC → 程序块 → 添加新块;
  2. 选择组织块 OB,在列表中选择循环中断(Cyclic interrupt),默认编号 OB30;
  3. 在弹出的组态/属性中设置循环时间(周期)= 500ms;编程语言选梯形图 LAD(课堂未选 SCL);
  4. 打开 OB30,在其中编写让 Q0.0 交替(取反)的程序;
  5. OB30 会由系统每隔 500ms 自动调用一次,与 OB1 扫描周期长短无关。

3. 修改循环时间与现象

  • 在 OB30 的属性(”循环时间/时间间隔”项)里可把周期改为 1s、2s 等,界面显示的时间单位注意是 ms/μs;
  • 程序下载后观察 CPU 上 Q0.0 指示灯:0.5s 亮、0.5s 灭交替闪烁;若把循环时间改为 1s,则变成 1s 亮、1s 灭(周期 2s)。
  • 还可用一个 M 点(如某 M 位由 0 变 1)来切换/使能不同的循环时间,实现方波周期在线切换。

4. QRY 中断查询指令

  • QRY(Query,查询中断)指令用于实时查询某个中断组织块(中断对象)的状态(是否启用、当前状态等);
  • 既可以查询当前实时状态,也可以设定到某个日期/时间(课堂举例”设定到某年 10 月 12 号”)查询时间类中断;
  • 在循环中断组态/指令旁配合使用,可在程序中读出中断是否正常运行。具体引脚(EN、STATUS、中断对象编号)以博途帮助和教材为准【以教材为准】。

(三)硬件中断 OB40 / OB41 实训

1. 作用与触发事件

硬件中断 OB 在发生相关硬件事件时执行,可快速响应并优先运行硬件中断程序(例如立即停机、立即停止某些关键设备)。常见事件:

  • 数字量输入通道的上升沿事件、下降沿事件;
  • 高速计数器(HSC)事件。

事件发生时,硬件中断 OB 会中断正在执行的正常循环程序(OB1)而优先执行,执行完再返回断点。硬件中断 OB 编号从 OB40 开始。

2. 关联事件与 OB:ATTACH / DETACH

  • 用 ATTACH(连接中断)指令把某个硬件事件(输入通道)与指定的硬件中断 OB 关联起来;用 DETACH 解除关联;
  • 也可在设备组态中直接把通道事件分配给 OB。

3. 实训例:I0.0、I0.1 上升沿让 MW200 加/减 1

  • 新建硬件中断组织块 OB40:当硬件输入 I0.0 出现上升沿时触发 OB40,在 OB40 中写 MW200 := MW200 + 1(INC 加 1);
  • 再建 OB41(或在同一 OB 中区分事件):当 I0.1 上升沿时执行 MW200 := MW200 - 1(DEC 减 1);
  • 这样每来一次 I0.0 上升沿 MW200 加 1、每来一次 I0.1 上升沿减 1。

4. 在 CPU 属性中启用沿检测(关键组态)

  1. 打开 CPU 的设备组态 → 属性 → 常规 → 数字量输入;
  2. 选择对应通道,勾选启用上升沿检测(需要时再启用下降沿检测);
  3. 把”通道 1 上升沿”等事件与前面建立的硬件中断 OB(OB40/OB41)关联;
  4. 下载硬件组态与程序,在线监控 MW200,验证每次按按钮(产生一个上升沿)数值加/减 1。

(四)错误处理组织块 OB82 / OB83 / OB86 与启动 OB100

1. 诊断错误中断 OB82

  • 当模块产生诊断错误事件时调用,例如:某模块烧毁、模块短路、信号超出该模块测量范围(上/下限)等硬件/诊断故障;
  • 如果程序中没有下载 OB82,发生这类错误时 CPU 会直接进入 STOP(停机);因此一般把 OB82 当作”错误处理/容错程序”,在其中安排报警、安全停机或记录等,保证 CPU 不停机。

2. 插拔中断 OB83

  • 当 CPU 处于 RUN 时插拔模块/导轨(尤其较低端、不支持热插拔的设备)会触发;
  • 若没有 OB83,运行中插拔可能导致 CPU 异常停机(现象类似系统重启)。建立 OB83 可让系统按用户逻辑处理插拔事件。

3. 机架故障组织块 OB86

  • 当 CPU 检测到分布式机架、分布式 I/O 站(PROFINET/PROFIBUS 从站)通讯丢失或重新上电恢复时调用 OB86;
  • 同样,若未在 PLC 中创建 OB86,出现站故障时 CPU 会停机。

4. 启动组织块 OB100

  • CPU 从 STOP 切换到 RUN 时执行一次启动 OB,执行完毕后才开始循环执行 OB1;
  • 默认启动 OB 为 OB100,一般一个项目只需一个;
  • 典型用途是初始化:例如在 OB100 中用 MOVE 把初始值(如 100)送入某个 MW,把计数器、标志位清零/置初值;
  • 添加路径:添加新块 → 组织块 → 启动(Startup)。
  • 注意:启动 OB 执行过程中不刷新过程映像,读到的是过程映像规定值(此点了解即可)。

记忆规律:错误类 OB(82/83/86)的共同意义是”容错”——下载了它们,对应故障发生时 CPU 进 OB 处理而不停机;没下载就停机。

(五)交叉引用、多重背景 FB 与地址重叠(调试与结构化编程)

1. 交叉引用(Cross-reference)

  • 在博途中对任意变量(如停止按钮、TON 定时器、电动机线圈)右键 → 交叉引用(或工具菜单里的交叉引用),可列出该变量在哪些块、哪些程序段被访问(读/写);
  • 用途:在多台电动机、多个定时器的复杂程序中快速定位、统一修改与排错(课堂对照教材约 161 页的电动机启停例子演示)。

2. 多重背景与 FB 复用

  • 多台电动机的启停逻辑完全相同,可只写一个功能块 FB(如 FB2,电动机控制 FB),在主程序 OB1 中对每台电动机各调用一次 FB2,为每次调用分配背景数据;
  • 随着设备/变量增多,为每次调用都单独建背景 DB 容易造成数据块与地址管理混乱,此时采用多重背景(Multi-instance):把多个实例的背景数据集中放到一个(上层)背景 DB 中统一管理。

3. MOVE 传送与 M 区地址重叠

  • MOVE 把源操作数传送到目的地址,可一次写到多个目标;课堂示例把 M20.0/MW20 的值复制到多个 M 位;
  • 注意地址重叠:一个 MW(字)含两个 MB、16 个位,例如 MW20 含有 M20.0、M20.1……M21.7。程序段 1 若对 MW20 写值、程序段 2 又使用 M20.0/M20.1 等位线圈,就会出现重叠访问,要避免无意冲突;
  • 用软件的”重叠访问”提示/交叉引用检查可发现这类问题。

(六)综合例 1:锅炉引风机、鼓风机顺序控制(梯形图大题)

1. 控制要求

  • 开机:按下启动按钮,首先启动引风机;延时 10s 后自动启动鼓风机;
  • 停机:按下停止按钮,先关断鼓风机;再延时 20s 后关闭引风机。

2. I/O 与定时器分配(课堂方案,编号【以教材为准】)

元件 地址 说明
启动按钮 SB1 I0.0(常开) 启动
停止按钮 SB2 I0.x(常用常闭,低电平有效) 停止
引风机接触器 Q0.0 先开、后停
鼓风机接触器 Q0.1 延时 10s 开、先停
启动延时定时器 T37(TON,10s) 引风机运行 10s 后接通鼓风机
停止延时定时器 T38(TON,20s) 鼓风机停后 20s 停引风机

3. 程序逻辑(启保停 + 两级延时)

  1. 启动引风机:按 I0.0 → Q0.0 得电,并用 Q0.0 常开触点自锁保持;同时启动 T37 定时 10s;
  2. 10s 后开鼓风机:T37 定时到,其常开触点闭合 → Q0.1 得电并自锁,鼓风机启动;
  3. 停止时先停鼓风机:按下停止按钮(常闭),先切断 Q0.1 支路,鼓风机立即停;同时启动 T38 定时 20s;
  4. 20s 后停引风机:T38 定时到,其常闭触点断开 Q0.0 自锁回路,引风机失电停止。

4. 关键考点

  • 为什么必须自锁:PLC 里常开启动按钮是瞬动的——按下时只接通一个扫描周期、松手即断开,若没有 Q0.0 自身常开触点自锁,线圈无法长时间保持;
  • 停止按钮常开/常闭:常用常闭按钮(低电平有效),未按时回路通、按下时回路断;若题目改用常开按钮,则在程序里取反(用常闭触点)即可,功能等价;考试加不加上升沿 P/下降沿 N 不影响本题结果(自锁已负责保持),P/N 主要用于捕捉瞬动;
  • 中间继电器规范:定时器/触点一般不直接驱动输出负载,先驱动中间继电器 M(由按钮/触点带 M 线圈自锁),再用 M 触点驱动 Q 输出;直接接 Q 逻辑上也成立,但工程上不规范、不利于扩展与保护。

(七)综合例 2:四人抢答器(课程设计大题)

1. 控制要求

  • 主持人 1 名、参赛者 4 名(A、B、C、D);
  • 主持人宣布题目并按下开始按钮后,10s 以内抢答有效;10s 后若无人抢答,则本题结束、所有按钮无效;
  • 每人一个抢答按钮、一个指示灯,只有最先按下按钮者抢答有效,其余三人无效;
  • 抢答有效时:该选手指示灯亮 3s,同时音响(喇叭)响 2s。

2. I/O 与内部元件分配(课堂方案,编号【以教材为准】)

元件 地址 说明
主持人开始按钮 I0.0 开始并启动 10s 限时
4 名选手抢答按钮 I0.1~I0.4 一人一个
4 名选手指示灯 Q0.0~Q0.3 一人一个,亮 3s
音响(喇叭) Q0.4 响 2s
抢答允许标志 M0.0 10s 窗口内为 1
4 名选手锁存标志 M0.1~M0.4 先抢者自锁
限时定时器 T37(10s) 10s 到关闭抢答窗口
音响定时器 T38(2s) 2s 后停音响
灯定时器 另一定时器(3s) 3s 后灭灯,编号以教材为准

3. 程序逻辑

  1. 开始与限时:主持人按 I0.0 → M0.0 自锁,同时 T37 开始 10s 计时;把 T37 常闭触点串入 M0.0/抢答总回路,10s 到 T37 常闭断开,M0.0 失电,四个选手支路全部失效(10s 后抢答无效);
  2. 单人锁存:每个选手支路 = M0.0 常开(必须在 10s 窗口内)串本选手按钮 I0.x,驱动本选手 M0.x 并自锁;
  3. 互锁(核心):把其余三名选手 M0.x 的常闭触点串入本选手支路。任一选手最先按下,其 M0.x 得电、常闭断开,其余三人支路被切断,后按者无效——这与正反转控制中”把各自常闭串到对方支路”的互锁完全同理;
  4. 灯亮 3s:先抢者 M0.x 得电 → 其指示灯 Q0.x 亮,在灯支路串入”3s 定时器的常闭触点”,3s 到自动断开灭灯;
  5. 音响响 2s:把四人 M0.x 常开并联去驱动音响 Q0.4,并串 T38(2s)常闭触点,任一 人抢到即响,2s 到 T38 常闭断开、音响停;
  6. 用中间继电器 M锁存抢答状态、再驱动 Q 输出,而不是按钮直接带灯/喇叭,便于复位与扩展。

设计要点口诀:主持人定时开窗(M0.0 + T37)→ 先抢者自锁 → 常闭互锁封死他人 → 定时器常闭定时关灯关音响。

(八)综合例 3:传送带行程开关顺序控制

1. 控制要求(多台传送带/小车)

  • 初始状态各电动机均停止;按下启动按钮 I0.0 后:
    • 电动机 M1(Q0.0)首先启动运行;
    • 工件(小车)碰到行程开关 SQ1 → 电动机 M2(Q0.1)启动;
    • 碰到 SQ2 → M1 停止;
    • 碰到 SQ3 → 电动机 M3(Q0.2)启动;
    • 碰到 SQ4 → M2 停止;
    • 碰到 SQ5 → M3 停止;之后循环往复工作;
  • 按下停止按钮整体停止并复位,可重新开始。

2. 实现要点

  • 把每个行程开关 SQ 当作一个数字量输入(如 SQ1=I0.1、SQ2=I0.2、SQ3=I0.3、SQ4/SQ5 依次对应后续输入点,具体编号以题图为准【以教材为准】);
  • 工件碰到行程开关时其常开触点闭合(常闭触点断开),用它去接通/断开相应电机的自锁支路;
  • 每台电机仍用”启保停”自锁保持,按工艺顺序由前一个 SQ 启动下一台、由相应 SQ 停掉前一台;
  • 停止按钮用常闭(低电平有效),按下后切断所有支路、复位中间标志,实现一个循环周期结束后重新启动。

(九)综合例 4:8 路彩灯循环

1. 控制要求

  • 8 路彩灯接 Q0.0Q0.7(H1H8);按下启动按钮后,按 H1→H2→…→H8 的顺序依次点亮,相邻彩灯间隔 0.1s,并循环;按下停止按钮复位。

2. 实现要点

  • 用 100ms 定时器(T33/T37,设定 0.1s,考试直接写 0.1s)产生节拍;
  • 每个 0.1s 节拍用移位/循环移位指令(或依次自锁的中间继电器 M0.1、M0.2……)把点亮位依次向后移:Q0.0 先亮 → 0.1s 后 Q0.1 亮 → …… → Q0.7 亮,再循环回 Q0.0;
  • 启动后用中间继电器 M0.0 自锁保持整个循环,停止按钮切断 M0.0 并复位输出。

(十)第八章选择题/理论考点

  • 能按触发条件判别组织块类型:程序循环(OB1)、时间中断、延时中断、循环中断、硬件中断、启动(OB100);
  • 全局变量 vs 背景数据块:全局变量(全局地址 M/I/Q 等)可被所有块访问、使用直接、速度快;FB 的局部变量保存在背景数据块(背景 DB)中,靠背景 DB 号区分不同实例;
  • 错误处理 OB(82/83/86)”有则容错、无则停机”的结论;
  • 课堂教师对部分选择题给了参考答案(如若干题选”正确”、个别选”最后一个/第二个/C”等),因录音无法还原完整题干与选项,本稿不逐一罗列选项答案,请以教材第八章习题与博途实测为准【以教材为准】。

四、典型例题与解题方法汇总

例题 核心方法
用循环中断做方波 添加循环中断 OB30、设周期 500ms,OB 内对 Q0.0 取反 → 周期 1s 方波;改周期即改方波周期
查询中断状态 用 QRY 指令查询循环/时间中断的实时状态或指定日期时间状态
上升沿计数 建硬件中断 OB40/OB41,CPU 通道启用上升沿检测,ATTACH 关联事件,OB 内 MW±1
模块故障不停机 下载诊断 OB82(插拔 OB83、机架 OB86),在其中安排容错处理
上电初始化 在启动 OB100 中用 MOVE 给 MW/标志位送初值(只执行一次)
引风机/鼓风机 启保停自锁 + T37(10s 启动)+ T38(20s 停止);先开引风、先停鼓风
四人抢答器 M0.0+T37 限 10s 窗口;先抢者 M0.x 自锁、常闭互锁;灯 3s、音响 2s 定时器常闭切断
传送带顺序控制 SQ1~SQ5 作输入,按工艺顺序启/停 M1/M2/M3 并循环,停止按钮常闭复位
8 路彩灯 0.1s 定时器(T33/T37)+ 移位/循环指令驱动 Q0.0~Q0.7 依次点亮
多台电机统一编程 一个 FB(FB2)多次调用 + 多重背景,交叉引用排查,注意 M 区地址重叠

综合大题通用解题步骤:

  1. 读清工艺要求,列出”谁先动、延时多久、谁后动、停止顺序”;
  2. 做 I/O 分配表(输入按钮/行程开关、输出电机/灯/喇叭、中间继电器 M、定时器 T);
  3. 对需要保持的输出一律加自锁(启保停);对互斥对象加互锁(常闭串入对方支路);
  4. 用 TON 定时器实现各级延时,用其常开接通后续、常闭切断前级;
  5. 瞬动按钮(开始、抢答、行程开关)配合上升沿/自锁;停止按钮优先常闭、低电平有效;
  6. 输出尽量由中间继电器 M 驱动;最后在博途中编译、下载、PLCSIM 或上机验证时序。

五、术语、编号与指令速查表

名称 编号 / 标识 作用
程序循环组织块 OB1 主程序,RUN 时循环扫描
启动组织块 OB100(默认) STOP→RUN 执行一次,初始化
时间中断 OB OB10~OB17 设定日期/时刻执行
延时中断 OB OB20~OB23 指令启动后延时执行
循环中断 OB OB30~OB38 固定周期循环执行(实训用 OB30)
硬件中断 OB OB40~OB47 上升/下降沿、高速计数事件触发
诊断错误中断 OB82 模块诊断错误;缺失则 CPU 停机
插拔中断 OB83 RUN 中插拔模块/导轨
机架故障 OB OB86 分布式机架/I/O 站丢失
QRY 指令 查询中断实时/指定时间状态
ATTACH / DETACH 指令 连接 / 解除硬件事件与中断 OB
MOVE 指令 数据传送(可多目标)
TON(T37/T38/T33) 定时器 接通延时;100ms 时基可做 0.1s 节拍
INC / DEC 指令 字加 1 / 减 1(硬件中断例用)
自锁(启保停) 电路 启动常开 + 自身常开自锁 + 停止常闭
互锁 电路 对方常闭触点串入本支路
多重背景 FB 机制 多个 FB 实例共用背景 DB,避免冲突
交叉引用 调试工具 查变量在各块/程序段的使用情况

六、实训操作与上机要求

  1. 会在博途中”添加新块 → 组织块”,分别建立循环中断 OB30、硬件中断 OB40/OB41、启动 OB100 及错误处理 OB82/OB83/OB86,并正确设置循环时间、编程语言(LAD)。
  2. 会在 CPU 设备组态 → 属性 → 数字量输入通道中启用上升沿/下降沿检测,并用 ATTACH 把通道事件与硬件中断 OB 关联。
  3. 会用 QRY 查询中断状态;下载后通过 CPU 面板 Q 点指示灯、在线监控 MW 验证循环中断方波与硬件中断计数。
  4. 会用交叉引用查看变量、用多重背景 FB 统一编写多台电动机控制,并能识别 M 区地址重叠。
  5. 四个综合大题(引风机/鼓风机、抢答器、传送带、彩灯)要求能独立完成 I/O 分配、画梯形图、说明时序,并在 PLCSIM 或真机上仿真验证;可作为实验报告题目。

七、待核对与以教材为准的地方

  1. 各类 OB 的具体编号范围(时间中断 OB1017、延时 OB2023、循环 OB3038、硬件 OB4047 等)随 CPU 型号/固件与教材版本略有差异,以所用 S7-1200 教材和博途实际可选编号为准。
  2. 综合例题中的定时器号(T37/T38/T33)、I/O 与 M 地址为课堂口述记录,不同题图分配不同,做题时以题目给出的 I/O 图/表为准;本稿地址仅用于说明逻辑。
  3. 抢答器”灯 3s”所用定时器编号、传送带 SQ4/SQ5 对应的具体输入点,录音未能清晰还原,已标【以教材为准】,请对照教材题图。
  4. QRY、ATTACH/DETACH 等指令的引脚参数(EN、STATUS、OB_NR、中断对象编号)以博途在线帮助与教材为准。
  5. 第八章选择题的具体选项答案录音未完整还原,本稿只给知识点判别方法,不杜撰选项。

八、复习自测(25 题,含答案与提示)

1. 组织块 OB 的本质是什么?由谁调用?
答:OB 是操作系统与用户程序之间的接口,由 CPU 操作系统在特定事件/状态下自动调用,用户在对应 OB 中写要执行的程序。

2. OB1 是什么?何时执行?
答:程序循环组织块(主程序),CPU 在 RUN 状态下从上到下循环扫描执行。

3. S7-1200 常见的中断/事件类组织块有哪六类?
答:启动、时间中断、延时中断、循环中断、硬件中断,以及诊断错误/插拔/机架故障等错误处理组织块。

4. 循环中断 OB 多久执行一次?与 OB1 扫描周期有关吗?
答:按在其属性中设定的固定循环时间(如 500ms)周期性执行一次,与 OB1 扫描周期长短无关。

5. 如何用循环中断让 Q0.0 输出周期 1s 的方波?
答:建循环中断 OB30、循环时间设 500ms,在 OB30 中对 Q0.0 取反,则 0.5s 为 1、0.5s 为 0,周期 1s。

6. 把 OB30 循环时间由 500ms 改为 1s,方波如何变化?
答:变成 1s 亮、1s 灭,方波周期由 1s 变为 2s。

7. QRY 指令的作用是什么?
答:查询中断组织块(中断对象)的实时状态,也可按指定日期/时间查询时间类中断状态。

8. 硬件中断 OB 由哪些事件触发?编号从几开始?
答:数字量输入的上升沿/下降沿、高速计数器等硬件事件;编号从 OB40 开始。

9. 硬件中断 OB 与正常循环程序的执行优先级关系?
答:硬件事件发生时,硬件中断 OB 中断正在执行的 OB1 循环程序、优先执行,执行完再返回。

10. 用什么指令把硬件事件与硬件中断 OB 关联?解除用什么?
答:ATTACH 关联、DETACH 解除。

11. 写出 I0.0 上升沿让 MW200 加 1 的实现要点。
答:建硬件中断 OB40,在 CPU 属性数字量输入通道启用 I0.0 上升沿检测并关联 OB40,OB40 内写 MW200 加 1(INC)。

12. 除了写 OB40 和 ATTACH,还必须做哪一步硬件组态?
答:在 CPU 设备组态→属性→数字量输入对应通道中启用上升沿(需要时下降沿)检测。

13. OB82 是什么中断?举两类触发事件。
答:诊断错误中断;如模块烧毁/短路、信号超出模块测量范围(超量程)等诊断事件。

14. 程序中没有下载 OB82,发生诊断错误时 CPU 会怎样?
答:CPU 直接进入 STOP(停机);下载 OB82 后可在其中容错处理而不停机。

15. OB83、OB86 分别在什么情况下触发?
答:OB83 在 RUN 中插拔模块/导轨时触发;OB86 在分布式机架或分布式 I/O 站通讯丢失/恢复时触发。

16. 错误处理类 OB(82/83/86)的共同意义是什么?
答:容错——下载并编写后,对应故障发生时 CPU 进入 OB 处理而不停机;缺失则可能停机。

17. 启动 OB 默认是哪个?何时执行、执行几次?主要用途?
答:OB100;CPU 从 STOP 切到 RUN 时执行一次,执行完才进 OB1;用于上电初始化(如 MOVE 送初值、清零)。

18. 启动 OB 执行期间过程映像是否更新?
答:不更新,读到的是过程映像规定(初始)值(了解)。

19. 交叉引用有什么用处?
答:查看某变量在哪些块、哪些程序段被读/写,便于在多设备复杂程序中定位、统一修改与排错。

20. 多台相同电动机为什么适合用一个 FB 多次调用?什么是多重背景?
答:启停逻辑相同,写一个 FB(如 FB2)重复调用即可;多重背景是把多个 FB 实例的背景数据集中到一个背景 DB 中管理,避免数据块/地址混乱冲突。

21. MW20 与 M20.0 同时使用要注意什么?
答:地址重叠——MW20 含有 M20.0 等位,对 MW20 写值会影响这些位,避免多个线圈/传送占用重叠地址。

22. 简述引风机/鼓风机的启停顺序与所用定时器。
答:开机先开引风机 Q0.0,T37 延时 10s 后自动开鼓风机 Q0.1;停机先停鼓风机,T38 延时 20s 后再停引风机。

23. 启动按钮为什么必须自锁?停止按钮为何常用常闭?
答:启动按钮是瞬动信号,只通一个扫描周期,需用自身常开触点自锁保持;停止按钮用常闭(低电平有效),未按时通、按下时断,符合急停/停止的安全习惯。

24. 四人抢答器如何保证”只有最先按下者有效”,并实现灯 3s、音响 2s?
答:主持人开始后 M0.0 自锁并由 T37 限定 10s 窗口;每人用 M0.x 自锁,并把其余三人 M0.x 常闭串入本支路实现互锁,先抢者封死他人;灯支路串 3s 定时器常闭、音响 Q0.4 支路串 T38(2s)常闭,定时到自动熄灭/停响。

25. 8 路彩灯循环和传送带顺序控制分别靠什么实现顺序/节拍?
答:彩灯用 100ms 定时器(T33/T37,0.1s)产生节拍,配合移位/循环指令让 Q0.0Q0.7 依次点亮并循环;传送带用行程开关 SQ1SQ5 作为输入触点,按工艺顺序逐台启动/停止 M1/M2/M3 并循环,停止按钮常闭复位。


说明:本篇依据课堂实训录音整理,已剔除课间游戏、唱歌、外卖等与课程无关内容;OB 编号、定时器/I/O 地址以教材题图和博途实际组态为准,课堂未完整还原的选择题选项与个别地址已在第七部分标注【以教材为准】,未作杜撰。


PLC 中断组织块 OB30/OB40/OB8x 与综合设计
https://tdexxx.github.io/2026/10/15/02_电气控制与PLC/电气控制与PLC_中断组织块与综合设计_发布稿/
作者
tdexxx
发布于
2026年10月15日
许可协议