IEC 60848 GRAFCET: The Graphical Specification Language for Industrial Sequential Control






IEC 60848 GRAFCET: The Graphical Specification Language for Industrial Sequential Control


In the world of industrial automation, sequential control is everywhere — from bottle transport on a beverage filling line and temperature-controlled batch reactors, to elevator dispatching and water treatment sequences. The common thread across all these applications is the need for a clear, unambiguous way to describe “what should happen when, and where to go next.” IEC 60848 defines GRAFCET (GRAphe Fonctionnel de Commande Etape-Transition — the “Step-Transition Control Function Chart”), an international standard graphical specification language purpose-built for exactly this need. This article, based on the IEC 60848:2013 edition, systematically introduces GRAFCET’s core concepts, examines its relationship with IEC 61131-3 SFC, and provides practical engineering design guidance.

💡 TipGRAFCET is far more than “just a flowchart.” Its semantics rest on a rigorous alternating step/transition execution model with deterministic evolution rules. It serves as the bridge between formal specification and executable control logic.

1. Core GRAFCET Elements: Steps, Transitions, and Actions

A GRAFCET chart consists of the following fundamental elements arranged in strict alternation — step, transition, step, transition — forming a chained structure:

Element Graphical Representation Meaning Engineering Note
Step (Etape) Numbered square box; initial step uses a double-lined box A system “state” during which associated actions are executed It is recommended to number steps starting from 0. There must be exactly one initial step (with limited exceptions for encapsulation).
Transition Short horizontal bar crossing the connecting line The condition that must be true to advance from preceding step(s) to succeeding step(s) Transition conditions can be Boolean expressions, time conditions (e.g., t1/X10/5s), or edge-triggered expressions (↑S1 for rising edge).
Directed Link (Arc) Vertical or angled line with arrowhead Connects steps to transitions, defining the evolution path (default direction is top-to-bottom) Any non-default direction must show an explicit arrowhead. Convergence/divergence points use “=” (AND) for parallel branches.
Action Rectangle attached to the right side of a step Operation performed while the step is active (output set, variable assignment, timer start, etc.) Actions carry qualifiers: N (non-stored), S (set/latching), R (reset), L (time-limited), D (delayed), P (pulse), C (conditional), among others.
Macro-step Large box prefixed with “M” Encapsulates a group of sub-steps into a reusable hierarchical module A macro-step expansion must contain exactly one entry step and one exit step. Dramatically improves readability for complex systems.
Enclosing Step Step symbol marked with “*” Contains a nested, complete GRAFCET chart within itself Used to express multi-level control hierarchies or forcing/enabling sub-structures.
Directed Actions & Forcing Action block specifying a target GRAFCET chart name Forces (F/) or enables (E/) a separate GRAFCET chart into a specific execution state Forcing is the strongest form of intervention — the receiver chart jumps directly to the forced step number, regardless of its current state.

1.1 Evolution Rules — the Soul of GRAFCET

GRAFCET execution follows five fundamental evolution rules. These are what truly differentiate GRAFCET from ordinary flowcharts:

  1. Initial Situation: At power-up, only the initial step(s) are active.
  2. Clearing a Transition: A transition is “cleared” (crossable) when all immediately preceding steps are active AND the transition condition evaluates to true. Once cleared, it must fire.
  3. Firing a Transition: Firing a cleared transition simultaneously deactivates all preceding steps and activates all succeeding steps.
  4. Simultaneous Firing: Multiple transitions that become cleared at the same time must all fire within a single evolution (concurrent branching).
  5. Sustained Step Activation: If a step is active but its successor transition condition is false, the step remains active indefinitely — until the next evolution where the condition becomes true.
✅ Engineering InsightUnderstanding “synchronous evolution” is critical: GRAFCET assumes all clearable transitions fire within a single evolution pulse. This means you never need to worry about “which one goes first” — all branches truly advance simultaneously. This is especially vital when designing coordination logic between parallel workstations.

