Sequential Function Chart 编辑器(SFC)
概述
Sequential Function Chart (SFC) 是第三种图形化 IEC 61131-3 语言, 通过步骤-转换模型描述面向状态的序列 —— 形式上与 Petri 网相关。一个 SFC 图由通过带条件的转换连接的 步骤序列构成。任何时刻一组步骤是激活的;当某步骤的 出口转换变为 TRUE 时,该步骤即被离开。
SFC 是描述顺序控制、模式机和批处理过程的天然语言 —— 凡是您想表述为"先做这个,再做那个,除非……“的内容都适用。
编辑器布局
SFC 编辑器遵循与 FBD 和 LD 相同的三部分方案: 顶部工具栏,带网格 + 缩放 + 平移的 QGraphicsView,右侧变量表。 工具栏为每种 SFC 元素类型提供工具。
元素类型
步骤
步骤是带名称的矩形框。当其激活时,与之关联的动作运行。
- 初始步骤: POU 的入口点。程序启动时激活。 在编辑器中以双边框绘制。
- 后续步骤: 以单边框绘制。当前驱转换触发时激活。
端口:顶部(IN,来自上一个转换),底部(OUT,到下一个 转换),右侧(连接到动作块)。
转换
转换是两个步骤之间垂直连接线上的短水平条。
条的右侧是条件 —— 要么是 ST 表达式(例如 tmr.Q AND xReady),
要么是功能块的输出。
当条件变为 TRUE 时,前驱步骤停止激活,后继步骤变为激活。
动作块
动作块描述步骤激活时发生的事情。它由两个单元格组成: 左侧的限定符和右侧的动作名(指向 ST 动作或输出变量 的引用)。
| 限定符 | 含义 |
|---|---|
N | Non-stored —— 在步骤激活期间运行(默认)。 |
P | Pulse —— 在步骤激活时触发一次,持续一个周期。 |
S | Set —— 置位并跨步骤转换保持激活。 |
R | Reset —— 清除先前由 S 设置的动作。 |
L | Limited —— 至多运行给定的持续时间。 |
D | Delayed —— 仅在给定延迟之后开始。 |
可向一个步骤挂接多个动作块。
分支与汇合
分支把序列分支为多条路径,汇合再将其合并。 SFC 有两种类型:
- 选择(OR 分支): 进入恰好一条路径,取决于哪个 转换条件先变为 TRUE。绘制为单条水平线。
- 并行(AND 分支): 所有路径同时变为激活并独立 运行。只有当每条路径都到达汇合点后序列才继续。 绘制为双条水平线。
跳转
跳转项是带有目标步骤名的向下箭头。它把控制权从当前
路径转交给指定步骤 —— 通常用于序列末尾的"回到开始”,
或用于错误处理(“跳到 Step_Error")。
应用
SFC 适合任何具有清晰时间序列的程序:
- 机器模式 —— Init → Idle → Running → Cleanup → Idle。
- 批处理过程 —— Fill → Heat → Mix → Drain。
- 安全序列 —— 按既定顺序执行停止序列 (“先关加热器,再关泵,再关主接触器”)。
- 过程工程 —— 带延迟和条件的反应步骤。
与同一功能的 ST 实现相比,SFC 版本的可读性显著更高 ——
步骤顺序和分支条件在图形上一目了然,而 ST 中的
CASE state OF 结构只能间接传达相同的信息。
相关主题
- Function Block Diagram —— 用于动作内部或转换条件 内部的逻辑。
- Ladder Diagram —— 用于较简单的互锁电路的 替代图形语言。
- 库 —— 定时器(
TON、TP)通常是转换条件的 组成部分。