What is IEC-61131-3?
PLC Programming Language "Standard"
"Standard" Languages
Officially, IEC-61131-3 is a specification for a set of “standard” PLC programming languages:
- LAD: Ladder Logic
- FBD: Function Block Diagram
- SL: Statement List
- ST: Structured Text
- SFC: Sequential Function Chart
Joyful Thoughts
This section shares James Joy’s perspective on how this technology applies specifically to industrial automation.
There’s a reason I keep putting “standard” in quotation marks. To me, a true standard means you can take code that complies with it and re-use that code across all compatible products — without rewriting it.
A perfect example of a true standard is web technology. Code written in HTML, CSS, or JavaScript can be displayed by virtually any web browser — Google Chrome, Apple Safari, Mozilla Firefox, Microsoft Edge, or others — with minimal variation in how the website behaves or appears.
Unfortunately, that’s not the case for IEC-61131-3. If I write Ladder Logic for Allen-Bradley RSLogix 5000, I can’t simply reuse that same logic in Siemens STEP 7 or Schneider Unity without significant rework — if not a total rewrite. This lack of interoperability applies across every implementation of every IEC-61131-3 language. So what good is it as a standard? It might as well not be one.
Moreover, these languages have failed to evolve to meet the flexibility and power required for modern control systems. Developers are often confined to environments with:
- Extremely limited function sets
- Weak or nonexistent version control
- Little to no automated testing
- Toolchains that are hard to scale
The only real advantage these graphical languages maintain over modern programming languages (like Python, JavaScript, Go, or Rust) is that they can natively visualize logic in real time — an important feature for process control programming.
However, in my experience, that benefit only holds true for simple programs. Once a program reaches a certain level of complexity, the graphical aspect actually becomes harder to follow than a modern text-based language.
The reality is that with today’s IDEs — particularly those based on VS Code — features like Ctrl+Click for navigating variable definitions are far more powerful than the cross-reference tools in Studio 5000 or TIA Portal. And with the rise of AI-assisted IDEs, the gap between modern programming environments and traditional PLC tools is only widening.