Glossary · Distributed automation and IEC 61499
Event-driven execution (IEC 61499)
Also known as: IEC 61499 event-driven execution, Event-driven function block execution
German: Ereignisgesteuerte Ausführung
In IEC 61499, event-driven execution is the principle that a function block executes only when an event arrives at one of its event inputs: the event samples the associated data inputs, triggers the block's behavior and may issue output events that trigger further blocks, instead of every block being executed in a fixed scan cycle.
- IEC 61499
- Standards
In one sentence
In IEC 61499, a function block runs only when an event arrives; events, not a scan cycle, drive execution and carry data along.
Example
A light barrier block fires an event only when a box arrives; the counting block, the diverter logic and the HMI update run in response, while the rest of the application stays idle.
How it applies
- Events and data: An event in IEC 61499 is an instantaneous occurrence with no value. Data travel on separate data connections, and the WITH association of an Event input says which data inputs are sampled when that event arrives (see Event-data association). This pairing is what keeps data consistent when blocks run on different devices.
- Chains of events: An application executes as chains: an event from a sensor block triggers a block, whose output event triggers the next. Where a periodic rhythm is needed, an Event function block such as E_CYCLE generates the events; the application then combines event-driven and periodic parts.
- Design: Event-driven execution saves processing time and fits distributed and modular systems, because blocks don't need to know where their neighbors run. It also means that a block without an incoming event never executes: a missing event connection shows up as a function that silently doesn't happen, not as a compiler error. The order of events between blocks depends partly on the runtime (see Execution semantics (IEC 61499)).
- Testing: Tests feed event sequences, not only input values. Include missing events, repeated events and events arriving in a different order.
- Documentation: Describe behavior as "on event X, with data Y, the block does Z and issues event W". Event chain diagrams or sequence diagrams explain an application better than a list of blocks. Document where periodic events come from and at which period.
Event-driven execution vs. cyclic execution (IEC 61131-3)
In IEC 61131-3, a controller runs its programs in a Scan cycle or Cyclic task: read inputs, execute all program code, write outputs, repeat, whether anything has changed or not. The execution order and the response time are fixed by the task configuration, which makes timing easy to analyze but spends processing time on unchanged signals and ties the program to one controller. In IEC 61499, blocks execute only when events arrive, and the event connections define the order, which suits distributed systems but requires the event flow and its timing to be designed explicitly. The two meet in practice: IEC 61499 applications use cyclic event sources for control loops, and IEC 61131-3 controllers offer event tasks for interrupts.