2. GRAFCET and IEC 61131-3 SFC: Relationship and Differences

This is the most frequently asked question in engineering practice: “Are GRAFCET and SFC (Sequential Function Chart) the same thing?” The answer: they are closely related, but their roles are distinct.

IEC 60848 GRAFCET is an implementation-independent specification language. It does not depend on any particular PLC platform or programming language. It is purely oriented toward control engineers defining logical specifications. Its origins trace back to Grafcet, proposed by AFCET (France) in 1977, and later standardized by the IEC (first edition 1988, second edition 2013).

IEC 61131-3 SFC is one of the implementation languages defined within the PLC programming language standard. SFC elements (steps, transitions, action blocks) map directly to executable code and share a runtime framework with other IEC 61131-3 languages such as Ladder Diagram (LD) and Structured Text (ST). SFC syntax is derived from GRAFCET, but incorporates additional engineering implementation details (e.g., precise action qualifier semantics bound to scan cycles).

⚠️ Critical DistinctionGRAFCET defines “non-stored actions” (actions that are only active while the step is active) and defines hierarchical control semantics for Forcing (F/) and Enabling (E/). Support for these in IEC 61131-3 SFC varies significantly by vendor. Never assume your PLC’s SFC implementation is equivalent to the full GRAFCET semantics — always check the manufacturer’s documentation.

2.1 Feature Comparison Table

Feature IEC 60848 GRAFCET IEC 61131-3 SFC
Role Specification language Implementation language
Standard Versions 1988 / 2013 (Ed.1 / Ed.2) 1993 / 2003 / 2013 (within 61131-3)
Action Qualifiers N, S, R, L, D, P, C, A, SD, SL, DS N, R, S, L, D, P, SD, DS, SL, P0, P1
Hierarchical Control (Forcing/Enabling) ✓ Full F/ E/ semantics Δ Varies by PLC implementation
Macro-steps ✓ Standard definition ✓ Supported (SFC action blocks can call sub-SFCs)
Time/Edge Conditions Built-in syntax: t1/X5/3s, ↑S2 Implemented via Boolean variables in transition conditions
Design Intent Human-and-machine-readable specification document Machine-executable industrial control program

3. Practical GRAFCET Modeling for Industrial Sequences

3.1 Systematic Method: From Process Description to GRAFCET Chart

Faced with a 50-page process specification (e.g., “Fully Automatic CIP Cleaning System”), how do you efficiently extract a GRAFCET model? Here is a proven workflow:

  1. Identify “waiting” points: As you read through the process description, mark every instance of “wait until temperature reaches XX,” “delay for XX seconds,” “wait for level switch to close” — these are your future steps.
  2. Extract transition conditions: The “when…” statements between steps become your transition conditions. Formalize them as Boolean expressions.
  3. Spot parallel branches: Any phrase like “simultaneously open valve A and start pump B” suggests a parallel divergence (double horizontal line = AND-split).
  4. Encapsulate macro-steps: Any sub-process that repeats across multiple units (e.g., “tank wash” reused on several tanks) should be encapsulated as a macro-step.
  5. Define hierarchical control: Global mode switching (Manual / Automatic / Emergency Stop) is managed by a high-level GRAFCET chart that governs lower-level charts via forcing commands.
💡 Design TipPlace “System Readiness Check” logic in the initial step (Step 0): verify safety gate closed, emergency stop not pressed, air pressure normal, etc. Only allow the transition to the first working step when all safety conditions are satisfied. This simple pattern prevents roughly 80% of power-up misoperations.

3.2 Common Engineering Pitfalls and How to Avoid Them

Pitfall 1: Unstable Step — A step’s transition condition is already true at the moment the step becomes active, causing the step to “flash through” without being observable. Solution: make the transition condition edge-triggered (use the ↑ operator), or reset the condition within the step’s actions before the next evolution.

