The IEC61499 architecture represents a component solution for distributed industrial automation systems aiming at portability, reusability interoperability, reconfiguration of distributed applications. The IEC 61499 Standard provides a generic model for distributed systems. This model includes processes and communication networks as an environment for embedded devices, resources and applications.
The interest in developing a common architectural model for the application of software modules dates back to the early 1990, when the International Electrotechnical Commission started a project (IEC TC65) around a concept called ‘function blocks’, similar to the Model Driven Architecture, to be applied in distributed industrial-process measurement and control systems. The effort was oriented to the emancipation from the dominant (and still relevant) automation paradigm, based on the use of programmable logic controllers (PLC).
The first "Publicly Available Specifications" of IEC 61499 came in 2002, feeding a first period of trial implementations, refinements of the documentation and an initial spreading of the idea. Subsequent versions of the IEC Standard specification followed in 2005 and in 2012, solving open issues and eventually paving the way to a common scientific acceptance and industral application.
The standard is published by IEC and is available on their web catalog (also, a local review is available).
Nowadays, the interest and the acceptance of the IEC 61499 standard is broad and lively. Several tools based on the IEC 61499 standards are emerging and are progressively applied in actual modeling, validation and simulation of complex function block networks.
While system and process engineers already applied the idea of function blocks to model software functionality in instrumentation and controllers for a number of years, IEC 61499 provides, for the first time, a solid framework for describing the functionality of co-operating networks of function blocks in a distributed control system.
Moreover, IEC 61499 suggests and describes a new set of development methodologies which impose a radical change to the way control engineering is conceived, involving formal verification methods, communication aspects and execution model, just to name the most relevant.
An IEC 61499 Function Block (FB) can be understood as an abstraction of a system component, which is implemented and controlled by the FB's software. A benefit of using IEC 61499 FBs is that, besides being a modelling language, it is directly executable. Immediate simulation is therefore possible, while model can be seamlessly substituted by the hardware interface to real sensors and actuators.
The IEC 61499 architecture exploits the familiarity of control engineers with the block-diagram way of thinking. The main design artefact, function block (FB), has been extended from the subroutine-like structure in IEC 61131-3, to the process-like abstraction used in the theory of distributed computing systems.
A process represents an independent computational activity with its own set of variables (context) and communication with other processes via messages. The event interface is well suited to modelling of interprocess message-based communication. On the other hand, a function block still may represent just a piece of code executed within another process.
IEC 61499 enables an application-centric design, in which one or more applications, defined by networks of interconnected function blocks, are created for the whole system and subsequently distributed to the available devices. The use of FBs greatly increases the modularity of the system and enables the reusability of software components in the system.
The architecture supports unlimited nesting of composite function block structures, and combination of several diagram types: block-diagrams, state charts, and ladder logic in the same design. The result of the design is an executable specification of a distributed automation system, which includes also models of devices and their network interconnections.
Strong data encapsulation into components helps to ensure portability and reusability, in addition to ensure the absence of hidden dependencies between variables of several FBs.
FBs of IEC 61499 are event-driven, i.e., they remain idle unless an event is sent to one of their event inputs. The event-driven execution is the key mechanism enabling transparent modelling of distributed systems.
A very important part of distributed systems design is related to network communications. By definition, IEC 61499 is compatible with any communication protocol, which is achieved by libraries of the corresponding communication interface function blocks (CIFB). There are two abstract communication patterns suggested in the standard already: CLIENT-SERVER and PUBLISH-SUBSCRIBE, which can be implemented by means of a particular protocol.
By definition, the IEC 61499 system configuration is an executable specification of a distributed automation system, designed to support domain-specific design practices. This is realized through a tool chain which generates executable machine code from the IEC 61499 design artefacts:
Applications compliant to IEC 61499 have to be portable, which means that they can be exchanged between development tools of different vendors. Devices of any vendor have to be configurable by any IEC 61499 compliant software tool.