IEC 60848 GRAFCET — 工业顺序控制的图形化规范语言






IEC 60848 GRAFCET:工业顺序控制的图形化规范语言


在工业自动化领域,顺序控制无处不在:从饮料灌装线的瓶体传送、化工反应釜的温控批次,到电梯调度和水处理流程——所有这些场景的共同需求是:用清晰、无歧义的方式描述”什么时候该做什么,下一步去哪里”。IEC 60848 定义的 GRAFCET(GRAphe Fonctionnel de Commande Etape-Transition,即”步-转换控制功能图”)正是为这一需求而生的国际标准图形化规范语言。本文基于 IEC 60848:2013 版,系统介绍 GRAFCET 的核心概念、与 IEC 61131-3 SFC 的关系,并从工程设计视角给出实用指南。

💡 提示GRAFCET 不仅仅是”画流程图”。它的语义严格建立在”步/转换交替”的执行模型之上,具有确定性的演化规则,是形式化规范与可执行控制逻辑之间的桥梁。

1. GRAFCET 核心要素:步、转换与动作

GRAFCET 图由以下基本要素构成,它们交替排列,形成”步-转换-步-转换…”的链式结构:

要素 图形表示 含义 工程注记
步 (Step) 带编号的方框,初始步为双线框 系统的一个”状态”,在此状态下执行关联的动作 步的编号建议从 0 开始,初始步必须存在且唯一(特殊情况除外)
转换 (Transition) 横跨连线的短横线 从前序步进入后续步的条件 转换条件可以是布尔表达式、时间条件(如 t1/X10/5s)或边沿检测(↑S1)
有向连线 (Arc) 带箭头的竖线/折线 连接步与转换,规定演化方向(默认自上而下) 非默认方向必须标注箭头;交叉点用”·”表示逻辑”与”分叉
动作 (Action) 附着于步右侧的矩形 步激活时执行的操作(输出置位、变量赋值、延时等) 动作可附带限定符(qualifier),如 N(非存储型)、S(置位)、R(复位)、L(限时)、D(延迟)、P(脉冲)
宏步 (Macro-step) 带”M”前缀的大方框 将一组子步封装为一个可复用的层次模块 宏步的展开图必须包含”入口步”和”出口步”各一个,极大提升复杂系统的可读性
包围步 (Enclosing Step) 带”*”的步符号 其内部嵌套了另一个完整的 GRAFCET 图 用于表述多层级控制系统或强制/使能子结构
定向动作与强制 动作块中标明目标 GRAFCET 图名 强制(F/)或使能(E/)另一个独立 GRAFCET 图的执行状态 强制是最强干预——接收方无论当前在哪一步,直接跳转到被强制的步号

1.1 演化规则(Evolution Rules)— GRAFCET 的灵魂

GRAFCET 的执行遵循五条基本演化规则,这是其区别于普通流程图的核心所在:

  1. 初始状态:上电时仅初始步(初始步)处于激活状态。
  2. 转换清除:当某转换的前序步全部激活、且转换条件为真时,该转换被”清除”(crossable),必须执行。
  3. 转换触发:清除的转换立即触发:其所有前序步失活,所有后续步激活。
  4. 同时触发:多条可同时清除的转换必须在同一次演化中全部触发(并发分支)。
  5. 步的持续激活:若某步被激活后,其后继转换条件不满足,该步将保持激活,直到下次演化时转换条件成立。
✅ 工程洞察理解”同步演化”至关重要:GRAFCET 假定在一次演化脉冲内完成所有可触发转换。这意味着你不需要操心”谁先谁后”——所有分支真正同时推进。这在设计并行工位的协调逻辑时尤为关键。

2. GRAFCET 与 IEC 61131-3 SFC 的关系

这是工程实践中被问得最多的问题:“GRAFCET 和 SFC(Sequential Function Chart)是不是一回事?”答案是:有亲缘关系,但定位不同。

IEC 60848 GRAFCET 是一个独立于实现的规范语言。它不依赖任何特定的 PLC 平台或编程语言,纯粹面向控制工程师进行逻辑规格定义。它起源于法国 AFCET 在 1977 年提出的 Grafcet,后经 IEC 标准化(首版 1988 年,2013 年为第二版)。

IEC 61131-3 SFC 则是 PLC 编程语言标准中定义的一种实现语言。SFC 的元素(步、转换、动作块)直接映射为可执行代码,与梯形图(LD)、结构化文本(ST)等其它 IEC 61131-3 语言共用一套运行时框架。SFC 的语法源于 GRAFCET,但加入了更多工程实现细节(如动作限定符的精确语义、扫描周期绑定等)。

⚠️ 关键区别GRAFCET 允许”非永久性动作”(动作仅影响当前步激活期间),并定义了强制(Forcing)和使能(Enabling)的层级控制语义,这些在 IEC 61131-3 SFC 中的支持程度因厂商而异。不要假定你的 PLC 的 SFC 实现等同于完整的 GRAFCET 语义——务必检查制造商文档。

2.1 结构对比表

特性 IEC 60848 GRAFCET IEC 61131-3 SFC
定位 规范语言 (specification) 实现语言 (implementation)
标准化版本 1988 / 2013 (Ed.1 / Ed.2) 1993 / 2003 / 2013 (包含在 61131-3 中)
动作限定符 N, S, R, L, D, P, C, A, SD, SL, DS N, R, S, L, D, P, SD, DS, SL, P0, P1
层级控制(强制/使能) ✓ 完整的 F/ E/ 语义 Δ 取决于特定 PLC 实现
宏步 ✓ 标准定义 ✓ 支持(SFC 动作块可调用子 SFC)
时间/边沿条件 内置语法:t1/X5/3s、↑S2 通过转换条件中的布尔变量实现
设计目标 人与机器共读的规格文档 机器执行的工业控制程序