Pitfall 2: Deadlocked Convergence — A parallel convergence (AND-join) requires all preceding branches to be active before proceeding. If one branch terminates prematurely due to a fault, the convergence point waits forever. Solution: add a watchdog structure with timeout-triggered forcing to a recovery or safe-state step.

Pitfall 3: Unintended Non-determinism — When two mutually exclusive transition conditions are simultaneously true, GRAFCET’s implicit left-to-right priority resolves the choice. However, relying on graphical layout for determinism is fragile — another engineer rearranging the chart could alter behavior. Best practice: make branch conditions logically exclusive by design (e.g., temp ≥ 80 and temp < 80).

🚨 Use Forcing SparinglyForcing is the most powerful intervention mechanism in GRAFCET. Overusing it leads to “spaghetti” control logic where the behavior of forced charts becomes unpredictable. Follow the “Minimum Forcing Principle”: if enabling (E/) suffices, do not use forcing (F/). If ordinary signal interlocking suffices, do not use enabling.

3.3 Action Qualifier Quick Reference

Qualifier Name Behavior Typical Application
N Non-stored Action active continuously while step is active; stops when step deactivates Motor run, valve hold, indicator lamp
S Set (Stored) Action set to ON when step activates; remains ON after step deactivation Latching status signal, alarm latch
R Reset Action reset to OFF when step activates (clears a previously S-set action) Clear latched alarm, reset counter
L Time-Limited Action active for at most the specified duration after step activation Timed flushing, pre-lubrication
D Delayed Action starts after specified delay from step activation Star-delta start delay, pre-purge
P Pulse Action produces a single scan-cycle pulse upon step activation Counter increment, data latch, one-shot event trigger
C Conditional Action executes only while step is active AND an additional Boolean condition is true Conditional heating, optional agitation

4. Frequently Asked Questions

Q1: Is GRAFCET a programming language or a design tool?

GRAFCET is fundamentally a specification language, not a programming language. Its purpose is to enable control engineers to precisely define system sequential behavior in graphical form before writing any code. While many PLC programming environments allow direct generation of SFC code from GRAFCET charts, the standard itself is independent of any concrete programming language or platform.

Q2: My PLC only supports Ladder Diagram. Is GRAFCET still useful to me?

Absolutely. You can use GRAFCET to design your control logic, then manually translate the step/transition/action structure into the classic “step coil + interlock contacts” pattern in Ladder Diagram (i.e., a step-sequencer ladder). In fact, many veteran PLC engineers sketch GRAFCET charts on paper even in pure ladder environments, because graphical representation is far easier to review, communicate, and validate than raw ladder rungs.

Q3: How should emergency stops be handled in GRAFCET?

IEC 60848 recommends a hierarchical GRAFCET structure: a top-level “Mode Management” GRAFCET chart governs all subsystem charts via forcing commands. When an emergency stop is triggered, the top-level chart issues a forcing command to all subsystems, directing them to a predefined safe-state step. Critically, the emergency stop must also act on the hardwired safety circuit — GRAFCET forcing is a logic-level supplement and must never replace safety PLCs or safety relay hardwiring.

Q4: Can GRAFCET describe continuous process control (e.g., PID loops)?

Not well. GRAFCET is fundamentally a discrete-event system modeling tool — it describes “sequences of states,” not “continuous variable evolution.” For PID loops and analog continuous control, GRAFCET is well-suited to managing mode transitions (e.g., heating/holding/cooling phases), but the continuous control algorithms inside each phase (PID parameters, setpoint profiles, etc.) should be implemented within action blocks by calling Structured Text routines or function blocks.

© 2026 TNLab — Sharing Engineering Knowledge for Better Industrial Automation

IEC 60848:2013 is copyright of the IEC Central Office. This article is a technical interpretation and is neither an official translation nor the standard text.


Leave a Reply

Your email address will not be published. Required fields are marked *