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 动作或输出变量 的引用)。

限定符含义
NNon-stored —— 在步骤激活期间运行(默认)。
PPulse —— 在步骤激活时触发一次,持续一个周期。
SSet —— 置位并跨步骤转换保持激活。
RReset —— 清除先前由 S 设置的动作。
LLimited —— 至多运行给定的持续时间。
DDelayed —— 仅在给定延迟之后开始。

可向一个步骤挂接多个动作块。

分支与汇合

分支把序列分支为多条路径,汇合再将其合并。 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 —— 用于较简单的互锁电路的 替代图形语言。
  • —— 定时器(TONTP)通常是转换条件的 组成部分。