Functionality from different FunctionalEntities (in different AutomationComponents) can be used to construct applications. An application may involve communication between one or more FunctionalEntities. FunctionalEntities can be arranged into hierarchies or any type of organization. The details required in a FunctionalEntity for an application are application-specific, but the base functional model is required to describe the interaction between the FunctionalEntities so that all interactions can be represented in the same manner.

A FunctionalEntity can interact with other FunctionalEntities by exchanging data. This exchange of data may be for control or monitoring purposes. Information related to these interactions is represented in the FunctionalEntity by Connections (see Figure 8).


Figure 8 – Example Connection between FunctionalEntities

The process of establishing a Connection can include identity and compatibility verification, identifying the information to be exchanged, establishing exclusive access (locking) to the information, setting ConfigurationData, configuring the communication, and finally, enabling the communication. An established Connection is represented on a connected FunctionalEntity by the ConnectionEndpoint. For more information, see the definition of the ConnectionEndpointType in 6.6.

The FunctionalEntity can group input data and output data for easier configuration or as the application may require.

A FunctionalEntity exposes ControlGroups to allow the selection between available uses of a FunctionalEntity. The selected use might restrict access to data; it might lock a value from being changed or only to be changed by a specific entity or role. Multiple ControlGroups may reference overlapping data. ControlGroups may be created dynamically or be pre-configured as part of an application. ControlGroups might be nested. For more information, see the definition of the ControlGroupType in 6.5. ControlGroups use a Controls Reference defined in OPC 10000-23 to indicate who owns the ControlGroup.

Transportation of data between FunctionalEntities can be accomplished using any of the existing OPC UA communication models. The FunctionalEntity includes Connection information that reflects the established communication model, represented by ConnectionEndpoints. For more information, see 6.6.