3. 工业顺序建模实战技巧

3.1 从工艺描述到 GRAFCET 图的系统方法

面对一份 50 页的工艺规程(如”全自动 CIP 清洗系统”),如何高效抽取 GRAFCET 模型?推荐以下步骤:

  1. 识别”停下来等待”的节点:阅读工艺描述,标记所有”等待温度达到 XX”、”延时 XX 秒”、”等待液位开关闭合”——这些就是你未来的
  2. 抽取转换条件:步与步之间的”当……时”就是转换条件。将它们明确化为布尔表达式。
  3. 找出并行分支:“同时打开 A 阀和启动 B 泵”暗示了并行分支(双横线=AND 分叉)。
  4. 封装宏步:任何重复出现的子流程(如”罐体清洗”在多个罐上复用)应封装为宏步。
  5. 定义层级控制:全局模式切换(手动/自动/紧急停止)用高层级 GRAFCET 通过强制指令统管低层级图。
💡 设计技巧在初始步(Step 0)中放置”系统就绪检查”逻辑,包括安全门闭合、急停未按下、气压正常等条件。只有当所有安全条件满足时,才允许转换到第一个工作步。这个简单的模式可以防止 80% 的上电误动作。

3.2 常见工程陷阱及规避方法

陷阱 1:不稳定步(Unstable Step)——某步的转换条件在步激活时就已经为真,导致该步”一闪而过”,观察不到。解决方案:将转换条件改为需要上升沿触发(使用 ↑ 操作符),或在步的动作中先复位该条件。

陷阱 2:死锁分支(Deadlock)——并行分支的汇合处需要所有前置步都激活才能通过,若某条分支因故障提前终止,整个汇合点永远等不到。解决方案:添加”超时+强制跳转”的看门狗结构。

陷阱 3:意外的非确定性——当两个互斥的转换条件同时为真时,选择哪个分支的规则在 GRAFCET 中是从左到右的优先级(图形化隐含),但如果依赖这个顺序而不加以明确互锁,换一个工程师修改图形布局就可能改变行为。最佳实践是让互斥分支的条件在逻辑上天然互斥(如 temp ≥ 80temp < 80)。

🚨 慎用强制强制(Forcing)是 GRAFCET 中最强的干预手段。过度使用强制会导致”意大利面条式”的控制逻辑——被强制图的行为变得不可预测。遵循”强制最小化原则”:能用使能(Enabling)解决的不要用强制,能用普通信号联锁的不要用使能。

3.3 动作限定符速查

限定符 名称 行为 典型应用场景
N 非存储型 步激活期间动作持续执行,步失活时停止 电机运转、阀门保持、指示灯点亮
S 置位(存储型) 步激活时将动作置为 ON,步失活后保持 ON 锁定状态信号、报警锁定
R 复位 步激活时将之前 S 置位的动作复位为 OFF 清除锁定报警、复位计数器
L 限时 步激活后动作持续不超过指定时长 冲洗定时、预润滑
D 延迟 步激活后延迟指定时长再执行动作 星三角启动延时、预吹扫
P 脉冲 步激活时产生一个扫描周期的脉冲 计数器递增、数据锁存、事件触发
C 条件型 动作仅在步激活且附加布尔条件为真时执行 条件加热、可选搅拌

4. 常见问题 (FAQ)

Q1: GRAFCET 到底是一种编程语言,还是一种设计工具?

GRAFCET 从根本上是一个规范语言(Specification Language),不是编程语言。它的设计目的是让控制工程师在编写任何代码之前,先以图形化的方式精确定义系统的顺序行为。当然,许多 PLC 编程环境允许你直接根据 GRAFCET 图生成 SFC 代码,但标准本身并不依赖于任何具体的编程语言或平台。

Q2: 我的 PLC 只支持梯形图,GRAFCET 对我还有用吗?

非常有用。你完全可以用 GRAFCET 来设计控制逻辑,然后手工将步/转换/动作翻译为梯形图中的”步号线圈+互锁接点”模式(即经典的”步进梯形图”)。事实上,许多经验丰富的 PLC 工程师即使在纯梯形图环境中,也会先在纸上画 GRAFCET 图,因为图形化的表达比梯形图更容易审查和沟通。

Q3: 如何处理紧急停止?GRAFCET 有规定吗?

IEC 60848 建议使用层级化 GRAFCET 结构:一个顶层的”模式管理”GRAFCET 图通过强制指令统管各子系统的 GRAFCET 图。当急停触发时,高层图向所有子系统发出强制跳到安全状态的命令。重要的是,急停本身应同时作用于硬接线安全回路——GRAFCET 的强制只是逻辑层面的补充,不能替代安全 PLC 或安全继电器的硬接线。

Q4: GRAFCET 适合描述连续过程控制(如 PID 调节)吗?

不太适合。GRAFCET 的本质是离散事件系统的建模工具——它描述的是”状态序列”而非”连续变量演变”。对于 PID 回路、模拟量连续调节,GRAFCET 可以用来管理”模式切换”(如升温/保温/降温阶段),但每个阶段内部的连续控制算法(PID 参数、设定值曲线等)应在动作块中通过调用结构化文本或功能块来实现。

© 2026 TNLab — 工程知识分享,助力工业自动化实践

IEC 60848:2013 为 IEC 中央办公室版权所有。本文为技术解读文章,非官方翻译或标准文本。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注