PLC System Programs, User Programs & Languages Explained (2026)
Share
> AI Summary
- PLC system programs are manufacturer firmware (runtime OS, I/O scan, communications); user programs are the IEC 61131-3 application you download.
- IEC 61131-3 Edition 4 retires Instruction List; Ladder Diagram (LD), Structured Text (ST), Function Block Diagram (FBD), and Sequential Function Chart (SFC) remain canonical in 2026.
- Since 2024, edge runtimes, container sidecars, OPC UA FX, and TLS 1.3 firmware have become standard on most new CPUs across Allen-Bradley, Siemens, and Mitsubishi.
- Choosing the right language still depends on application: LD for discrete I/O, FBD for process and safety, ST for math and data work.
- For EOL or cross-brand projects, source matched firmware + hardware bundles through KOEED RFQ within 24 hours.
Modern PLCs split firmware into a runtime OS and user code authored in IEC 61131-3 languages. In 2026, edge runtimes, OPC UA FX, and structured text dominate new designs.
Allen-Bradley Ā· Siemens Ā· Mitsubishi Ā· Omron Ā· Engineering Notes Ā· 2026
By KOEED Engineering Team Ā· 2026-07-02 Ā· 8 min read Ā· Engineering Notes
Two distinct software layers run on every modern controller: the manufacturer-shipped system program (firmware / runtime) and the user program you write in an IEC 61131-3 language. This 2026 field guide explains the split, maps the languages to real engineering tasks, and highlights what has changed since the original 2024 article.
1. What is a PLC system program?
The PLC system program is firmware shipped by the manufacturer and stored in non-volatile memory on the CPU. It boots the controller, schedules tasks, runs the I/O scan, manages communication stacks, and exposes the programming environment. End users do not author or modify the system program; it is updated through vendor firmware packages only.
In 2026, the system program on a modern CPU typically bundles:
- Real-time runtime OS (often a vendor-tuned RTOS or hypervisor).
- IEC 61131-3 execution engine (LD, FBD, ST, SFC interpreter and compiler).
- Communication servers: EtherNet/IP, PROFINET, Modbus TCP, OPC UA, OPC UA FX.
- Web server, security stack (TLS 1.3, role-based access), and diagnostic buffer.
- Optional container runtime for edge analytics (Docker / OCI sidecars on supported CPUs).
2. What is a PLC user program?
The user program is the application logic you author, compile, and download to the controller. It is project-based: a collection of programs (POUs), tags, tasks, I/O mappings, and HMI screens that perform the actual machine or process control. You can modify the user program at any time without touching the firmware.
Most brands compile the user program into vendor bytecode or native code at download time. The runtime then executes it inside the IEC 61131-3 engine of the system program. This is why a firmware update can change user-program behavior: the underlying task scheduler, memory model, or optimizer has changed.
> Tip
Always pin the firmware revision in your project notes. If you migrate the CPU hardware but not the firmware, expect changes to scan time, OPC UA server behavior, and tag import latency.
3. The IEC 61131-3 programming languages (2026 view)
IEC 61131-3 defines five languages. The third edition (2013) made them first-class, and Edition 4 (released as a final draft international standard in 2024 and adopted by major vendors through 2025-2026) retired Instruction List (IL) in favor of structured text. Today four languages cover almost every industrial use case.
| Language | Best for | 2026 status |
|---|---|---|
| Ladder Diagram (LD) | Discrete I/O, relay-replacement, maintenance technician readability. | Still dominant on Allen-Bradley and Omron shop floors. |
| Function Block Diagram (FBD) | Process control, drives, safety logic, P&ID-style flow. | Standard on Siemens and Schneider PID and safety libraries. |
| Structured Text (ST) | Math, arrays, recipes, MQTT / OPC UA payload handling. | Now the default for IIoT and edge analytics code. |
| Sequential Function Chart (SFC) | Batch processes, mode/state machines, recipe steps. | Unchanged; widely used in pharma and food batch. |
| Instruction List (IL) | Legacy assembly-like code (pre-2013 projects). | Deprecated by Edition 4 (2024); migrate to ST. |
4. What changed since 2024
The original article published in March 2024 covered the same five languages, but the runtime landscape has shifted noticeably. The changes engineers should plan for in 2026 are:
- Instruction List retired. IEC 61131-3 Edition 4 (final draft 2024, adopted 2025) drops IL. Vendors are deprecating IL editors and migrating existing IL blocks to Structured Text on request.
- OPC UA FX as the new default field-to-cloud bus. Where 2024 designs still used MQTT brokers and proprietary protocols, 2026 reference architectures use OPC UA FX with publish/subscribe for PLC-to-PLC and PLC-to-cloud traffic.
- Container sidecars on premium CPUs. ControlLogix 1756-L8x, SIMATIC S7-1500 with TIA V19+, and Mitsubishi iQ-R with MELSEC iQ-R OPC UA server can run signed OCI containers next to the IEC engine for analytics and ML.
- TLS 1.3 and signed firmware. Vendor firmware updates in 2025-2026 are cryptographically signed; unsigned firmware is rejected. Plan rollouts through vendor update utilities, not raw SD card copies.
- Vendor-neutral POUs. PLCopen now publishes reusable function blocks for OPC UA, motion, and safety that compile across brands. Cross-brand reuse is finally practical at the POU level, not just at the wiring level.
! Warning
Hot-swapping a 1756 power supply without a UPS can corrupt user program memory. Always back up the .ACD project and verify firmware revision before any controller swap.
5. Choosing the right language for the job
Most modern PLCs support all four active IEC languages in the same project, and engineers mix them. A typical 2026 architecture uses:
- LD for the safety I/O slice and any section a maintenance electrician must read at 2 a.m.
- FBD for PID loops, drives, and motion primitives.
- ST for recipes, MQTT / OPC UA payload handling, and any algorithm too dense for rungs.
- SFC for batch state machines where step / transition language clarifies intent.
The right language is rarely a religious choice. It is the one your maintenance team can read, the one that fits the data structures, and the one your vendor's libraries use. When in doubt, write the heavy lifting in ST and expose it as a function block so the rest of the program can call it from any language.
6. Sourcing the right hardware for your user program
A user program is only as portable as the hardware it runs on. If you are supporting an Allen-Bradley SLC 500 line still in production, or migrating to Siemens SIMATIC S7-1500, KOEED keeps matched firmware / hardware bundles in stock across nine brands so you can keep running without rewriting the whole project.
Use the PLC Error Code Database to interpret faults after a firmware update, and the PLC Analog Calculator when scaling 4-20 mA loops during commissioning.
Migrating a controller or chasing an EOL firmware?
Send your BOM (CPU, I/O, firmware revision) to Moritta@KOEED.COM. Active stock, EOL stock, and matched firmware ā all in one quote within 24 hours.
Create a Quote āRelated on the KOEED blog
- Daily PLC News ā firmware releases and restock alerts across Allen-Bradley, Siemens, Mitsubishi, Omron.
- Mitsubishi MELSEC iQ-R collection ā current-gen CPUs that pair with OPC UA FX firmware.
- PLC Hex to Float Converter ā for Modbus payloads in ST code.
- AI Diagnostic Tool ā identify a CPU by nameplate photo and get a cross-reference.
- Contact KOEED ā WhatsApp, email, and RFQ form, all in one place.
Frequently asked questions
What is the difference between a PLC system program and a user program?
The system program is firmware / runtime shipped by the manufacturer (CPU scheduling, I/O scan, communications). The user program is the IEC 61131-3 application logic you download and own.
Which IEC 61131-3 languages are still the most used in 2026?
Ladder Diagram (LD) and Structured Text (ST) dominate. FBD is common in process and safety, SFC for batch. Instruction List was retired by IEC 61131-3 Edition 4 in 2024.
Does a modern PLC still need a separate system program?
Yes. Runtime OS, IEC execution engine, web server, OPC UA server, and security stack are all firmware. Premium 2026 CPUs also expose an OCI container runtime next to the IEC engine.
Can I migrate a user program from one PLC brand to another?
Not automatically. Vendor-specific function blocks, I/O addressing, and task models differ. KOEED supports cross-brand migration with cross-reference notes and replacement hardware sourcing.
How do I keep a user program portable across firmware updates?
Pin the firmware revision, export source under version control, document POUs, and re-validate after every major firmware bump. KOEED ships matched firmware / hardware bundles.
Does KOEED supply discontinued PLC firmware or runtime modules?
KOEED does not supply firmware, but we stock new, refurbished, and EOL CPUs across nine PLC brands for in-place repair and forward migration. Send BOM to Moritta@KOEED.COM for a quote.
KOEED Engineering Team
Industrial automation editors at KOEED. Writes about PLC sourcing, firmware lifecycle, cross-reference, and legacy system support. Reach the team at Moritta@KOEED.COM .