Slicing the Pi: device-specific IEC 61499 design
The IEC 61499 Function Block standard describes an architecture to support the development and reuse of software components for distributed and embedded industrial control and automation systems. Often distributed over heterogeneous execution platforms, IEC 61499 applications are highly re-configurable; users can map individual function blocks to run on any available device. However, the standard does not allow differentiating between the capabilities of different devices in a heterogeneous platform. In this paper, we present a framework that facilitates the utilization of device-specific capabilities during the design of function block applications. Device capabilities are wrapped-up in Basic function blocks linking to low-level device drivers, allowing designers to access device features with ease during the design phase. The framework is completely compatible with the IEC 61499 standard, and remains highly flexible. As a case study, we show how function block applications utilizing low-level capabilities of Raspberry Pi devices can be written and deployed using the Holobloc FBDK development environment. This particular setting of using function blocks to program the Raspberry Pi also results in an ideal, low-cost research and teaching platform for distributed computers.