4DIAC - Framework for Distributed Industrial Automation and Control
Various industrial domains such as manufacturing, power and energy, logistics, building automation. have to deal with changing user demands and requirements. In order to cope with such challenging demands new ways of operating and automating industrial systems and machinery equipment is necessary. A very promising approach is to use distributed control concepts where each system or component gets its own control device, providing secure automated operation of the controlled part and cooperating with other parts in order to perform the overall automation task. Such control approaches have the advantage that they can be adapted and changed more easily keeping the changes mainly localized. Furthermore they feature a better stability in case of system errors or faults (e.g., a disturbance in one device allows others to continue their operation) as well as to provide the possibility of a better graceful degradation.
For turning such industrial automation systems into reality new programming methodologies and tools are necessary. One approach is the IEC 61499 reference model for distributed and reconfigurable automation. It defines a component oriented real-time software architecture for distributed control systems. At the time 4DIAC was started the general benefits of this approach have been shown in several prototypical implementations. However industrial grade environments (commercial or open source) were not available. Over time 4DIAC provided significant input for industrial implementations of IEC 61499.
The 4DIAC project provides an industrial-grade open source infrastructure for distributed Industrial Process Measurement and Control Systems (IPMCS) based on the IEC 61499 standard. This infrastructure includes:
- the Eclipse based engineering tool called 4DIAC-IDE,
- the portable and efficient real-time capable runtime environment called FORTE,
- libraries providing commonly need application functionality (4DIAC-LIB), and
- selected sample applications showing the key features (4DIAC-Systems).
4DIAC in its current form has been started 2007 as open source project fostering the further development of IEC 61499 for its use in distributed IPMCS and further distribute research results from the original contributors. From the beginning it provided everything necessary to program and execute distributed IPMCS.
4DIAC became one of the main sources for IEC 61499-based research and development (see for example the 4DIAC Users' Workshop series). It has been successfully applied in a number of industrial systems, like manufacturing systems, logistics, power and energy applications, robotics, or building automation.
A screenshot of the 4DIAC-IDE is presented in the following figure:
In the last years 4DIAC attracted a small set of developers and form a small but active community. However the overall development process is rather ad-hoc. Eclipse provides a well-defined governance structure and development process. Becoming an Eclipse project 4DIAC would be the next logical step onto maturity, increase its visibility and attract other contributors and companies to an open source environment for distributed IPMCSs.
4DIAC could especially contribute to the existing efforts of the Eclipse Internet of Things Industry Working Group. 4DIAC targets the lower level real-time layers which is currently not directly targeted by any project.
4DIAC is strongly based on the Eclipse platform using several of its technologies (e.g., EMF, GEF, CDT, Xtext). Furthermore existing projects like eTRICE or Eclipse SCADA can benefit from the collaboration as 4DIAC provides infrastructure components both could use or which could be developed in collaboration reducing the effort for all.
- Contributions from several companies and entities
External dependencies in FORTE
The external dependencies of FORTE are open source as well as closed source ones. They can be grouped in two main groups:
Operating systems and hadware platforms
As FORTE provides hardware abstraction allowing to program a vast range of different set of embedded devices it is important for us to support many different operating systems. Currently these are:
- Linux (posix)
- VXWorks on Bachmann M1 PLCs utlizing support libraries provided by the company Bachmann (http://www.bachmann.info/en/home/)
- Net+X (Enhanced ThreadX operating system done by DIGI)
- eCos open source real-time operating system: http://ecos.sourceware.org/ (License is an extended GPL: http://ecos.sourceware.org/license-overview.html)
Further operating systems are in the queue and planed.
FORTE provides a set of modules that can be enabled if required. These are:
- OPClient http://sourceforge.net/projects/opcclient/, LGPL v2
- libmodbus http://libmodbus.org/, LGPL v2.1+
- openPowerlink http://sourceforge.net/projects/openpowerlink/, BSD
- OpenSCADA (eclipseSCADA, http://openscada.org/) SFP protocol
- some Hardware specific modules giving uniform access to hardware specific libraries provided by the vendors in order to use their hardware
A key USP of FORTE is to have this broad range of hardware support.
- Operating systems and hadware platforms
4DIAC plans to finish the initial contribution by the end of Q3 2014 using the 1.5. release.