Connections are configured by an engineering tool on behalf of Descriptors and are deployed to a ConnectionManager (see 5.5.2). Independent of the lifetime of a Connection, another engineering tool may update a FunctionalEntity, including its preconfigured DataSets. In addition, the Descriptor may describe a different version of the FunctionalEntity to be connected at runtime. This may result in misinterpretation of the exchanged data.
To prevent this error scenario, PubSub provides the DataSetMetaData. DataSetMetaData describes the content and semantics of a DataSet. In addition, the DataSetMetaData provides the details defining the contract between Publisher and Subscriber, including how to encode and decode the DataSetMessage. Thus, Subscribers must have knowledge about the DataSetMetaData of the PublishedDataSet. For the concepts of the DataSetMetaData and its definition, see OPC 10000-14.
Any change to a PublishedDataSet regarding its content but also its semantics (e.g., engineering units) would generate changes to its DataSetMetaData, indicated by a change in its ConfigurationVersion (see OPC 10000-14). Depending on the chosen UADP header layout, the ConfigurationVersion of an individual Publisher or a GroupVersion combining the ConfigurationVersions of all Publishers belonging to a WriterGroup is transmitted with the NetworkMessage. Any mismatch between the transmitted version and the one configured at the Subscriber will cause the Subscriber to go into Error. To resolve the Error, the Subscriber needs an update of the DataSetMetaData. OPC 10000-14 offers multiple manners for accomplishing this.