A FunctionalEntity can be of varying degrees of complexity and can represent different granularity and abstraction levels, from primitive functionality to an entire application. For example:
- there are primitive FunctionalEntities that only generate output data like a temperature sensor or only receive input data like a relay;
- more complex FunctionalEntities like a motion axis can receive control data, perform a calculation or action, provide status/feedback data, expose methods for operation and have different operating modes, including closed-loop controls;
- or FunctionalEntities on the process application level representing an entire application, such as a paper machine or a boiler, where the FunctionalEntity has multiple nested SubFunctionalEntities.
Various providers could define FunctionalEntities. This document defines the FunctionalEntityType base type. Various companion standards may provide extensions to this document. Manufacturers or suppliers may provide further extensions to FunctionalEntities. They may group them or structure them into a nested hierarchy. Finally, machine builders or end-users may provide FunctionalEntities for their individual automation solutions (see Figure 6 for examples of possible derivations).
The model is defined using OPC UA Interfaces. An Information Model defined in another standard can add support for FunctionalEntities by including these Interfaces or deriving from the FunctionalEntityType.