What is IEC 61499?

IEC 61499 is the international IEC standard for event-driven function blocks that allows control software for industrial automation to be distributed across multiple devices and designed independently of the hardware it runs on. Where a classic PLC under IEC 61131 executes its programs cyclically on that one controller, IEC 61499 describes one application that is spread over a network of controllers, edge devices and intelligent field equipment. That makes the standard a foundation for software-defined automation, soft PLCs and open process automation.


🕰️ How did IEC 61499 come about?

Year Milestone
1990–1991 IEC TC65 starts work on function blocks for distributed systems
2000 Publicly Available Specification (PAS) released for trial use
2005 First edition of IEC 61499 published as an international standard
2007 The open-source 4diac project starts
2012 Second edition of Part 1 (architecture) and Part 2 (software tools)
2013 Second edition of Part 4 (compliance profiles)
2015 4diac becomes an Eclipse Foundation project: Eclipse 4diac
2020 Schneider Electric releases EcoStruxure Automation Expert
2021 UniversalAutomation.org is founded

The standard is maintained by subcommittee SC 65B of the IEC. The 2012 second edition of IEC 61499-1 is still the current version, and the IEC has set 2028 as its stability date. Part 3, a technical report containing tutorial material, was withdrawn in 2008.


🧠 How does an IEC 61499 function block work?

The core of IEC 61499 is the function block (FB), which has two kinds of connection: event inputs and outputs that determine when something happens, and data inputs and outputs that determine with which values. A block only executes when an event arrives, and the associated data are sampled at that moment. The execution order is therefore explicit in the design rather than implied by the order of statements in a scan cycle.

The standard defines three main types of function block:

  • Basic function block — its behaviour is described by an Execution Control Chart (ECC), a state machine that invokes algorithms in response to events, typically written in Structured Text
  • Composite function block — a network of other function blocks packaged as a single reusable block
  • Service interface function block (SIFB) — the interface to the outside world: I/O, timers and communication patterns such as PUBLISH/SUBSCRIBE or CLIENT/SERVER

On top of these come adapters, which bundle events and data into a single tidy connection, and subapplications, function block networks that can be distributed across devices as a whole.


🔧 How is an IEC 61499 system structured?

IEC 61499 uses a layered model:

Level Meaning
System The complete installation, including all devices and networks
Application The function block network that describes the control task, independent of hardware
Device A physical or virtual unit: PLC, edge PC, variable speed drive, I/O module
Resource An independent execution environment within a device
System configuration The mapping: which function block runs on which device and resource

You design the application first and decide only afterwards where each block will run. The engineering tool then generates the communication between devices automatically. Deployment uses standardised management commands such as CREATE, START, STOP, DELETE, READ and WRITE, so in principle individual blocks can be changed without a full restart of the controller.


🔄 What is the difference between IEC 61131-3 and IEC 61499?

Characteristic IEC 61131-3 IEC 61499
Execution model Cyclic scan (e.g. every 10 ms) Event-driven
Architecture Programs tied to a single controller One application across many devices
Communication between controllers Programmed by hand Part of the model (SIFBs)
Portability Limited; each vendor has its own dialect A core goal, via XML exchange and compliance profiles
Languages LD, FBD, ST, SFC (IL deprecated since 2013) Function blocks; algorithms often in ST
Market position Global standard in virtually every PLC Niche, growing in process industries and research

IEC 61499 does not replace IEC 61131-3 but builds on it: the data types and ST come from 61131-3, and the second edition added function block types for interoperation with existing programmable controllers.


🏭 Which implementations are available?

  • Eclipse 4diac — open source, consisting of the 4diac IDE and the 4diac FORTE runtime; version 3.0, released in December 2025, brought among other things a new ST editor and a modernised runtime
  • EcoStruxure Automation Expert — the commercial platform from Schneider Electric, built on technology from nxtControl, the Austrian company Schneider acquired in 2017
  • UniversalAutomation.org (UAO) — an independent not-for-profit association founded in late 2021 that manages a shared reference runtime based on nxtControl code donated by Schneider. Members include ExxonMobil, BASF, Yokogawa and Intel, and by 2025 membership had passed one hundred
  • FBDK — the original reference toolkit from Holobloc, used mainly in education and research

Major PLC vendors such as Siemens and Rockwell Automation continue to focus on IEC 61131-3, as do software platforms like CODESYS and TwinCAT.


☁️ How does IEC 61499 fit into software-defined automation?

Software-defined automation means that control logic runs as software decoupled from specific hardware, often as a soft PLC on an industrial PC or in a virtualised environment. IEC 61499 fits this model well: the same application can run on a small controller, an edge server or a virtual PLC, provided a compliant runtime is available.

