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 define how to collect the DataSet to be published. For PublishedDataItemsType this is a list of monitored Variables used to create cyclic DataSets. For PublishedEventsType this is an Event selection used to create acyclic DataSets. 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 custom PublishedDataSet in the AddressSpace of the Publisher. If the Variable CyclicDataSet is not present, the custom PublishedDataSet shall create cyclic DataSets.
The PublishedDataSetType is formally defined in Table 220.
Table 220 – PublishedDataSetType definition
Attribute |
Value |
||||
BrowseName |
PublishedDataSetType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
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 |
HasProperty |
Variable |
CyclicDataSet |
Boolean |
PropertyType |
Optional |
HasComponent |
Object |
ExtensionFields |
|
ExtensionFieldsType |
Optional |
Conformance Units |
|||||
PubSub Model Base |
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 Property value shall match the ConfigurationVersion in the DataSetMetaData Property. The ConfigurationVersionDataType and the rules for setting the version are defined in 6.2.3.2.6.
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.3.2.3. 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 needs to 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 not null, the Publisher shall reject any configuration changes that change the DataSetMetaData. The Property value shall match the DataSetClassId in the DataSetMetaData Property.
The Property CyclicDataSet provides the information if the DataSets created by the PublishedDataSet are cyclic or acyclic. If the Property is provided by an instance of PublishedDataSetType, the Value shall be true. If the Property is provided by an instance of PublishedEventsType, the Value shall be false.
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 221. 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 221 – ExtensionFieldsType definition
Attribute |
Value |
|||||
BrowseName |
ExtensionFieldsType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
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 |
||
Conformance Units |
||||||
PubSub Model Base |
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 can be added to the DataSet after creation.
Metadata that normally appear in message headers can be included in the body by adding extension fields with well-known QualifiedNames. These well-known QualifiedNames are shown in Table 222. The qualifying namespace is the OPC UA namespace.
Table 222 – 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 |
Table 223 specifies the AddressSpace representation for the AddExtensionField Method.
Table 223 – AddExtensionField Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddExtensionField |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
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 |
Table 224 specifies the AddressSpace representation for the RemoveExtensionField Method.
Table 224 – RemoveExtensionField Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveExtensionField |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
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 225.
Table 225 – DataSetToWriter ReferenceType
Attributes |
Value |
||
BrowseName |
DataSetToWriter |
||
InverseName |
WriterToDataSet |
||
Symmetric |
False |
||
IsAbstract |
False |
||
References |
NodeClass |
BrowseName |
Comment |
Subtype of HierarchicalReferences defined in OPC 10000-5. |
|||
Conformance Units |
|||
PubSub Model Base |