A DataSetcan be thought of as a list of name and value pairs representing an Eventor a list of Variable Values.
A DataSetcan be created from an Eventor from a sample of Variable Values. The configuration of this application-data collector is called PublishedDataSet. DataSetfields can be defined to represent any information, for example, they could be internal Variablesin the Publisher, Eventsfrom the Publisheror collected by the Publisher, network data, or data from sub-devices.
DataSetMetaDatadescribed in 5.2.3defines the structure and content of a DataSet.
For publishing, a DataSetwill be encoded into a DataSetMessage. One or more DataSetMessagesare combined to form the payload of a NetworkMessage.
Figure 3illustrates the use of DataSetsfor publishing.
Figure 3– DataSet in the process of publishing
A PublishedDataSetis similar to either an Event MonitoredItemor a list of data MonitoredItemsin the Client Server Subscriptionmodel. Similar to an Event MonitoredItem, a PublishedDataSetcan select a list of Event fields. Similar to data MonitoredItems, the PublishedDataSetcan contain a list of Variables.
A DataSetdoes not define the mechanism to encode, secure and transport it. A DataSetWriterhandles the creation of a DataSetMessagefor a DataSet. The DataSetWritercontains settings for the encoding and transport of a DataSetMessage. Most of these settings depend on the selected Message Oriented Middleware.
The configuration of DataSetsand the way the data is obtained for publishing can be configured using the PubSubconfiguration model defined in clause 8.2or with vendor specific configuration tools.
DataSetscan be individual for a Publisheror they can be derived from a DataSetClass. Such a DataSetClassacts as template declaring the content of a DataSet. The DataSetClassis identified by a globally unique id – the DataSetClassId(see 6.2.2.2).
The DataSetMetaDatais identical for all PublishedDataSetsthat are configured based on this DataSetClass. The DataSetClassIdshall be in the corresponding field of the DataSetMetaData.
When all DataSetMessagesof a NetworkMessageare created from DataSetsthat are instances of the same DataSetClass, the DataSetClassIdof this class can be provided in the NetworkMessageheader.
DataSetMetaDatadescribes the content and semantic of a DataSet. The structure description includes overall DataSetattributes (e.g. name and version) and a set of fields with their name and data type. The order of the fields in the DataSetMetaDatashall match the order of values in the published DataSetMessages.
The DataSetMetaDataTypeis defined in 6.2.2.1.2.
Example description (simplified, in pseudo-language):
Name: “Temperature-Sensor Measurement”
Fields: [1] Name=DeviceName, Type=String
[2] Name=Temperature, Type=Float, Unit=Celsius, Range={1,100}
Subscribersuse the DataSetMetaDatafor decoding the values of a DataSetMessageto a DataSet.Subscribersmay use name and data type for further processing or display of the published data.
Each DataSetMessagealso includes the version of the DataSetMetaDatathat it complies with. This allows Subscribersto verify if they have the corresponding DataSetMetaData. The related ConfigurationVersionDataTypeis defined in 6.2.2.1.5.
DataSetMetaDatamay be specific to a single PublishedDataSet or identical for all PublishedDataSetsthat are configured based on a DataSetClass(see 5.2.2).
There are multiple options for Subscribersto get the initial DataSetMetaData:
- The Subscriberis an OPC UA Clientand is able to get the necessary configuration information from the PubSubconfiguration model (see 9.1.4.2.1) provided by the Publisher, from a configuration server or from a directory server.
- The Subscribersupports the OPC UA configuration Methodsdefined in the PubSubconfiguration model.
- The Subscriberreceives the DataSetMetaDataas NetworkMessagefrom the Publisher. This may require an option for the Subscriberto request this NetworkMessagefrom the Publisher.
- The Subscriberis configured with product specific configuration means.
There are multiple options to exchange the DataSetMetaDatabetween Publisherand Subscriberif the configuration changes.
- The DataSetMetaDatais sent as a NetworkMessagefrom the Publisherto the Subscriberbefore DataSetMessageswith changed content are sent. The used Message Oriented Middlewareshould ensure reliable delivery of the message. The mapping for the Message Oriented Middlewaredefines a way for the Subscriberto request the DataSetMetaData. The Subscribergoes to an error state if it has not received the new DataSetMetaDatathat matches the ConfigurationVersion of the received DataSetMessage.
- The Subscriberis automatically updated via the OPC UA configuration Methodsdefined in the PubSubconfiguration model when the DataSetin the Publisheris updated.
- The Subscriberis an OPC UA Clientand is able to obtain the update from the Publisheror a configuration server via the information exposed by the PubSubconfiguration model.
- The Subscriberis updated with product specific configuration means when the DataSetin thePublisheris changed.