In the process industries, O-PAS from The Open Group cites IEC 61499 alongside IEC 61131-3 as a basis for portable control applications. The Module Type Package (MTP) from NAMUR and ZVEI solves a different problem, namely orchestrating ready-made process modules, so the two approaches complement each other. For data exchange with higher layers, OPC UA and MQTT are used as SIFBs.


🛠️ Worked example: a conveyor with distributed sensors

Take a conveyor with a photoelectric sensor at the infeed, another at the outfeed and a motor driven by a variable speed drive. With IEC 61499 you would approach it as follows:

  1. Design the application — an SIFB IX reads the infeed sensor, a basic FB ConveyorLogic contains an ECC with the states Stopped, Running and Fault, and an SIFB QX drives the motor
  2. Define the events — the rising edge of the infeed sensor raises event START, the outfeed sensor raises DONE, and a timer FB raises TIMEOUT if a product takes too long
  3. Write the algorithms — a short ST algorithm for each ECC state that sets the motor output
  4. Describe the system — device 1 is an I/O node at the conveyor, device 2 an edge controller
  5. Map the blocks — sensors and motor to device 1, ConveyorLogic and an OPC UA SIFB for the supervisory system to device 2
  6. Deploy and test — the tool sends management commands to both runtimes and sets up the event connections across the network

If you later decide to move the logic onto the I/O node, you change only the mapping, not the application itself.


🔐 What security risks come with IEC 61499?

Because applications are distributed across the network, communication between devices becomes part of the control function itself. The standard does not prescribe any security. Points to watch:

  • Management interface — 4diac FORTE listens on TCP port 61499 by default and does not authenticate callers, so anyone who can reach that port can load or stop function blocks
  • Unprotected event connections — simple PUBLISH/SUBSCRIBE over UDP offers no encryption or integrity protection
  • Countermeasures — network segmentation per zone, secure protocols such as OPC UA with certificates, and component and system requirements from IEC 62443

⚖️ What are the main criticisms of IEC 61499?

  • Limited vendor support — the largest PLC brands offer no native runtime, so portability in practice is limited to a smaller ecosystem
  • Learning curve — event-driven thinking, ECCs and mapping take getting used to for engineers trained on cyclic PLC programs
  • Differences in interpretation — the first edition left parts of the execution semantics open, so runtimes behaved differently; the second edition narrowed that gap
  • Timing — real-time behaviour depends on the runtime and the network; hard deadlines still call for TSN or a local controller

❓ Frequently asked questions

Does IEC 61499 replace IEC 61131-3?

No, IEC 61499 does not replace IEC 61131-3 but builds on it. IEC 61499 reuses the data types and Structured Text of IEC 61131-3 and adds an event-driven model for distributed systems. Both standards are used side by side.

Is IEC 61499 open source?

IEC 61499 itself is a paid IEC standard, but open-source implementations exist. Eclipse 4diac is the best-known open-source environment for IEC 61499, with an IDE and the FORTE runtime. The UniversalAutomation.org runtime is shared source: members get access in return for an annual membership fee.

What is the current version of IEC 61499?

The current version of IEC 61499-1 is the second edition from November 2012, which replaced the first edition of 2005. Part 2 also received a second edition in 2012 and Part 4 in 2013. The IEC has set a stability date of 2028 for IEC 61499-1.

What is UniversalAutomation.org?

UniversalAutomation.org is an independent not-for-profit association that has managed a shared runtime based on IEC 61499 since late 2021. Its aim is for the same IEC 61499 application to run on hardware from different vendors. Schneider Electric donated the original nxtControl runtime code.

Can IEC 61499 run on a virtual PLC?

Yes, an IEC 61499 runtime can run as software on an industrial PC, an edge server, or in a virtual machine or container. That makes IEC 61499 a natural fit for software-defined automation and virtual PLCs. Hard real-time requirements still call for a deterministic platform.

Is IEC 61499 secure?

IEC 61499 contains no security requirements of its own. The security of an IEC 61499 system depends on the runtime, the communication protocols used and the network architecture. Protecting the management interface and segmenting the network in line with IEC 62443 are therefore essential.


📌 In summary

IEC 61499 describes control software as a network of event-driven function blocks that is designed independently of hardware and then distributed across multiple devices. Eclipse 4diac, EcoStruxure Automation Expert and UniversalAutomation.org are driving adoption, but limited vendor support, a learning curve and management interfaces that are unprotected by default call for a deliberate approach.