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.