观看S7-200模块程序控制视频:
S 堆栈和逻辑堆栈交互
通过 SCR 段控制程序流
主程序由每次扫描 PLC 时都会按顺序执行一次的指令组成。对于许多应用程序,将主程 序在逻辑上划分成一系列将步骤映射到受控过程中的操作步骤(例如一系列机器操作)可 能比较恰当。 将程序在逻辑上划分为多个步骤的一种方法是使用 SCR 段。SCR 段可以将程序划分为单 个顺序步骤流,或划分为可以同时激活的多个流。可以将单个流有条件地分为多个流,并 可以将多个流有条件地条件重新合并为一个流。
SCR 操作
● SCR(装载 SCR)标记 SCR 段的开始, SCRE(结束 SCR)标记 SCR 程序段的结 束。SCR 和 SCRE 指令之间的所有逻辑是否执行取决于 S 堆栈的值。SCRE 和下一 条 SCR 指令之间的逻辑与 S 堆栈的值无关。 ● SCRT(SCR 转换)将控制权从激活的 SCR 段转交给另一个 SCR 段。 SCR 转换指令有能流时,执行该指令将复位当前激活的 SCR 段的 S 位,并会置位所 引用段的 S 位。SCR 转换指令执行时,复位激活段的 S 位不会影响 S 堆栈。因此, SCR 段保持接通直至退出该段。 ● 仅 STL 指令 CSRE(有条件 SCR 结束)存在激活的 SCR 段,而不在 CSRE 和 SCRE(SCR 结束)指令之间执行指令。有条件 SCR 结束指令不影响任何 S 位,也 不会影响 S 堆栈。
示例:SCR 顺序控制流
在以下示例程序中,扫描位 SM0.1 用于置位 S0.1,S0.1 在扫描时将是激活状态 1。2 秒延时后,T37 会导致转换为状态 2。该转换会禁用状态 1 SCR (S0.1) 段,并会激 活状态 2 SCR (S0.2) 段。
顺序控制流
顺序步骤定义明确的过程易于使用 SCR 段建模。例如,考虑包含 3 个步骤的循环过程, 第三步完成时应返回步。
分散控制流
在许多应用程序中,一个顺序状态流必须分为两个或多个不同状态流。控制流分为多个控 制流时,必须同时激活所有输出流。
如下例所示,可在 SCR 程序中使用由相同转换条件启用的多条 SCRT 指令将控制流划分 为多个分支。
示例:SCR 分散流控制
合并流控制
状态流合并时,在执行下一个状态之前,必须完成所有输入流。 可在 SCR 程序中通过从状态 L 转换到 L' 以及通过从状态 M 转换到 M' 来合并控制流。如 下例所示,当代表 L' 和 M' 的两个 SCR 位均为真时,启用状态 N。