Last Updated: April 2026 | Written for automation engineers and beginners learning industrial control systems.
PLC programming languages are the foundation of every industrial automation system. Understanding all 5 IEC 61131-3 languages — what each one does, when to use it, and how it compares to the others — is essential knowledge for every automation engineer.
In this guide you will find:
- A complete explanation of all 5 IEC 61131-3 PLC programming languages
- Real code examples for each language
- A full comparison table covering difficulty, use cases, and industry adoption
- A decision guide — which language to choose for your application
- How Siemens TIA Portal and Rockwell Studio 5000 implement each language
- The recommended learning path for beginners
What Are PLC Programming Languages?
PLC programming languages are standardized methods used to write control logic for Programmable Logic Controllers. They define how engineers tell a PLC what to do — how to read inputs, make decisions, and control outputs.
Before 1993, every PLC manufacturer had their own proprietary programming language. An engineer who knew Siemens programming had to start from scratch when switching to Allen-Bradley or Mitsubishi. The IEC 61131-3 standard, first published in 1993 and updated in 2025, solved this by defining a set of universal programming languages that all compliant PLC manufacturers must support.
The current IEC 61131-3 standard, first published in 1993 and updated in 2025, defines 5 programming languages
| Language | Type | Abbreviation | Status |
|---|---|---|---|
| Ladder Diagram | Graphical | LD | ✅ Active — most widely used |
| Function Block Diagram | Graphical | FBD | ✅ Active — process control standard |
| Sequential Function Chart | Graphical | SFC | ✅ Active — batch & sequence control |
| Structured Text | Textual | ST | ✅ Active — fastest growing |
| Instruction List | Textual | IL | ❌ Deprecated 2013, Removed 2025 |
💡 Important 2025 Update: The fourth edition of IEC 61131-3 published in May 2025 has officially removed Instruction List (IL) from the standard. Do not use IL for any new projects. Use Structured Text (ST) instead — it offers all the same capabilities and more.
Before learning programming languages, make sure you understand PLC inputs and outputs and how field devices connect to the controller.
1. Ladder Logic (LD) — The Most Widely Used PLC Language
Ladder Logic is the most widely used PLC programming language in the world. Industry surveys consistently show that over 80% of all PLC programs globally are written in Ladder Logic. It was the very first PLC programming language, developed in the 1960s to replace hardwired relay panels, and remains the foundation of PLCopen’s IEC 61131-3 programming standards.
The name comes from its appearance — the program is arranged with two vertical power rails and horizontal rungs between them, exactly like a ladder. Each rung contains one line of control logic evaluated left to right.
How Ladder Logic Works
Ladder Logic uses graphical symbols that resemble electrical relay circuit components:
| Symbol | Name | Function | Rockwell | Siemens |
|---|---|---|---|---|
--[ ]-- | Normally Open Contact | Passes current when input is ON | XIC | –| |– |
--[/]-- | Normally Closed Contact | Passes current when input is OFF | XIO | –|/|– |
--( )-- | Output Coil | Energizes output when rung is TRUE | OTE | –( )– |
--[TON]-- | Timer On-Delay | Delays output after input goes ON | TON | TON |
--[CTU]-- | Count Up Counter | Counts rising edge pulses | CTU | CTU |
Ladder Logic Example — Motor Start/Stop
|--[START_PB]--+--[STOP_PB/]--[E_STOP/]--(MOTOR_RUN)--|
| |
+--[MOTOR_RUN]--+ |
When START_PB is pressed → MOTOR_RUN energizes → seal-in contact holds the motor running → STOP_PB or E_STOP breaks the circuit and stops the motor.
When to Use Ladder Logic
- Motor start/stop control circuits
- Safety interlocks and permissives
- Conveyor and machine sequencing
- Any application where technicians need to troubleshoot the program
- Discrete ON/OFF control applications
Ladder Logic Advantages and Disadvantages
| Advantages | Disadvantages |
|---|---|
| Easiest to learn — familiar to electricians | Not ideal for complex math or algorithms |
| Visual — easy to troubleshoot online | Can become hard to read with complex logic |
| Supported by all PLC manufacturers | Not efficient for data manipulation |
| Industry standard for maintenance teams | Verbose — requires many rungs for complex tasks |
| Over 80% of industry uses it | Poor for text/string handling |
To learn ladder logic in depth with 7 real industrial examples, read: PLC Ladder Logic Tutorial
2. Function Block Diagram (FBD) — Best for Process Control
Function Block Diagram is a graphical programming language where pre-built function blocks are connected together with lines to show the flow of data and signals. It looks like a dataflow diagram — signals flow from left to right through interconnected blocks.
FBD is the preferred language for process control applications because it naturally represents how signals flow through control loops — from transmitter input, through a PID controller block, to a control valve output.
How FBD Works
Each block in FBD has inputs on the left side and outputs on the right side. You connect the output of one block to the input of the next to create control logic.
[LT_101 AI]──► [SCALE_0_100] ──► [PID Controller] ──► [FCV_101 AO]
▲
[Setpoint SP]
This represents a complete level control loop — level transmitter feeds into a scaling block, into a PID controller, which drives the control valve to maintain the setpoint.
When to Use Function Block Diagram
- PID control loops (temperature, pressure, flow, level)
- Analog signal processing and scaling
- Complex control strategies (cascade, ratio, feedforward)
- Applications where multiple signals interact simultaneously
- Process industries (chemical, oil & gas, power generation)
FBD Advantages and Disadvantages
| Advantages | Disadvantages |
|---|---|
| Excellent for visualizing data flow | Can become cluttered with many connections |
| Perfect for PID and analog control | Not ideal for discrete ON/OFF logic |
| Reusable function blocks | Harder to troubleshoot than ladder logic |
| Compact — less space than ladder | Requires process control knowledge |
3. Structured Text (ST) — The Fastest Growing PLC Language
Structured Text is a high-level, text-based programming language that resembles Pascal, C, or BASIC. It is the most powerful of all IEC 61131-3 languages and the fastest growing in adoption, particularly among engineers with software development backgrounds.
Unlike graphical languages, ST is written as text with standard programming constructs — IF/THEN/ELSE statements, FOR loops, WHILE loops, CASE statements, and mathematical expressions. This makes it ideal for complex calculations, data manipulation, and algorithm implementation.
Structured Text Example — Temperature Control
IF TT_101 > Setpoint_High THEN
Cooling_Valve := TRUE;
Heating_Element := FALSE;
ELSIF TT_101 < Setpoint_Low THEN
Cooling_Valve := FALSE;
Heating_Element := TRUE;
ELSE
Cooling_Valve := FALSE;
Heating_Element := FALSE;
END_IF;
Motor_Speed := (Flow_Rate / Max_Flow) * 100.0;
When to Use Structured Text
- Complex mathematical calculations and formulas
- Recipe management and parameter handling
- String manipulation and data formatting
- Array processing and data logging
- Advanced motion control algorithms
- Reusable function blocks and libraries
ST Advantages and Disadvantages
| Advantages | Disadvantages |
|---|---|
| Most powerful and flexible language | Harder to learn for electricians |
| Compact — complex logic in few lines | Cannot be monitored visually online |
| Easy for software developers to learn | Maintenance technicians may struggle |
| Excellent for data and math operations | No graphical representation |
| Best for reusable code libraries | Requires programming background |
4. Sequential Function Chart (SFC) — Best for Step-Based Processes
Sequential Function Chart is a graphical programming language designed specifically for step-based sequential control. It breaks a complex process down into Steps and Transitions — the program moves from one step to the next when a transition condition becomes TRUE.
SFC is modelled after Petri nets and is the only IEC 61131-3 language that provides a top-level view of an entire process sequence. It is widely used in batch manufacturing, food processing, and pharmaceutical production.
How SFC Works
[START]
|
(Start PB pressed)
|
[Step 1: Fill Tank]
|
(Level reaches 80%)
|
[Step 2: Heat Product]
|
(Temperature reaches 85°C)
|
[Step 3: Mix Product]
|
(Timer 10 min done)
|
[Step 4: Drain Tank]
|
(Level below 5%)
|
[END]
Each step contains its own ladder logic or structured text that executes while that step is active. Transitions are boolean conditions that trigger the move to the next step.
When to Use SFC
- Batch manufacturing processes
- Multi-step cleaning and sterilization (CIP/SIP)
- Automated machine cycles with defined sequences
- Pharmaceutical and food production
- Any process that follows a defined set of steps
SFC Advantages and Disadvantages
| Advantages | Disadvantages |
|---|---|
| Excellent overview of process sequence | Not suitable for continuous control |
| Easy to understand the process flow | More complex to program than ladder |
| Built-in step timing and monitoring | Requires good process documentation |
| Perfect for batch and recipe control | Overkill for simple ON/OFF applications |
5. Instruction List (IL) — Deprecated, Do Not Use
Instruction List was a low-level, assembler-like text programming language included in the original IEC 61131-3 standard. It was intended for simple controllers with limited processing power.
However, IL was marked as deprecated in the third edition of IEC 61131-3 (2013) and was completely removed in the fourth edition (2025). No new projects should use IL.
⚠️ Action Required for Legacy Systems: If you have existing PLC programs written in IL, plan to migrate them to Structured Text (ST). ST offers all the same capabilities as IL with much better readability, maintainability, and tool support.
Full Comparison — All 5 PLC Programming Languages
| Feature | Ladder (LD) | FBD | Structured Text (ST) | SFC | IL |
|---|---|---|---|---|---|
| Type | Graphical | Graphical | Textual | Graphical | Textual |
| Difficulty | ⭐ Easiest | ⭐⭐ Easy | ⭐⭐⭐ Medium | ⭐⭐⭐ Medium | ⭐⭐⭐⭐ Hard |
| Best for | Discrete control | Process control | Complex logic | Sequences | Legacy only |
| Industry adoption | 80%+ worldwide | High in process | Fast growing | Batch industries | Deprecated |
| Online monitoring | ✅ Excellent | ✅ Good | ⚠️ Limited | ✅ Good | ❌ Poor |
| Math & data | ❌ Limited | ⚠️ Moderate | ✅ Excellent | ⚠️ Via sub-routines | ⚠️ Basic |
| Siemens name | LAD | FUP | SCL | GRAPH | STL (removed) |
| Rockwell name | Ladder | FBD | Structured Text | SFC | Not supported |
| Status | ✅ Active | ✅ Active | ✅ Active | ✅ Active | ❌ Removed 2025 |
Which Language to Choose — Decision Guide

