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.