Control Expert · Track 03 · IEC 61131-3 and SFC

One circuit, five languages

Control Expert supports the five IEC 61131-3 languages shown here: Ladder, Function Block Diagram, Structured Text, Instruction List and SFC. The motor example compares their representations of a start, seal-in and stop sequence. Operate the inputs, then switch views to connect each contact, expression or step with the resulting motor state.

🪜 LD🔲 FBD⌨️ ST📜 IL🔢 SFC
01 · Compare the representations

Start · seal-in · stop, five ways

The logic: press Start, the motor runs and seals in; press Stop and the motor stops. Switch between Ladder, FBD, Structured Text, Instruction List and SFC to inspect the same intended control behaviour. The shared simulation drives each view; it does not compile the displayed vendor code or establish that the generated instructions would be identical.

⊣ ⊢
Start
⊣/⊢
Stop
( )
Motor
⊣ ⊢
Motor (seal-in)
Start
Motor
Stop
≥1
OR
&
AND
Motor
Motor := (Start OR Motor) AND NOT Stop;
// reads like the sentence: run if Start
// or already-running, unless Stop is pressed
      LD    Start
      OR    Motor
      ANDN  Stop
      ST    Motor
// the same logic as raw stack instructions —
// the assembly language of PLCs (legacy)
Step S1: idle
Motor OFF · wait for Start
↓Start
Step S2: run
Motor ON · until Stop
↑Stop
▶ Start
⛔ Stop
Motor: OFF
⚙️

Turn Start on and then off. The motor remains on because the seal-in holds its running request until Stop is applied. The SFC view represents the sequence as S1 Idle → (Start) → S2 Run → (Stop) → back. Steps show the active stage, and transitions state the condition for moving to the next stage. That makes SFC useful when the machine's operation is organized into a sequence.

02 · Choose a representation

Five tools, one project

Select a language to read its description, then compare the way it expresses the motor example. The useful choice depends on the logic you need to read and maintain.

03 · Check yourself

Pick the language

A bottling machine follows fill → wait → cap → wait → eject, with a defined condition between stages. Which representation makes those stages and their transitions explicit?