Industrial IoT solutions typically require a mix of heterogeneous IoT devices. These devices feature different processors, different operating systems, and different means to interface sensors and actuators. They require different tool chains to program them. Setting up the tool chains and getting them to work often requires high effort. Furthermore different communication and IoT protocols with different payload formats need to be utilized. This all results in a very high development effort for industrial IoT solutions with very little re-use between projects. And with the next project a new industrial IoT device may come along.
The aim of the Eclipse 4diac™ project is to help you getting this hardware zoo under control and increase the reuse across projects and devices. For that Eclipse 4diac provides a runtime environment abstracting from the specific control hardware and an engineering tool for modeling industrial control solutions utilizing the modeling language defined in IEC 61499 standard. IEC 61499 extends IEC 61131-1 by improving the encapsulation of software components for increased re-usability, providing a vendor independent format, and simplifying support for controller to controller communication. Its distribution functionality and the inherent support for dynamic reconfiguration provide the required infrastructure for Industrie 4.0 and industrial IoT applications.
In this talk we show how we designed the Eclipse 4diac runtime environment to keep it highly portable and extensible for new communication protocols and functionalities. With the 4diac-ide we model a control application independent of the specific industrial IoT hardware and show how to deploy, run, and test your solution on industrial IoT devices. To put this in a more industrial setting we will bring along several different Industrial IoT devices with different operating systems, connect them to a 3d-printed model of a production plant, and show that each of them can execute the same control application model without the need of changing anything in your control application.