IEC 61131-3 Edition 4
The End of Instruction List
The May 2025 revision of the PLC programming standard removes IL, adds OOP Properties, Mutex/Semaphore synchronization, UTF-8 strings, and ASSERT. Here's what every automation engineer needs to know.
What Changed in Edition 4?
IEC 61131-3:2025 (Edition 4) is the most significant update to the PLC programming languages standard since 2013. Published in May 2025 by the IEC Technical Committee TC 65 / SC 65B, it modernizes the standard to reflect how industrial automation software is actually developed today.
The headline change: Instruction List (IL) — the assembler-like PLC language dating back to the 1990s — has been officially removed from the standard. It was deprecated in Edition 3 (2013) and is now gone entirely. The IEC committee concluded that 'an assembler-like language is not up-to-date in modern development environments.'
But IL removal is just one part of a broader modernization. Edition 4 also introduces object-oriented Properties, concurrency primitives (Mutex/Semaphore), UTF-8 string support, a development ASSERT function, and expanded type conversions.
What Was Removed
Features officially dropped from the standard
Instruction List (IL)
The entire IL language specification (Chapter 7.2) has been removed. IL was an assembler-like language prone to unreadable, hard-to-maintain code. Manufacturers may still support it, but it is no longer part of the IEC standard. Migrate to Structured Text (ST).
Octal Literals
Octal number notation (e.g., 8#267) has been eliminated. Use decimal or hexadecimal notation instead.
Untyped TRUNC
The generic TRUNC(x) function is gone. Use explicitly typed versions like TRUNC_DINT(x) or TRUNC_LINT(x) for safe, unambiguous truncation.
BCD Functions (Deprecated)
Binary-Coded Decimal functions (IS_VALID_BCD, BCD_TO_*, *_TO_BCD) are marked deprecated and will likely be removed in the next edition.
What Was Added
New features that modernize PLC programming
Properties (GET/SET)
Classes, Function Blocks, and Interfaces now support PROPERTY_GET and PROPERTY_SET declarations — proper getter/setter methods with access specifiers (PUBLIC, PRIVATE, PROTECTED, INTERNAL). This brings PLC OOP closer to modern software engineering.
Mutex & Semaphore
New Chapter 6.9 introduces concurrency control. MUTEX provides LOCK/UNLOCK/TRYLOCK for critical sections. SEMA provides ACQUIRE/RELEASE/TRY_ACQUIRE for counted resource access. Essential for multi-core PLCs and concurrent task management.
USTRING & UCHAR (UTF-8)
Native UTF-8 string and character types join the existing STRING (ASCII) and WSTRING (UTF-16). Literals use U#'text' syntax. New functions LEN_MAX and LEN_CODE_UNIT handle variable-length encoding. Full internationalization support for HMI and logging.
ASSERT Function
A development-time validation function that checks boolean expressions and raises manufacturer-defined diagnostics when conditions fail. Disabled in production — zero runtime overhead. Think unit-testing assertions for PLC code.
Extended Type Conversions
New explicit conversions (LWORD_TO_BOOL, DWORD_TO_BOOL, WORD_TO_BOOL, BYTE_TO_BOOL) and string-to-array conversions (STRING/WSTRING/USTRING to ARRAY_OF_BYTE). Implicit STRING_TO_WSTRING and CHAR_TO_WCHAR conversions are now standard.
Hex Character Codes in Strings
New ${HH} syntax allows inserting characters by hexadecimal code point inside string literals. Enables tab characters, Unicode symbols, and special characters directly in your PLC code.
Migrating from IL to Structured Text
If your codebase still uses Instruction List, now is the time to migrate. IL code is typically 3-5x longer than equivalent Structured Text, harder to read, and increasingly unsupported by modern tools and AI code assistants.
T-IA Connect can accelerate your IL-to-ST migration. Our AI understands both languages and can translate IL blocks to clean, optimized Structured Text while preserving your logic and variable naming. Combined with the MCP server, you can re-inject the migrated code directly into TIA Portal.
Export IL Blocks
Use T-IA Connect's export tools to extract your existing IL source code from TIA Portal projects (V17-V21).
AI-Assisted Translation
Feed the IL code to any MCP-compatible AI model. The AI translates to idiomatic Structured Text, handling timers, counters, jump labels, and accumulator patterns.
Import & Compile
Import the generated SCL back into TIA Portal through T-IA Connect's create_scl_block or import_scl_source tools. Compile and verify in one step.
What This Means for Siemens TIA Portal Users
Siemens has not removed IL/STL from TIA Portal — and likely won't for years. But the writing is on the wall. New Siemens tools (SIMATIC AX, TIA Portal V21 Source Documents) focus exclusively on Structured Text. The IEC standard now only recognizes four languages: ST, LD, FBD, and SFC.
For new projects, there's no reason to use IL anymore. For existing projects with IL code, plan your migration now while the tooling and AI support are mature. T-IA Connect's MCP server with 60+ tools makes this transition manageable — even for large codebases.
IEC 61131-3 Edition Timeline
Edition 1 (1993)
First publication. Defines 5 languages: IL, ST, LD, FBD, SFC.
Edition 2 (2003)
Maintenance revision. Minor clarifications and corrections.
Edition 3 (2013)
Major update. OOP (classes, interfaces, inheritance), namespaces, references. IL deprecated.
Edition 4 (2025)
IL removed. Properties, Mutex/Semaphore, UTF-8 (USTRING), ASSERT, extended conversions added.
Frequently Asked Questions
Is Instruction List completely gone from IEC 61131-3?
Yes. IL was deprecated in Edition 3 (2013) and fully removed in Edition 4 (2025). It is no longer part of the international standard. However, PLC manufacturers like Siemens may continue to support IL/STL in their tools — it's just no longer standardized.
Do I need to rewrite all my IL code immediately?
No. Existing IL programs will continue to work in TIA Portal and other environments that still support it. But for new development, Structured Text is now the only standardized textual language. Plan your migration gradually — T-IA Connect's AI can help translate block by block.
What are Mutex and Semaphore used for in PLC programming?
Mutex (mutual exclusion) protects critical code sections so only one task can execute them at a time — preventing data corruption in multi-task programs. Semaphore allows counted access to shared resources (e.g., limiting concurrent connections). These are standard concepts in IT that are now formalized for PLCs.
How does T-IA Connect help with the IEC 61131-3:2025 transition?
T-IA Connect generates IEC 61131-3 compliant Structured Text through AI. Our MCP server can export existing IL blocks, translate them to ST via any AI model, and re-import the clean code into TIA Portal. We support V17 through V21, so you can modernize without upgrading your TIA Portal version.