Errata exists for this version of the document.
This ObjectType is the base type for PublishedDataSets. It defines the metadata and the configuration version of the DataSets sent as DataSetMessages through DataSetWriters.
The PublishedDataSetType is the base type for configurable DataSets. Derived types like PublishedDataItemsType and PublishedEventsType defines how to collect the DataSet to be published. For PublishedDataItemsType this is a list of monitored Variables. For PublishedEventsType this is an Event selection. The list of monitored Variables or the list of selected EventFields defines the content and metadata of the PublishedDataSetType Object.
If the content of the DataSet is defined by a product specific configuration and the source of the DataSet is not known, the PublishedDataSetType can be used directly to expose the PublishedDataSet in the AddressSpace of the Publisher.
The PublishedDataSetType is formally defined in Table 105.
Table 105 – PublishedDataSetType Definition
Attribute |
Value |
||||
BrowseName |
PublishedDataSetType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of BaseObjectType defined in OPC 10000-5. |
|||||
DataSetToWriter |
Object |
<DataSetWriterName> |
|
DataSetWriterType |
OptionalPlaceholder |
HasProperty |
Variable |
ConfigurationVersion |
ConfigurationVersionDataType |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetMetaData |
DataSetMetaDataType |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetClassId |
Guid |
PropertyType |
Optional |
HasComponent |
Object |
ExtensionFields |
|
ExtensionFieldsType |
Optional |
The PublishedDataSetType ObjectType is a concrete type and can be used directly. It can be used to expose a PublishedDataSet where the data collection is not visible in the AddressSpace.
The Object has a list of DataSetWriters. A DataSetWriter sends DataSetMessages created from DataSets through a Message Oriented Middleware. The link between the PublishedDataSet Object and a DataSetWriter shall be created when an instance of the DataSetWriterType is created. The DataSetWriterType is defined in 9.1.7.2. If a DataSetWriter is created for the PublishedDataSet, it is added to the list using the ReferenceType DataSetToWriter. The DataSetToWriter ReferenceType is defined in 9.1.4.2.5. If a DataSetWriter for the PublishedDataSet is removed from a group, the Reference to this DataSetWriter shall also be removed from this list. The group model is defined in 9.1.6.
The Property ConfigurationVersion is related to configuration of the DataSet produced by the PublishedDataSet Object. The PublishedDataSet parameters affecting the version are defined in the concrete types derived from this base type. The ConfigurationVersionDataType and the rules for setting the version are defined in 6.2.2.1.5.
The Property DataSetMetaData provides the information necessary to decode DataSetMessages on the Subscriber side if the DataSetMessages are not self-describing. The information in this Property is automatically updated if the ConfigurationVersion is changed based on DataSet configuration change. The DataSetMetaDataType is defined in 6.2.2.1.2. The Name field in the DataSetMetaDataType shall match the name of the PublishedDataSetType Object if the DataSetMetaData is not based on a DataSetClass.
The MajorVersion part of the ConfigurationVersion contained in the DataSetMessage must match the ConfigurationVersion of the DataSetMetaData available on the Subscriber side.
The DataSetClassId is the globally unique identifier for a DataSetClass. The optional Property shall be present if the DataSetClassId of the DataSetMetaData is not null. If the DataSetClassId is set, the Publisher shall reject any configuration changes that change the DataSetMetaData.
The ExtensionFields Object allows the configuration of fields with values to be included in the DataSet in case the existing AddressSpace of the Publisher does not provide the necessary information. The extension fields are added as Properties to the ExtensionFields Object. For PublishedDataItemsType base PublishedDataSets, an extension field is included as a Variable in the published DataSet. For PublishedEventsType base PublishedDataSets, an extension field is included into the SelectedFields for the DataSet.
The ExtensionFieldsType is formally defined in Table 106. It allows the configuration of fields with values to be included in the DataSet in case the existing AddressSpace of the Publisher does not provide the necessary information.
Table 106 – ExtensionFieldsType Definition
Attribute |
Value |
||||
BrowseName |
ExtensionFieldsType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of BaseObjectType defined in OPC 10000-5. |
|||||
|
|
|
|
|
|
HasProperty |
Variable |
<ExtensionFieldName> |
BaseDataType |
PropertyType |
OptionalPlaceholder |
HasComponent |
Method |
AddExtensionField |
Defined in 9.1.4.2.3. |
Mandatory |
|
HasComponent |
Method |
RemoveExtensionField |
Defined in 9.1.4.2.4. |
Mandatory |
The ExtensionFieldsType ObjectType is a concrete type and can be used directly.
The configured list of extension fields is exposed through Properties and managed through the Methods AddExtensionField and RemoveExtensionField. An ExtensionField is not automatically included in the DataSet. The ExtensionField must be added to the DataSet after creation.
Metadata that normally appear in message headers can be included to the body by adding extension fields with well-known QualifiedNames. These well-known QualifiedNames are shown in Table 107. The qualifying namespace is the OPC UA namespace.
Table 107 – Well-Known Extension Field Names
Name |
Type |
Description |
PublisherId |
BaseDataType |
The PublisherId from the Connection Object. |
DataSetName |
String |
The Name from the DataSetMetaData. |
DataSetClassId |
Guid |
The DataSetClassId from the DataSetMetaData. |
MajorVersion |
UInt32 |
The MajorVersion from the ConfigurationVersion |
MinorVersion |
UInt32 |
The MinorVersion from the ConfigurationVersion |
DataSetWriterId |
BaseDataType |
The DataSetWriterId from the DataSetWriterTransport Object. |
MessageSequenceNumber |
UInt16 |
The sequence number from the DataSetMessage. |
If a well-known name is used the value placed in the message body is dynamically generated from the current settings. The value set in the AddExtensionField Method is ignored. Subtypes of DataSetWriterTransportType may extend this list.
This Method is used to add a Property to the Object ExtensionFields.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddExtensionField (
[in]QualifiedNameFieldName
[in]BaseDataTypeFieldValue
[out]NodeId FieldId
);
Argument |
Description |
FieldName |
Name of the field to add. |
FieldValue |
The value of the field to add. |
FieldId |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdExists |
A field with the name already exists. |
Bad_InvalidArgument |
The Server is not able to apply the Name. The Name may be too long or may contain invalid characters. |
Bad_UserAccessDenied |
This Method is used to remove a Property from the Object ExtensionFields.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveExtensionField (
[in]NodeId FieldId
);
Argument |
Description |
FieldId |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
A field with the NodeId does not exist. |
Bad_NodeIdInvalid |
The FieldId is not a NodeId of a Property of the ExtensionFieldsType Object. |
Bad_UserAccessDenied |
The DataSetToWriter ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HierarchicalReferences ReferenceType.
The SourceNode of References of this type shall be an Object of ObjectType PublishedDataSetType or an ObjectType that is a subtype of PublishedDataSetType defined in 9.1.4.2.1.
The TargetNode of this ReferenceType shall be an Object of the ObjectType DataSetWriterType defined in 9.1.7.1.
Each DataSetWriter Object shall be the TargetNode of exactly one DataSetToWriter Reference.
Servers shall provide the inverse Reference that relates a DataSetWriter Object back to a PublishedDataSetType Object.
The representation of the DataSetToWriter ReferenceType in the AddressSpace is specified in Table 108.
Table 108 – DataSetToWriter ReferenceType
Attributes |
Value |
||
BrowseName |
DataSetToWriter |
||
InverseName |
WriterToDataSet |
||
Symmetric |
False |
||
IsAbstract |
False |
||
References |
NodeClass |
BrowseName |
Comment |
Subtype of HierarchicalReferences defined in OPC 10000-5. |