InputData and OutputData can be modelled in various ways. The following clauses show examples of their usage. Figure D.20 illustrates the subtype of FunctionalEntityType that is used in the example. All items listed are mandatory in this subtype, but not all of these items will be shown in the examples to simplify the example figures. The AcmeAnalogueInputModuleType illustrates a hardware module that collects data from external input devices, where this information is made available to the controller. This AcmeAnalogueInputModuleType is external to the FunctionalEntity model; think of it as an existing Information Model. The FunctionalEntity then publishes this data to another controller, HMI, or even other devices as needed.
Figure D.20 – Example FunctionalEntity Type
The following examples illustrate how InputData and OutputData can be joined with DataSets. Consider, for example, an analogue input module with four channels plugged into one of the slots of the rack illustrated in D.2.3. The FunctionalEntity related to this Asset will provide OutputData only. To keep the following samples simple, ConfigurationData (e.g., measurement range and unit) is not shown. The dashed lines in figures in this clause indicate “poor man’s references” instead of an actual Reference. The line will indicate if the poor man’s reference is using a NodeId or a Name.
The first variant, as illustrated in Figure D.21, assumes that the module can only exchange data using a preconfigured DataSet containing all four channels. In this case, a possible Information Model would organize the Variables in OutputData (the top-level folder). The preconfigured PublishedDataSet PDS_AI4 defines the fixed layout for the data exchange (indicated in PublisherCapabilities as one of the PreconfiguredPublishedDataSets). PreconfiguredDataSetOnly set to True indicates that the data contained in this folder can only be exchanged using the preconfigured PublishedDataSet.
Figure D.21 – Sample for analogue input module – pre-configured DataSet only
This has the consequence that a ConnectionEndpoint established on that FunctionalEntity can only use the preconfigured PublishedDataSet for communication, as illustrated in Figure D.22. Conn_A and the PubSub Objects, including DSW_A (referencing the preconfigured PDS_AI4) are in this example created during EstablishConnections. For simplicity, PubSubConnection and WriterGroup are not shown.
Figure D.22 – Fixed layout used by ConnectionEndpoint
The second variant assumes that the module can exchange data using a preconfigured DataSet containing all four channels but also allows data to be exchanged using a customized DataSet (e.g., Channel2 and Channel3 to one controller and Channel1 to another controller).
In this case, a possible Information Model looks like the one illustrated in Figure D.23. However, PreconfiguredDataSetOnly set to False indicates that the data can be exchanged using the preconfigured PublishedDataSet, but in addition using a customized DataSet. A customized PublishedDataSet will be created during the establishment of a connection.
Figure D.23 – Sample for analogue input module – preconfigured and customized DataSet
ConnectionEndpoints established on that FunctionalEntity may use a preconfigured or customized DataSet as illustrated in Figure D.24. Conn_A, Conn_B, DSW_A, DSW_B and PDS_B are created in this example during EstablishConnections. ControllerA, connected through Conn_A, will receive all channels using the preconfigured PublishedDataSet PDS_AI4. ControllerB, connected through Conn_B, will receive Channel2 and Channel3 using the customized PublishedDataSet PDS_B.
Figure D.24 – Preconfigured and customized DataSet used by ConnectionEndpoints
A third variant assumes that the module supports data exchange with customized DataSets only.
In this case, a possible Information Model looks like the one illustrated in Figure D.25. However, the absence of PreconfiguredPublishedDataSets indicates that only customized DataSets are supported.
Figure D.25 – Sample for analogue input module – customized DataSets
Subfolders within the OutputData can be used, for example, to group data. Suppose that our sample module is an 8-channel input where a channel can be Int16 or Float. A possible Information Model is illustrated in Figure D.26.
Figure D.26 – Sample for analogue input module – using groups
Again, as stated in the variants before, the module may choose to support preconfigured DataSets (e.g., one for all Int16 channels and one for all Float channels) and/or allow customized DataSets, depending on the setting of PreconfiguredDataSetOnly. A Connection may, for example, select Channel1 and Channel6. Figure D.27 illustrates this sample.
Figure D.27 – ConnectionEndpoint using grouped data