| Your Application | Best Language | Reason |
|---|---|---|
| Motor control, interlocks, ON/OFF logic | Ladder Logic (LD) | Visual, easy to maintain, industry standard |
| PID loops, analog signal processing | Function Block (FBD) | Data flow visualization, process blocks built-in |
| Complex math, recipes, data handling | Structured Text (ST) | Most powerful, compact code |
| Batch processes, multi-step sequences | SFC | Step-based structure, perfect for sequences |
| Existing legacy IL programs | Migrate to ST | IL removed from standard — plan migration |
| Mixed machine + process control | LD + FBD + ST | Use multiple languages in same project |
| Beginners — first language to learn | Ladder Logic (LD) | Most intuitive, most in-demand job skill |
Can You Mix Languages in One PLC Program?
Yes — and this is exactly how real industrial projects are programmed. IEC 61131-3 allows you to use multiple languages within the same PLC program. Each program block (POU — Program Organization Unit) can be written in a different language.
A typical real-world program structure might look like this:
| Program Block | Language Used | Why |
|---|---|---|
| Main machine control | Ladder Logic | Maintenance-friendly, easy to troubleshoot |
| PID temperature control | FBD | Best for process loops |
| Recipe calculation | Structured Text | Complex math and data handling |
| Batch sequence control | SFC | Clear step-by-step sequence overview |
| Reusable function libraries | Structured Text | Clean, portable code |
Combining languages this way gives you the best of each language for different parts of the same project.
PLC Programming Languages in Siemens TIA Portal
Siemens TIA Portal supports all 4 active IEC 61131-3 languages with their own naming conventions:
| IEC Language | Siemens Name | Siemens Abbreviation |
|---|---|---|
| Ladder Diagram | Ladder Diagram | LAD |
| Function Block Diagram | Function Block Diagram | FUP |
| Structured Text | Structured Control Language | SCL |
| Sequential Function Chart | Graph | GRAPH |
💡 Siemens Tip: In TIA Portal, you can freely mix LAD, FUP, SCL, and GRAPH within the same project. Each Function Block or Program Block chooses its own language. SCL (Structured Text) is increasingly preferred by Siemens engineers for complex logic because it compiles to more efficient machine code than LAD for mathematical operations.
PLC Programming Languages in Rockwell Studio 5000
| IEC Language | Rockwell Name | Notes |
|---|---|---|
| Ladder Diagram | Ladder Diagram | Most common in North America |
| Function Block Diagram | Function Block Diagram | Supported in ControlLogix/CompactLogix |
| Structured Text | Structured Text | Growing rapidly in Rockwell projects |
| Sequential Function Chart | Sequential Function Chart | Available in Studio 5000 |
💡 Rockwell Tip: Rockwell Allen-Bradley does not support Instruction List (IL) — they never implemented it. Studio 5000 also supports an additional language called Motion Control specific to servo drive programming, which is not part of IEC 61131-3.
Recommended Learning Path for Beginners
If you are new to PLC programming, follow this sequence:
| Stage | Language | Timeframe | What to Learn |
|---|---|---|---|
| Stage 1 | Ladder Logic (LD) | Weeks 1–4 | Contacts, coils, timers, counters, seal-in contacts |
| Stage 2 | Ladder Logic (LD) | Weeks 5–8 | Motor control, conveyor logic, interlocks, sequencing |
| Stage 3 | Function Block (FBD) | Month 3 | PID blocks, analog scaling, process control loops |
| Stage 4 | Structured Text (ST) | Month 4–5 | IF/THEN/ELSE, FOR loops, arrays, math operations |
| Stage 5 | SFC | Month 6+ | Steps, transitions, batch control sequences |
| Stage 6 | Mixed languages | Ongoing | Combining all languages in real industrial projects |
To start learning right now, read our complete tutorial: PLC Ladder Logic Tutorial – 7 Real Industrial Examples
To choose the right software for learning, read: Best PLC Programming Software for Beginners
Frequently Asked Questions – PLC Programming Languages
What are the 5 PLC programming languages defined by IEC 61131-3?
The IEC 61131-3 standard defines 5 PLC programming languages: Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC), Structured Text (ST), and Instruction List (IL). However, IL was deprecated in 2013 and officially removed from the standard in the 2025 fourth edition. Only 4 languages are active in the current standard.
Which PLC programming language is most widely used?
Ladder Logic (Ladder Diagram / LD) is the most widely used PLC programming language worldwide. Industry surveys consistently show that over 80 percent of all PLC programs globally are written in Ladder Logic. It is supported by every major PLC manufacturer and is the default language for maintenance and troubleshooting in most industrial facilities.
What is the difference between Ladder Logic and Structured Text?
Ladder Logic is a graphical language that uses relay-style symbols arranged on rungs — visual and easy for electricians to understand. Structured Text is a text-based language similar to Pascal or C — powerful and compact but requires programming knowledge. Ladder Logic is best for discrete ON/OFF control. Structured Text is best for complex calculations, data handling, and algorithm implementation.
What is Function Block Diagram used for?
Function Block Diagram (FBD) is used primarily for process control applications where signals flow through multiple control functions. It is the preferred language for PID control loops, analog signal processing, and complex control strategies like cascade and ratio control. FBD is widely used in chemical plants, power generation, oil and gas, and food and beverage industries.
Can I use multiple PLC programming languages in the same project?
Yes. IEC 61131-3 explicitly allows mixing languages within the same PLC project. Each program block can be written in a different language. Real industrial projects commonly use Ladder Logic for machine control, Function Block Diagram for PID loops, Structured Text for recipe calculations, and SFC for batch sequences — all within the same project.
Is Instruction List (IL) still used?
No. Instruction List was deprecated in the 2013 edition of IEC 61131-3 and completely removed from the standard in the 2025 fourth edition. It should not be used for any new PLC projects. Engineers with legacy IL programs should plan migration to Structured Text, which offers all the same functionality with much better readability and tool support.
What PLC programming language should a beginner learn first?
Beginners should always start with Ladder Logic. It is the most visual, intuitive, and widely used language. Its symbols resemble electrical relay diagrams, making it accessible to anyone with an electrical background. After mastering Ladder Logic fundamentals, learners should progress to Function Block Diagram for process control, then Structured Text for advanced programming capabilities.
How does Siemens name its PLC programming languages differently?
Siemens uses different names for standard IEC languages in TIA Portal: Ladder Diagram is called LAD, Function Block Diagram is called FUP, Structured Text is called SCL (Structured Control Language), and Sequential Function Chart is called GRAPH. The functionality is identical to the IEC standard — only the names differ.
Conclusion
The 5 IEC 61131-3 PLC programming languages each serve a specific purpose in industrial automation. No single language is best for everything — the most effective PLC programmers know when to use each one and how to combine them in the same project.
To summarize the key decision:
- Ladder Logic — start here, master it, use it for machine control
- FBD — add this for process control and PID loops
- Structured Text — add this for complex data and algorithms
- SFC — add this for batch and sequential processes
- IL — do not use, migrate legacy code to ST
Related Guides:
