PubSubdefines different configuration parameters for the various PubSubcomponents. They define the behaviour of Publisherand Subscriber. The parameters are grouped by component and are partitioned into ‘common’, ’message mapping’, and ‘transport protocol mapping’.

The common parameters are defined in 6.2. The parameters for the different message mappings are defined in 6.3. The parameters for the different transport protocol mappings are defined in 6.4.

The application of communication parameters for concrete message and transport protocol mappings is defined in Clause 7.

Configuration of these parameters can be performed through the OPC UA Information Modelfor PubSubconfiguration defined in Clause 9or through vendor-specific mechanisms. The parameter groupings in this clause define the parameters and also define Structuresused to represent the parameters of the groupings. These Structuresare used in the PubSubconfiguration model described in Clause 9but they can also be used for offline configuration or vendor-specific configuration mechanisms.

Figure 19depicts the different components and their relation to each other. The WriterGroup, DataSetWriterand PublishedDataSetcomponents define the data acquisition for the DataSets, the message generation and the sending on the Publisherside. These parameters need to be known on the Subscriberside to configure DataSetReadersand to filter and process DataSetMessages.

image022.png

Figure 19– PubSub component overview

Figure 19shows the following components:

The different PubSub mapping specific parameter groupings are shown in Figure 20.

image023.png

Figure 20– PubSub mapping specific parameters overview

Transport protocol mapping specific parameters may be defined for the PubSubConnection, the WriterGroupor the DataSetWriter.

Message mapping specific parameters are defined for the NetworkMessageson the WriterGroupand for the DataSetMessageson the DataSetWriter.

The PubSubStateis used to expose and control the operation of a PubSubcomponent. It is an enumeration of the possible states. The enumeration values are described in Table 1.

Table 1– PubSubState values

Name

Value

Description

Disabled

0

The PubSub component is configured but currently disabled.

Paused

1

The PubSub component is enabled but currently paused by a parent component. The parent component is either Disabledor Paused.

Operational

2

The PubSub component is operational.

Error

3

The PubSub component is in an error state.

PreOperational

4

The PubSubcomponent is enabled but currently in the process to execute the steps necessary to enter the Operationalstate.

Figure 21depicts the PubSubcomponents that have a PubSubstate and their parent-child relationship. State changes of children are based on changes of the parent state. The root of the hierarchy is the PublishSubscribecomponent.

image024.png

Figure 21– PubSub component state dependencies

Figure 22describes the formal state machine with the possible transitions.

image025.png

Figure 22– PubSubState state machine

Table 2formally defines the transitions of the state machine.

Table 2– PubSubState state machine

Source State

Target State

Trigger Description

Disabled

Paused

The component was successfully enabled but the parent component is in the state Disabled or Paused.

Disabled

PreOperational

The component was successfully enabled.

Paused

Disabled

The component was successfully disabled.

Paused

PreOperational

The state of the parent component changed to Operational.

PreOperational

Operational

The component completed the steps necessary to enter the Operationalstate. These steps include setup of network communication and security keys.

If the PubSub component is a DataSetReader, the state shall change to Operationalafter the first key frame or event DataSetMessagewas received.

PreOperational

Disabled

The component was successfully disabled.

PreOperational

Paused

The state of the parent component changed to Disabledor Paused.

PreOperational

Error

There is a pending error situation for the related PubSubcomponent.

Operational

Disabled

The component was successfully disabled.

Operational

Paused

The state of the parent component changed to Disabledor Paused.

Operational

Error

There is a pending error situation for the related PubSubcomponent.

Error

Disabled

The component was successfully disabled.

Error

Paused

The state of the parent component changed to Disabledor Paused.

Error

Operational

The error situation was resolved for the related PubSubcomponent.

Error

PreOperational

The error situation was resolved for the related PubSubcomponent.

The PubSubStaterepresentation in the AddressSpaceis defined in Table 3.

Table 3– PubSubState definition

Attribute

Value

BrowseName

PubSubState

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of Enumeration defined in OPC 10000-5

HasProperty

Variable

EnumStrings

LocalizedText []

PropertyType

Conformance Units

PubSub Model Base

The PubSubcomponents have configuration property lists as KeyValuePairarrays. These optional configuration properties extend the configuration parameters defined for the different PubSubcomponents.

The configuration properties are mainly used as protocol or product specific parameters influencing the behaviour of the PubSub application. These properties may contain information that should not be visible outside the configuration tools and PubSub applications. Therefore the properties shall not be included in the PubSubConnectionDataType, WriterGroupDataTypeand DataSetWriterDataTypewhen sent in discovery messages.

The configuration are defined in different sections in the scope where they are used. The properties that can be applied to all PubSub components are defined in Table 4.

The NamespaceIndexof the QualifiedNamein the KeyValuePairfor properties defined in this document shall be 0. The Nameof the QualifiedNameis the property name from Table 4. The DataTypeof the Valuein the KeyValuePairshall be the DataTypedefined in Table 4.

Table 4formally defines the standard PubSubconfiguration.

Table 4– Standard PubSub configuration properties

Property Name

DataType

Description

NotPersisted

Boolean

Indicates if the component configuration is persisted.

If this property is not present the default value is false and the component configuration is persisted.

A PublishedDataSetdefines the content of a DataSetMessageand the configuration of the information source for a DataSet. See 5.2for the introduction to DataSets, 5.3for the introduction to DataSetMessagesand 5.4.1.2for an introduction to the different source options and the parameters for sending of DataSetMessages.

The content of a DataSetMessageis defined by the DataSetMetaData.This information is required for interoperability between Publisherand Subscriber. See 6.2.3.2.

The information source is only necessary for the configuration of the Publisher. The standard configuration options are published data items for cyclic DataSetsas defined in 6.2.3.7and published events for acyclic DataSetsas defined in 6.2.3.8. OPC UA Applicationscan provide PublishedDataSetswhere the information source is application specific. The custom PublishedDataSetsource DataTypedefined in 6.2.3.9indicates if the DataSetis cyclic or acyclic. Cyclic DataSetsare sent as key frame or delta frame DataSetMessages. Acyclic DataSetsare sent as event DataSetMessages.

DataSetMetaDatadescribe the content and semantic of a DataSet. The order of the fields in the DataSetMetaDatashall match the order of DataSetfields when they are included in the published DataSetMessages. The DataSetMetaDataTypeis defined in 6.2.3.2.2.

This Structure DataTypeis a subtype of DataTypeSchemaHeaderand is used to provide the metadata for a DataSet. The DataSetMetaDataTypeis formally defined in Table 5.

The DataTypeSchemaHeaderprovides OPC UA DataTypedefinitions used in the DataSetMetaData. The DataTypeSchemaHeaderis defined in OPC 10000-5.

Table 5– DataSetMetaDataType structure

Name

Type

Description

DataSetMetaDataType

Structure

Name

String

Name of the DataSet.

Description

LocalizedText

Description of the DataSet.

The default value is a null or empty LocalizedText.

Fields

FieldMetaData[]

The metadata for the fields in the DataSet.

The FieldMetaData DataType is defined in 6.2.3.2.3.

DataSetClassId

Guid

This field provides the globally unique identifier of the class of DataSetif the DataSetis based on a DataSetClass. In this case, this field shall match the DataSetClassIdof the concrete DataSetconfiguration.

If the DataSetsare not created from a class, this field is null.

ConfigurationVersion

Configuration‌VersionDataType

The configuration version for the current configuration of the DataSet.

Its representation in the AddressSpace is defined in Table 6.

Table 6– DataSetMetaDataType definition

Attributes

Value

BrowseName

DataSetMetaDataType

IsAbstract

False

Subtype of DataTypeSchemaHeader defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

This Structure DataTypeis used to provide the metadata for a field in a DataSet. The FieldMetaDatais formally defined in Table 7.

Table 7– FieldMetaData structure

Name

Type

Description

FieldMetaData

Structure

Name

String

Name of the field.

The name shall be unique in the DataSet.

Description

LocalizedText

Description of the field.

The default value shall be a null or emptyLocalizedText.

FieldFlags

DataSetFieldFlags

Flags for the field.

BuiltInType

Byte

The built-in data type of the field. The possible built-in type values are defined in OPC 10000-6.

All data types are transferred in DataSetMessagesas one of the built-in data types. In most cases the identifier of the DataType NodeIdmatches the built-in type. The following special cases need to be handled in addition:

(1) Abstract types always have the built-in type Variantsince they can result in different concrete types in a DataSetMessage. The dataTypefield may provide additional restrictions e.g. if the abstract type is Number. Abstract types shall not be used if the field is represented as RawDataset by the DataSetFieldContentMaskdefined in 6.2.4.2.

(2) Enumeration DataTypesare encoded as Int32. The Enumerationstrings are defined through a DataTypereferenced through the dataTypefield.

(3) Structureand Union DataTypesare encoded as ExtensionObject. The encoding rules are defined through a DataTypereferenced through the dataTypefield.

(4) DataTypesderived from built-in types have the BuiltInTypeof the corresponding base DataType. The concrete subtype is defined through the dataTypefield.

(5) OptionSet DataTypesare either encoded as one of the concrete UInteger DataTypesor as an instance of an OptionSetTypein an ExtensionObject.

DataType

NodeId

The NodeIdof the DataTypeof this field.

If the DataTypeis an Enumerationor an OptionSet, the semantic of the Enumeration DataTypeis provided through the enumDataTypesfield of the DataSetMetaDatabase type DataTypeSchemaHeader.

If the DataTypeis a Structureor Union, the encoding and decoding description of the Structure DataTypeis provided through the structureDataTypesfield of the DataSetMetaDatabase type DataTypeSchemaHeader.

ValueRank

Int32

Indicates whether the dataTypeis an array and how many dimensions the array has.

It may have the following values:

n > 1: the dataTypeis an array with the specified number of dimensions.

OneDimension (1): The dataTypeis an array with one dimension.

OneOrMoreDimensions (0): The dataTypeis an array with one or more dimensions.

Scalar (−1): The dataTypeis not an array.

Any (−2): The dataTypecan be a scalar or an array with any number of dimensions.

ScalarOrOneDimension (−3): The dataTypecan be a scalar or a one dimensional array.

NOTE All DataTypesare considered to be scalar, even if they have array-like semantics like ByteStringand String.

Only a concrete valueRank with values n=-1 or n>0 shall be used if the field is represented as RawDataset by the DataSetFieldContentMaskdefined in 6.2.4.2.

ArrayDimensions

UInt32[]

This field specifies the maximum supported length of each dimension. If the maximum is unknown the value shall be 0.

The number of elements shall be equal to the value of the valueRank field. This field shall be null or empty if valueRank≤ 0.

The maximum number of elements of an array transferred on the wire is 2.147.483.647 (max Int32). It is the total number of elements in all dimensions based on the UA Binary encoding rules for arrays.

MaxStringLength

UInt32

If the dataTypefield is a String, LocalizedTextor ByteStringthen this field specifies the maximum supported length. If the maximum is unknown the value shall be 0.

If the dataType field is not a String, LocalizedTextor ByteStringthe value shall be 0.

If the valueRankis greater than 0 this field applies to each element of the array.

DataSetFieldId

Guid

The unique ID for the field in the DataSet. The ID is generated when the field is added to the list. A change of the position of the field in the list shall not change the ID.

Properties

KeyValuePair[]

List of Propertyvalues providing additional semantic for the field.

If at least one Propertyvalue changes, the MajorVersionof the ConfigurationVersionshall be updated.

The Propertyin the FieldMetaDatashall correctly describe the Field Valuein the DataSetMessages. For example if the Propertyis EngineeringUnits, the unit of the Field Valueshall match the unit of the FieldMetaData.

The KeyValuePairDataType is defined in OPC 10000-5. For this field the key in the KeyValuePairstructure is the BrowseNameof the Propertyand the value in the KeyValuePairstructure is the Valueof the Property.

Its representation in the AddressSpace is defined in Table 8.

Table 8– FieldMetaData definition

Attributes

Value

BrowseName

FieldMetaData

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

This DataTypedefines flags for DataSet fields.

The DataSetFieldFlagsis formally defined in Table 9.

Table 9– DataSetFieldFlags Values

Value

Bit No.

Description

PromotedField

0

The flag indicates if the field is promoted to the NetworkMessagesor transport protocol header.

Setting this flag increases the size of the NetworkMessagessince information from the DataSetMessagebody is also promoted to the header.

Depending on the used security, the header including the field may be unencrypted.

Promoted fields are always included in the header even if the DataSetMessagepayload is a delta frame and the DataSetfield is not included in the delta frame. In this case the last sent value is sent in the header.

The order of the fields in the DataSetMetaDatapromoted to the header shall match the order of the fields in the header unless the header includes field names.

The DataSetFieldFlagsrepresentation in the AddressSpaceis defined in Table 10.

Table 10– DataSetFieldFlags definition

Attribute

Value

BrowseName

DataSetFieldFlags

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of UInt16 defined in OPC 10000-5

HasProperty

Variable

OptionSetValues

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters Discovery

This Structure DataTypeis used to indicate configuration changes in the information published for a DataSet. The ConfigurationVersionDataTypeis formally defined in Table 11.

Table 11– ConfigurationVersionDataType structure

Name

Type

Description

ConfigurationVersionDataType

Structure

MajorVersion

VersionTime

The majorVersionreflects the time of the last major change of the DataSetcontent. The VersionTime DataTypeis defined in OPC 10000-4.

To assure interoperability, the Subscribershall use DataSetMetaDatafor decoding with a majorVersionthat matches the majorVersionin DataSetMessagessent by the Publisher.

Removing fields from the DataSetcontent, reordering fields, adding fields in between other fields or a DataType change in fields shall result in an update of the majorVersion.

If at least one Propertyvalue of a DataSetMetaDatafield changes, the majorVersionshall be updated.

There can be situations where older configurations of a Publisherare loaded and changed with product-specific configuration tools. In this case the majorVersionshall be updated if the configuration tool is not able to verify if the change only extends the configuration and does not change the existing content.

Additional criteria for changing majorVersionor minorVersionare defined in this document.

MinorVersion

VersionTime

The minorVersionreflects the time of the last change.

Only the minorVersionshall be updated if fields are added at the end of the DataSetcontent.

If the majorVersionis updated, the minorVersionis updated to the same value as majorVersion.

Its representation in the AddressSpace is defined in Table 12.

Table 12– ConfigurationVersionDataType definition

Attributes

Value

BrowseName

ConfigurationVersionDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

DataSetMetaDatamay be specific to a single Publisherand a single selection of information or universal, e.g. defined by a standards organization or by a plant operator as a DataSetClass. DataSetsthat conform to such a DataSetClassare identified with a DataSetClassId.

The DataSetClassIdis the globally unique identifier (Guid) of a DataSetClass. It is included in the DataSetMetaData. The NetworkMessageContentMaskcontrols the availability of the DataSetClassIdin the NetworkMessage.

The ExtensionFieldsparameterallows the configuration of fields with values to be included in the DataSetwhen the existing AddressSpaceof the Publisherdoes not provide the necessary information. The ExtensionFieldsare represented as an array of KeyValuePair Structures.

This Structure DataTyperepresents the PublishedDataSetparameters. The PublishedDataSetDataTypeis formally defined in Table 13.

Table 13– PublishedDataSetDataType structure

Name

Type

Description

AllowSubtypes

PublishedDataSetDataType

Structure

Name

String

Name of the PublishedDataSet. It is recommended to use a human readable name.

The name of the PublishedDataSetshall be unique in the Publisher.

DataSetFolder

String[]

Optional path of the DataSetfolder used to group PublishedDataSetswhere each entry in the Stringarray represents one level in a DataSetfolder hierarchy.

If no grouping is needed the parameter is a null or empty Stringarray.

DataSetMetaData

DataSetMetaDataType

Defined in 6.2.3.2.

ExtensionFields

KeyValuePair[]

Defined in 6.2.3.4.

DataSetSource

PublishedDataSetSourceDataType

Defined in 6.2.3.6. If the parameter is null, the source creates cyclic DataSets. This is equal to a PublishedDataSetCustomSourceDataTypewith cyclicDataSetset to true.

True

Its representation in the AddressSpace is defined in Table 14.

Table 14– PublishedDataSetDataType definition

Attributes

Value

BrowseName

PublishedDataSetDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters PublishedDataSet

The PublishedDataSetSourceDataType Structureis an abstract base type without fields for the definition of the PublishedDataSetsource. Its representation in the AddressSpaceis defined in Table 15.

Table 15– PublishedDataSetSourceDataType definition

Attributes

Value

BrowseName

PublishedDataSetSourceDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters PublishedDataSet

The parameterPublishedDatadefines the content of a DataSetcreated from Variable Valuesand therefore the content of the DataSetMessagesent by aDataSetWriter. The sources of the DataSet fields are defined through an array of PublishedVariableDataType.

The index into the array has an important role for Subscribersand for configuration tools. It is used as a handle to reference the Valuein DataSetMessagesreceived by Subscribers. The index may change after configuration changes. Changes are indicated by the ConfigurationVersionof the DataSetand applications working with the index shall always check the ConfigurationVersionbefore using the index.

The length of the PublishedDataarray shall match the length of the fields array in the corresponding DataSetMetaData.

If an entry of the PublishedDatareferences one of the ExtensionFields, the substituteValueshall contain the QualifiedNameof the ExtensionFieldsentry. All other fields of this PublishedVariableDataTypearray element shall be null or empty.

The DataType PublishedVariableDataTyperepresents the configuration information for one Variable. The PublishedVariableDataTypeis formally defined in Table 16.

Table 16– PublishedVariableDataType structure

Name

Type

Description

PublishedVariableDataType

Structure

PublishedVariable

NodeId

The NodeIdof the published Variable.

Some transport protocols require knowledge on the message receiver side about the DataType, ValueRank and ArrayDimensions to be able to decode the message content. This information is provided through the DataSetMetaDataprovided for the DataSet.

AttributeId

IntegerId

Id of the Attributeto publish e.g. the Value Attribute. This shall be a valid Attributeid.

The Attributesare defined in OPC 10000-3. The IntegerId DataType is defined in OPC 10000-4. The IntegerIdsfor the Attributesare defined in OPC 10000-6.

SamplingIntervalHint

Duration

A recommended rate of acquiring new values for change or deadband evaluation. A Publishershould use this value as hint for setting the internal sampling rate.

The value 0 indicates that the Servershould use the fastest practical rate.

The value -1 indicates that the default sampling interval defined by the PublishingIntervalof the WriterGroup is requested. Any negative number is interpreted as -1.

DeadbandType

UInt32

A value that defines the Deadbandtype and behaviour.

Value Description

None No Deadbandcalculation should be applied.

Absolute AbsoluteDeadband (This type is specified in OPC 10000-4)

Percent PercentDeadband (This type is specified in OPC 10000-8).

DeadbandValue

Double

The deadband value for the corresponding DeadbandType. The meaning of the value depends on DeadbandType.

IndexRange

NumericRange

This parameter is used to identify a single element of an array, or a single range of indexes for arrays. The NumericRangetype and the logic for IndexRangeare defined in OPC 10000-4.

SubstituteValue

BaseDataType

The value that is included in the DataSetif the StatusCodeof the DataValueis Bad. In this case the StatusCodeis set to

Uncertain_SubstituteValue.

This Value shall match the DataTypeof the PublishedVariablesince DataSetWritersmay depend on a valid Valuewith the right DataTypethat matches the ConfigurationVersion.

If the SubstituteValueis Null, the StatusCodeof the DataValueis processed.

The handling of the SubstituteValueis defined in 6.2.11.

MetaDataProperties

QualifiedName [ ]

This parameter specifies an array of Propertiesto be included in the FieldMetaDatacreated for this Variable.

It shall be used to populate the propertieselement of the resulting field in the DataSetMetaData.

Its representation in the AddressSpace is defined in Table 17.

Table 17– PublishedVariableDataType definition

Attributes

Value

BrowseName

PublishedVariableDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters PublishedDataSet

This Structure DataTypeis used to represent PublishedDataItemsspecific parameters. It is a subtype of the PublishedDataSetSourceDataType defined in 6.2.3.6.

The PublishedDataItemsDataTypeis formally defined in Table 18.

Table 18– PublishedDataItemsDataType structure

Name

Type

Description

PublishedDataItemsDataType

Structure

Subtype of PublishedDataSetSourceDataType defined in 6.2.3.6.

PublishedData

PublishedVariableDataType[]

Defined in 6.2.3.7.1.

Its representation in the AddressSpace is defined in Table 19.

Table 19– PublishedDataItemsDataType definition

Attributes

Value

BrowseName

PublishedDataItemsDataType

IsAbstract

False

Subtype of PublishedDataSetSourceDataType defined in 6.2.3.6.

Conformance Units

PubSub Parameters PublishedDataSet

The parameter EventNotifierdefines the NodeIdof the Objectin the event notifier tree of the OPC UA Serverfrom which Eventsare collected.

The parameter SelectedFieldsdefines the selection of Eventfields contained in the DataSetgenerated for an Eventand sent through the DataSetWriter. The SimpleAttributeOperand DataTypeis defined in OPC 10000-4. The DataTypeof the selected Eventfield in the EventTypedefines the DataTypeof the DataSetfield. Eventfields can be null or the field value can be a StatusCode. The encoding of EventbasedDataSetMessagesshall be able to handle these cases. ExtensionFieldsdefined for the instance of the PublishedEventsTypecan be included in the SelectedFieldsby specifying the PublishedEventsType NodeIdas typeId in the SimpleAttributeOperandand the BrowseNameof the extension field in the browsePathof the SimpleAttributeOperand.

The index into the list of entries in the SelectedFieldshas an important role for Subscribers. It is used as handle to reference the Eventfield in DataSetMessagesreceived by Subscribers. The index may change after configuration changes. Changes are indicated by the ConfigurationVersionand applications working with the index shall always check the ConfigurationVersionbefore using the index. If a change of the SelectedFieldsadds additional fields, the MinorVersionof the ConfigurationVersionshall be updated. If a change of the SelectedFieldsremoves fields, the MajorVersionof the ConfigurationVersionshall be updated. The ConfigurationVersionDataTypeand the rules for setting the version are defined in 6.2.3.2.5.

The parameter Filterdefines the filter applied to the Events. It allows the reduction of the DataSetsgenerated from Eventsthrough a filter. The ContentFilter DataTypeis defined in OPC 10000-4.

This Structure DataTypeis used to represent PublishedEventsspecific parameters. It is a subtype of the PublishedDataSetSourceDataType defined in 6.2.3.6.

The PublishedEventsDataTypeis formally defined in Table 20.

Table 20– PublishedEventsDataType structure

Name

Type

Description

PublishedEventsDataType

Structure

Subtype of PublishedDataSetSourceDataType defined in 6.2.3.6.

EventNotifier

NodeId

Defined in 6.2.3.8.1.

SelectedFields

SimpleAttributeOperand[]

Defined in 6.2.3.8.2.

Filter

ContentFilter

Defined in 6.2.3.8.3.

Its representation in the AddressSpace is defined in Table 21.

Table 21– PublishedEventsDataType definition

Attributes

Value

BrowseName

PublishedEventsDataType

IsAbstract

False

Subtype of PublishedDataSetSourceDataType defined in 6.2.3.6.

Conformance Units

PubSub Parameters PublishedDataSet Events

The CyclicDataSetwith DataType Booleandefines the type of DataSetMessagescreated by the PublishedDataSet.

If CyclicDataSetis false, event DataSetMessagesare sent acyclicly and a related DataSetWritershall use a KeyFrameCountof 0.

If CyclicDataSetis true, key frame or delta frame DataSetMessagesare sent and a related DataSetWritershall use a KeyFrameCountthat is greater than or equal to 1.

This Structure DataTypeis used to represent custom PublishedDataSet source specific parameters. It is a subtype of the PublishedDataSetSourceDataType defined in 6.2.3.6.

The DataTypecan be used directly if no further information is exposed for the source. OPC UA Applicationsshall use DataTypesderived fromPublishedDataSetSourceDataTypeif they want to provide custom information about the source e.g. product specific configuration options.

The PublishedDataSetCustomSourceDataTypeis formally defined in Table 22.

Table 22– PublishedDataSetCustomSourceDataType structure

Name

Type

Description

PublishedDataSetCustomSourceDataType

Structure

Subtype of PublishedDataSetSourceDataType defined in 6.2.3.6.

CyclicDataSet

Boolean

Defined in 6.2.3.9.1.

Its representation in the AddressSpace is defined in Table 23.

Table 23– PublishedDataSetCustomSourceDataType definition

Attributes

Value

BrowseName

PublishedDataSetCustomSourceDataType

IsAbstract

False

Subtype of PublishedDataSetSourceDataType defined in 6.2.3.6.

Conformance Units

PubSub Parameters PublishedDataSet Custom

The DataSetWriterIdwith DataType UInt16defines the unique ID of the DataSetWriterfor a PublishedDataSet. It is used to select DataSetMessagesfor aPublishedDataSeton the Subscriberside.

It shall be unique across all DataSetWritersfor a PublisherId.

All values, except for 0, are valid DataSetWriterIds. The value 0 is defined as null value.

The DataSetWriterIdshall be within the range 0x0001 - 0x7FFF for external assignment by configuration tools, and 0x8000 - 0xFFFF for internal assignment like through the Method CloseAndUpdateof thePubSubConfigurationType.

A DataSet field consists of a value and related metadata. In most cases the value comes with status and timestamp information.

This DataTypedefines flags to include DataSetfield related information like status and timestamp in addition to the value in the DataSetMessage. The parameter is ignored for heartbeat messages.

The DataSetFieldContentMaskis formally defined in Table 24.

The handling of bad status for different field representations is defined in Figure 23and Table 26.

Table 24– DataSetFieldContentMask Values

Value

Bit No.

Description

DataSetfields can be represented as RawData, Variant or DataValue as described in 5.3.2.

If none of the flags are set, the fields are represented as Variant.

If the RawDataflag is set, the fields are represented as RawDataand all other bits are ignored.

If one of the bits 0 to 4 is set, the fields are represented as DataValue.

StatusCode

0

The DataValuestructure field StatusCodeis included in the DataSetMessages.

If this flag is set, the fields are represented as DataValue.

SourceTimestamp

1

The DataValuestructure field SourceTimestampis included in the DataSetMessages.

If this flag is set, the fields are represented as DataValue.

ServerTimestamp

2

The DataValuestructure field ServerTimestampis included in the DataSetMessages.

If this flag is set, the fields are represented as DataValue.

SourcePicoSeconds

3

The DataValuestructure field SourcePicoSecondsis included in the DataSetMessages.

If this flag is set, the fields are represented as DataValue. This flag is ignored if the SourceTimestampflag is not set.

ServerPicoSeconds

4

The DataValuestructure field ServerPicoSecondsis included in the DataSetMessages.

If this flag is set, the fields are represented as DataValue. This flag is ignored if the ServerTimestampflag is not set.

RawData

5

If this flag is set, the fields of the DataSetare encoded without additional information like timestamp, status or DataTypeinformation. The details of the representation are defined for the message mappings.

All other field related flags shall be ignored if this flag is set.

The DataSetFieldContentMaskrepresentation in the AddressSpaceis defined in Table 25.

Table 25– DataSetFieldContentMask definition

Attribute

Value

BrowseName

DataSetFieldContentMask

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of UInt32 defined in OPC 10000-5

HasProperty

Variable

OptionSetValues

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters Discovery

The DataSetFieldContentMaskdefines different options that influence the information flow from Publisherto Subscriberin the case of a Bad Value Status or other error situations. Figure 23depicts the parameters and the information flow from DataSetfield to DataSetMessagecreation on the Publisherside and the decoded DataSet field on the Subscriber side. The DataSetFieldContentMask controls the representation of the DataSet fields in a DataSetMessage.

image026.png

Figure 23– PubSub information flow dependency to field representation

The representation of the DataSetfields in a DataSetMessageon the Publisherside and the decoding back to the DataSetfields on the Subscriberside is defined in Table 26. The representation on the Publisherside depends on the field representation defined in the DataSetFieldContentMask.

Table 26– DataSetMessage field representation options

DataSet Publisher

Field

DataSetMessage

DataSet Subscriber

Value

Status(a)

Value

Value Status(a)

Header Status

Value

Status(a)

Value 1

Good_*

Variant

Value 1

N/A

Good

Value 1

Good

Value 1

Uncertain_*

Value 1

Uncertain_* (b)

Good

Value 1 (b)

Uncertain_* (b)

Null

Bad_*

Bad_* (c)

Good

Null

Bad_* (c)

Value 1

Good_*

DataValue

Value 1

Good_*

Good

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Good

Value 1

Uncertain_*

Null

Bad_*

Null

Bad_*

Good

Null

Bad_*

Value 1

Good_*

RawData

Value 1

N/A

Good

Value 1

Good

Value 1

Uncertain_*

Value 1(d)

Uncertain (d)

Value 1

Uncertain

Null

Bad_*

Default value for DataType (e)

Uncertain_ SubNormal (e)

Default value for DataType

Uncertain_ SubNormal

All fields Bad_*

Default value for DataType (e)

Bad (e)

Null

Bad

The header status is set to a bad code in a fatal error situation.

Bad_*

Null

Bad_*

(a)If no specific StatusCodeis used, the grouping into severity Good, Uncertainor Badis used. In this case, the resulting Statusmatches the input Status.

(b)If the status is uncertain in variant encoding, the value and the status are encoded as DataValue.

(c)A bad status is transferred instead of a value for the variant encoding.

(d)If the status for one or more fields is uncertain in raw filed encoding, the header status shall be set to Uncertain.

(e)If the worst status for some fields is bad, the header status shall be set to Uncertain_SubNormal.

If the status for all fields is bad, the header status shall be set to Bad.The value in message is set to the default value for the DataType.

The KeyFrameCountwith DataType UInt32is the multiplier of the PublishingIntervalthat defines the maximum number of times the PublishingIntervalexpires before a key frame message with values for all published Variablesis sent. The delta frame DataSetMessagescontains just the changed values. If no changes exist, the delta frame DataSetMessageshall not be sent. If the KeyFrameCountis set to 1, every message contains a key frame.

For PublishedDataSetsthat provide cyclic updates of the DataSet, the value shall be greater than or equal to 1. PublishedDataItemsor custom sources with CyclicDataSetset to true provide cyclic updates.

For non-cyclic PublishedDataSetsthat provide acyclic event based DataSets, the value shall be 0.PublishedEventsor custom sources with CyclicDataSetset to false provide acyclic updates.

For a heartbeat DataSetMessage, the value shall be 1.

The DataSetWriterPropertiesparameter is an array of DataType KeyValuePairthat specifies additional properties for the configured DataSetWriter. The KeyValuePair DataTypeis defined in OPC 10000-5and consists of a QualifiedNameand a value of BaseDataType.

The mapping of the name and value to concrete functionality may be defined by transport protocol mappings, future versions of this document or vendor-specific extensions.

This Structure DataTypeis used to represent the DataSetWriterparameters. The DataSetWriterDataTypeis formally defined in Table 27.

Table 27– DataSetWriterDataType structure

Name

Type

Description

Allow Subtypes

DataSetWriterDataType

Structure

Name

String

The name of the DataSetWriter. The name shall be unique across the WriterGroup.

It is recommended to use a human readable name.

Enabled

Boolean

The enabled state of the DataSetWriter.

DataSetWriterId

UInt16

Defined in 6.2.4.1.

DataSetFieldContentMask

DataSetFieldContentMask

Defined in 6.2.4.2.

KeyFrameCount

UInt32

Defined in 6.2.4.3.

DataSetName

String

The name of the corresponding PublishedDataSet.

If the DataSetWriteris used to create heartbeat DataSetMessages, the dataSetNameshall be null or empty.

DataSetWriterProperties

KeyValuePair[]

Defined in 6.2.4.4.

TransportSettings

DataSetWriterTransportDataType

Transport mapping specific DataSetWriterparameters. The abstract base type is defined in 6.2.4.5.2. The concrete subtypes are defined in the subclauses for transport mapping specific parameters.

If no concrete subtype is defined for the transport mapping, the field shall be null.

True

MessageSettings

DataSetWriterMessageDataType

DataSetMessagemapping specific DataSetWriterparameters. The abstract base type is defined in 6.2.4.5.3. The concrete subtypes are defined in the subclauses for message mapping specific parameters.

If no concrete subtype is defined for the message mapping, the field shall be null.

True

Its representation in the AddressSpace is defined in Table 28.

Table 28– DataSetWriterDataType definition

Attributes

Value

BrowseName

DataSetWriterDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

This Structure DataTypeis an abstract base type for transport mapping specific DataSetWriterparameters. The abstract DataTypedoes not define fields.

The DataSetWriterTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 29.

Table 29– DataSetWriterTransportDataType definition

Attributes

Value

BrowseName

DataSetWriterTransportDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

This Structure DataTypeis an abstract base type for message mapping specific DataSetWriterparameters. The abstract DataTypedoes not define fields.

The DataSetWriterMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 30.

Table 30– DataSetWriterMessageDataType definition

Attributes

Value

BrowseName

DataSetWriterMessageDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

The parameters are shared between WriterGroupand ReaderGroup.

The parameters are related to PubSub NetworkMessagesecurity. See 5.4.4for an introduction of PubSub security and Clause 8for the definition of the PubSub Security Key Service.

The SecurityModeindicates the level of security applied to the NetworkMessagespublished by a WriterGroupor received by a ReaderGroup. The MessageSecurityMode DataTypeis defined in OPC 10000-4.

The SecurityGroupIdwith DataType Stringis the identifier for a SecurityGroupin the Security Key Server. It is unique within a SKS.

The parameter is null if the SecurityModeis NONE.

If the SecurityModeis not NONEthe SecurityGroupIdidentifies the SecurityGroup. The SecurityGroup defines the SecurityPolicy and the security keys used for the NetworkMessagesecurity. The PubSubGroupdefines the SecurityModefor the NetworkMessagessent by the group.

SecurityKeyServicesis an array of the DataType EndpointDescriptionand definesone or more Security Key Servers(SKS) that manage the security keys for the SecurityGroupassigned to the PubSubGroup. The EndpointDescription DataTypeis defined in OPC 10000-4.

The parameter is null if the SecurityMode is NONE.

Each element in the array is an Endpointfor an SKS that can supply the security keys for theSecurityGroupId. Multiple Endpointsexist because an SKS may have multiple redundant instances. If the SKS supports non-transparent redundancy, each Serverin the redundant set shall have one entry in the array.

The use of the EndpointDescriptionparameters for the SKS selection are defined in Table 31. The main key for the identification of the SKS is the ApplicationUri.

The ApplicationUriis used in the different Serverdiscovery mechanisms to get the OPC UA endpoint information necessary to connect to the SKS.

The combination of SecurityGroupIdand SKS ApplicationUriis the unique key for a SecurityGroupin a PubSubapplication.

Table 31– SecurityKeyService parameter content

Field

Type

Definition for the values

EndpointUrl

String

Shall be null or empty.

Server

ApplicationDescription

The ApplicationDescription DataTypeis defined in OPC 10000-4.

ApplicationUri

String

The ServerUriof the SKS.

ProductUri

String

Can be null or empty.

ApplicationName

LocalizedText

Can be null or empty.

ApplicationType

Enum

ApplicationType

SERVER

The security keys are pulled from the SKS using the Method GetSecurityKeys.

CLIENT

The security keys are pushed from the SKS to the PubSub application using the Method SetSecurityKeys.

CLIENTANDSERVER

Invalid value.

DISCOVERYSERVER

Invalid value.

If the SKS information is sent as part of a discovery announcement message for a WriterGroup, the ApplicationTypeshall be set to SERVER even if the Publisheris configured for push.

GatewayServerUri

String

Shall be null or empty.

DiscoveryProfileUri

String

Shall be null or empty.

DiscoveryUrls []

String

A list of URLs for the DiscoveryEndpointsprovided by the SKS.

ServerCertificate

ApplicationInstance

Certificate

Shall be null or empty.

SecurityMode

MessageSecurityMode

The value shall be SIGNANDENCRYPT.

SecurityPolicyUri

String

ApplicationType SERVER

The URI for SecurityPolicyto use to connect to the SKS.

If the URI is null or empty, the pull access shall use the best available security policy that is also supported by the pull Client.

ApplicationType CLIENT

Shall be null or empty.

UserIdentityTokens []

UserTokenPolicy

ApplicationType SERVER

The user identity tokens that should be used to connect to the SKS.

The default is ANONYMOUS if the array is empty. For ANONYMOUS the authorization for accessing the keys is based on the application authentication.

If the type is USERNAME, a KeyCredentialConfigurationTypeinstance is used to configure user name and password. The ResourceUriof theKeyCredentialConfigurationTypeinstance shall match the ApplicationUriof the SKS. The KeyCredentialConfigurationTypeis defined in OPC 10000-12.

The UserTokenPoliciesare defined in OPC 10000-4.

ApplicationType CLIENT

The array shall be null or empty.

TransportProfileUri

String

Can be null or empty.

SecurityLevel

Byte

Shall be 0.

The MaxNetworkMessageSizewith DataType UInt32indicates the maximum size in bytes for NetworkMessagescreated by the WriterGroup. It refers to the size of the complete NetworkMessageincluding padding and signature without any additional headers added by the transport protocol mapping. If the size of a NetworkMessageexceeds the MaxNetworkMessageSize,the behaviour depends on the message mapping.

The transport protocol mappings defined in 7.3may define restrictions for the maximum value of this parameter.

NOTE The value for the MaxNetworkMessageSizeshould be configured in a way that ensures that NetworkMessagestogether with additional headers added by the transport protocol are still smaller than or equal than the transport protocol MTU.

The GroupPropertiesparameter is an array of DataType KeyValuePairthat specifies additional properties for the configured group. The KeyValuePair DataTypeis defined in OPC 10000-5and consists of a QualifiedNameand a value of BaseDataType.

The mapping of the name and value to concrete functionality may be defined by transport protocol mappings, future versions of this document or vendor-specific extensions.

This Structure DataTypeis an abstract base type for PubSubGroups. The PubSubGroupDataTypeis formally defined in Table 32.

Table 32– PubSubGroupDataType structure

Name

Type

Description

PubSubGroupDataType

Structure

Name

String

The name of the PubSubGroup. The name shall be unique across all writer groups and reader groups of a PubSubConnection.

It is recommended to use a human readable name.

Enabled

Boolean

The enabled state of the PubSubGroup.

SecurityMode

MessageSecurityMode

Defined in 6.2.5.2.

SecurityGroupId

String

Defined in 6.2.5.3.

SecurityKeyServices

EndpointDescription[]

Defined in 6.2.5.4.

MaxNetworkMessageSize

UInt32

Defined in 6.2.5.5.

GroupProperties

KeyValuePair[]

Defined in 6.2.5.6.

The PubSubGroupDataType Structurerepresentation in the AddressSpaceis defined in Table 33.

Table 33– PubSubGroupDataType definition

Attributes

Value

BrowseName

PubSubGroupDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

The WriterGroupIdwith DataType UInt16is an identifier for the WriterGroupand shall be unique across all WriterGroupsfor a PublisherId.All values, except for 0, are valid. The value 0 is defined as null value.

The WriterGroupIdshall be within the range 0x0001 - 0x7FFF for external assignment by configuration tools, and 0x8000 - 0xFFFF for internal assignment like through the Method CloseAndUpdateof thePubSubConfigurationType.

The PublishingIntervalwith the DataType Durationdefines the interval in milliseconds for publishing NetworkMessagesand the embedded DataSetMessagescreated by the related DataSetWriters.

For cyclic PublishedDataSetsone DataSetis produced for one PublishedDataSetin a PublishingInterval. If no new DataSetis available in a PublishingInterval, then either the previous DataSetMessageis resent or no DataSetMessageis sent.

In the case non-cyclic PublishedDataSetslike Eventbased DataSets, this may result in zero to many DataSetMessagesproduced for one PublishedDataSetin a PublishingInterval. All Eventsthat occur between two PublishingIntervalsshall be buffered until the next NetworkMessageis sent. If the number of Events exceeds the buffer capability of the DataSetWriter, an Eventof type EventQueueOverflowEventTypeis inserted as last entry into the buffer and all Eventsthat do not fit into the buffer are discarded.

The Duration DataTypeis a subtype of Doubleand allows configuration of intervals smaller than a millisecond.

The KeepAliveTimewith DataType Durationdefines the time in milliseconds until the Publishersends a keep alive DataSetMessagein the case where no DataSetMessagewas sent in this period by a DataSetWriter. The minimum value shall equal the PublishingInterval.

The Prioritywith DataType Bytedefines the relative priority of the WriterGroupto all other WriterGroupsacross all PubSubConnectionsof the Publisher.

If more than one WriterGroupneeds to be processed, the priority number defines the order of processing. The highest priority is processed first.

The lowest priority is zero and the highest is 255.

The LocaleIds,with DataType LocaleId,defines a list of locale ids in priority order for localized strings for all DataSetWritersin the WriterGroup. The first LocaleIdin the list has the highest priority.

If the Publishersends a localized String, the Publishershall send the translation with the highest priority that it can. If it does not have a translation for any of the locales identified in this list, then it shall send the Stringvalue that it has and include the LocaleIdwith the String. If no locale id is configured, the Publishershall use any that it has. See OPC 10000-3for more detail on LocaleId.

The HeaderLayoutUri, with DataType String, defines the selection of a well defined configuration for a subset of the PubSub communication parameters. The affected subset is defined by the header layout.

A null or empty Stringis defined as no layout selected.

If a layout is selected, all affected parameters shall be set to the values defined for the layout.

Available layouts and the corresponding URI Stringsare defined in Annex A.

This Structure DataTypeis used to represent the configuration parameters for WriterGroups. It is a subtype of PubSubGroupDataTypedefined in 6.2.5.7.

The WriterGroupDataTypeis formally defined in Table 34.

Table 34– WriterGroupDataType structure

Name

Type

Description

Allow Subtypes

WriterGroupDataType

Structure

Subtype of PubSubGroupDataType defined in 6.2.5.7.

WriterGroupId

UInt16

Defined in 6.2.6.1.

PublishingInterval

Duration

Defined in 6.2.6.2.

KeepAliveTime

Duration

Defined in 6.2.6.3.

Priority

Byte

Defined in 6.2.6.4.

LocaleIds

LocaleId[]

Defined in 6.2.6.5.

HeaderLayoutUri

String

Defined in 6.2.6.6.

TransportSettings

WriterGroupTransportDataType

Transport mapping specific WriterGroupparameters. The abstract base type is defined in 6.2.6.7.2. The concrete subtypes are defined in the subclauses for transport mapping specific parameters.

If no concrete subtype is defined for the transport mapping, the field shall be null.

True

MessageSettings

WriterGroupMessageDataType

NetworkMessagemapping specific WriterGroupparameters. The abstract base type is defined in 6.2.6.7.3. The concrete subtypes are defined in the subclauses for message mapping specific parameters.

If no concrete subtype is defined for the message mapping, the field shall be null.

True

DataSetWriters

DataSetWriterDataType[]

The DataSetWriters contained in the WriterGroup. The DataSetWriterparameters are defined in 6.2.4.

The WriterGroupDataType Structurerepresentation in the AddressSpaceis defined in Table 35.

Table 35– WriterGroupDataType definition

Attributes

Value

BrowseName

WriterGroupDataType

IsAbstract

False

References

NodeClass

BrowseName

IsAbstract

Subtype of PubSubGroupDataType defined in 6.2.5.7.

Conformance Units

PubSub Parameters Discovery

This Structure DataTypeis an abstract base type for transport mapping specific WriterGroupparameters. The abstract DataTypedoes not define fields.

The WriterGroupTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 36.

Table 36– WriterGroupTransportDataType definition

Attributes

Value

BrowseName

WriterGroupTransportDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

This Structure DataTypeis an abstract base type for message mapping specific WriterGroupparameters. The abstract DataTypedoes not define fields.

The WriterGroupMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 37.

Table 37– WriterGroupMessageDataType definition

Attributes

Value

BrowseName

WriterGroupMessageDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery

The PublisherId is a unique identifier for a Publisherwithin a Message Oriented Middleware. It can be included in sent NetworkMessagefor identification or filtering. The value of the PublisherIdis typically shared between PubSubConnectionsbut the assignment of the PublisherIdis vendor specific.

The PublisherIdparameter is only relevant for the Publisherfunctionality inside a PubSubConnection. The filter setting on the Subscriberside is contained in the DataSetReaderparameters.

Valid DataTypesare UIntegerand String. A zero UIntegerand a Null or empty Stringare invalid PublisherIds.

The unique identifier for an OPC UA Applicationis the ApplicationUri. It is recommended to use the ApplicationUri Stringas a default PublisherIdfor broker based transport protocols.

The default PublisherIdfor datagram transport protocols has a DataTypeof UInt64. If the default PublisherIdis created by the OPC UA Application, it is recommended to set the first 6 bytes with the MAC address of one of the network interfaces and to set the two remaining bytes to the OPC UA Serverport of the OPC UA Application.

The default PublisherIdis used if it is not assigned by a configuration tool.

The TransportProfileUri parameter with DataType Stringindicates the transport protocol mapping and the message mapping used.

The possible TransportProfileUrivalues are defined as URI of the transport protocols defined as PubSubtransport Facetin OPC 10000-7.

The Address parameter contains the network address information for the communication middleware. The different Structure DataTypesused to represent the Addressare defined in 6.2.7.5.3.

The ConnectionPropertiesparameter is an array of DataType KeyValuePairthat specifies additional properties for the configured connection. The KeyValuePairtype is defined in OPC 10000-5and consists of a QualifiedNameand a value of BaseDataType.

The mapping of the namespace, name, and value to concrete functionality may be defined by transport protocol mappings, future versions of this document or vendor-specific extensions.

This Structure DataTypeis used to represent the configuration parameters for PubSubConnections. The PubSubConnectionDataTypeis formally defined in Table 38.

Table 38– PubSubConnectionDataType structure

Name

Type

Description

Allow Subtypes

PubSubConnectionDataType

Structure

Name

String

The name of the PubSubConnection. The name shall be unique across a PubSubConfiguration.

It is recommended to use a human readable name.

Enabled

Boolean

The enabled state of the PubSubConnection.

PublisherId

BaseDataType

Defined in 6.2.7.1.

TransportProfileUri

String

Defined in 6.2.7.2.

Address

NetworkAddressDataType

Defined in 6.2.7.3.

The NetworkAddressDataTypeis defined in 6.2.7.5.3.

True

ConnectionProperties

KeyValuePair[]

Defined in 6.2.7.4.

TransportSettings

ConnectionTransportDataType

Transport mapping specific PubSubConnectionparameters. The abstract base type is defined in 6.2.7.5.2. The concrete subtypes are defined in the subclauses for transport mapping specific parameters.

If no concrete subtype is defined for the transport mapping, the field shall be null.

True

WriterGroups

WriterGroupDataType[]

The WriterGroupscontained in the PubSubConnection. The WriterGroupis defined in 6.2.6.

ReaderGroups

ReaderGroupDataType[]

The ReaderGroupscontained in the PubSubConnection. The ReaderGroupis defined in 6.2.8.

Its representation in the AddressSpace is defined in Table 39.

Table 39– PubSubConnectionDataType definition

Attributes

Value

BrowseName

PubSubConnectionDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

This Structure DataTypeis an abstract base type for transport mapping specific PubSubConnectionparameters. The abstract DataTypedoes not define fields.

The ConnectionTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 40.

Table 40– ConnectionTransportDataType definition

Attributes

Value

BrowseName

ConnectionTransportDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

Subtypes of this abstract Structure DataTypeare used to represent network address information. The NetworkAddressDataTypeis formally defined in Table 41.

Table 41– NetworkAddressDataType structure

Name

Type

Description

NetworkAddressDataType

Structure

NetworkInterface

String

The name of the network interface used for the communication relation.

The default value is an empty String. In this case the network interface used is determined by the address provided by the subtypes of this Structure.

The name can be an IP address, MAC address or the system specific name of the interface.

The NetworkAddressDataType Structurerepresentation in the AddressSpaceis defined in Table 42.

Table 42– NetworkAddressDataType definition

Attributes

Value

BrowseName

NetworkAddressDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

This Structure DataTypeis used to represent network address information in the form of an URL String. The NetworkAddressUrlDataTypeis formally defined in Table 43.

Table 43– NetworkAddressUrlDataType structure

Name

Type

Description

NetworkAddressUrlDataType

Structure

Subtype of NetworkAddressDataType defined in 6.2.7.5.3.

Url

String

The address string for the communication relation in the form on an URL String.

The NetworkAddressUrlDataType Structurerepresentation in the AddressSpaceis defined in Table 44.

Table 44– NetworkAddressUrlDataType definition

Attributes

Value

BrowseName

NetworkAddressUrlDataType

IsAbstract

False

References

NodeClass

BrowseName

IsAbstract

Subtype of NetworkAddressDataType defined in 6.2.7.5.3.

Conformance Units

PubSub Parameters Discovery Extended

The ReaderGroupdoes not add parameters to the shared PubSubGroup parameters.

The ReaderGroupis used to group a list of DataSetReaders. It is not symmetric to a WriterGroupand it is not related to a particular NetworkMessage. The NetworkMessagerelated filter settings are on the DataSetReaders.

This Structure DataTypeis used to represent the configuration parameters for ReaderGroups. The ReaderGroupDataTypeis formally defined in Table 45.

Table 45– ReaderGroupDataType structure

Name

Type

Description

Allow Subtypes

ReaderGroupDataType

Structure

Subtype of PubSubGroupDataType defined in 6.2.5.7.

TransportSettings

ReaderGroupTransportDataType

Transport mapping specific ReaderGroupparameters. The abstract base type is defined in 6.2.8.2.2. The concrete subtypes are defined in the subclauses for transport mapping specific parameters.

If no concrete subtype is defined for the transport mapping, the field shall be null.

True

MessageSettings

ReaderGroupMessageDataType

NetworkMessagemapping specific ReaderGroupparameters. The abstract base type is defined in 6.2.8.2.3. The concrete subtypes are defined in the subclauses for message mapping specific parameters.

If no concrete subtype is defined for the message mapping, the field shall be null.

True

DataSetReaders

DataSetReaderDataType[]

The DataSetReaders contained in the ReaderGroup. The DataSetReader is defined in 6.2.9.

The ReaderGroupDataType Structurerepresentation in the AddressSpaceis defined in Table 46.

Table 46– ReaderGroupDataType definition

Attributes

Value

BrowseName

ReaderGroupDataType

IsAbstract

False

References

NodeClass

BrowseName

IsAbstract

Subtype of PubSubGroupDataType defined in 6.2.5.7.

Conformance Units

PubSub Parameters Discovery Extended

This Structure DataTypeis an abstract base type for transport mapping specific ReaderGroupparameters. The abstract DataTypedoes not define fields.

The ReaderGroupTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 47.

Table 47– ReaderGroupTransportDataType definition

Attributes

Value

BrowseName

ReaderGroupTransportDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

This Structure DataTypeis an abstract base type for message mapping specific ReaderGroupparameters. The abstract DataTypedoes not define fields.

The ReaderGroupMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 48.

Table 48– ReaderGroupMessageDataType definition

Attributes

Value

BrowseName

ReaderGroupMessageDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

The parameterPublisherIddefines the Publisherto receive NetworkMessagesfrom.

If the value is null, the parameter shall be ignored and all received NetworkMessagespass the PublisherIdfilter.

Valid DataTypesare UIntegerand String.

The parameterWriterGroupId with DataType UInt16defines the identifier of the corresponding WriterGroup.

The default value 0 is defined as null value, and means this parameter shall be ignored.

The parameterDataSetWriterIdwith DataType UInt16 defines the DataSetselected in the Publisherfor the DataSetReader.

If the value is 0 (null), the parameter shall be ignored and all received DataSetMessagespass the DataSetWriterIdfilter.

The parameterDataSetMetaDataprovides the information necessary to decode DataSetMessagesfrom the Publisher. If the DataSetMetaDatachanges in the Publisherand the MajorVersionwas changed, the DataSetReaderneeds an update of the DataSetMetaDatafor further operation. If the update cannot be retrieved in the duration of the MessageReceiveTimeout, the Stateof the DataSetReadershall change to Error. The related PublishedDataSetis defined in 0. The DataSetMetaDataTypeis defined in 6.2.3.2.2. The options for retrieving the update of the DataSetMetaDataare described in 5.2.3.

If the DataSetMetaDatacontains an empty fields array, the DataSetReaderis configured to receive heartbeat DataSetMessages. For heartbeat DataSetMessagesthe majorVersionand minorVersionin the configurationVersionshall always be 0 in the configuration and in the DataSetMessages.

The parameterDataSetFieldContentMaskwith DataType DataSetFieldContentMaskindicates the fields of a DataValueincluded in the DataSetMessages.

The DataSetFieldContentMaskDataType is defined in 6.2.4.2.

The parameterMessageReceiveTimeoutis the maximum acceptable time between two DataSetMessages. The time starts when the state of the DataSetReaderchanges to Operational. If there is no new DataSetMessagereceived within this period, the DataSetReader Stateshall be changed to Erroruntil the next DataSetMessageis received. The DataSetMessagesthat reset the period include keep-alive and heartbeat messages. ADataSetMessageis considered new if the sequence number increments or if a new keep-alive message is received. If no sequence number is contained in the DataSetMessage, each received DataSetMessageis considered new.

The MessageReceiveTimeoutis related to the Publisherside parameters PublishingInterval, KeepAliveTimeand KeyFrameCount.

The KeyFrameCountwith DataType UInt32is the multiplier of the PublishingIntervalthat defines the maximum number of times the PublishingIntervalexpires before a key frame message, with all field values, is received.

For DataSetsthat provide cyclic updates, the value shall be greater than or equal to 1. For non-cyclic DataSets,like PublishedEvents,that provide event based DataSets, the value shall be 0.

The HeaderLayoutUri, with DataType String, defines the selection of a well defined configuration for a subset of the PubSub communication parameters. The affected subset is defined by the header layout.

A null or emptyStringis defined as no layout selected.

If a layout is selected, all affected parameters shall be set to the values defined for the layout.

Available layouts and the corresponding URI Stringsare defined in Annex A.

The parameter is defined in 6.2.5.2.

This parameter overwrites the corresponding setting on the ReaderGroupif the value is not INVALID.

The parameter is defined in 6.2.5.3.

The parameter shall be null if the SecurityModeis INVALID.

The parameter is defined in 6.2.5.4.

The parameter shall be null if the SecurityModeis INVALID.

The parameter is only used to overwrite the SecurityKeyServicesparameter of the ReaderGroupif the SKS is different for the DataSetReader.

The DataSetReaderPropertiesparameter is an array of DataType KeyValuePairthat specifies additional properties for the configured DataSetReader. The KeyValuePair DataTypeis defined in OPC 10000-5and consists of a QualifiedNameand a value of BaseDataType.

The mapping of the name and value to concrete functionality may be defined by transport protocol mappings, future versions of this document or vendor-specific extensions.

This Structure DataTypeis used to represent the DataSetReaderparameters. The DataSetReaderDataTypeis formally defined in Table 49.

Table 49– DataSetReaderDataType structure

Name

Type

Description

Allow Subtypes

DataSetReaderDataType

Structure

Name

String

The name of the DataSetReader. The name shall be unique across a ReaderGroup.

It is recommended to use a human readable name.

Enabled

Boolean

The enabled state of the DataSetReader.

PublisherId

BaseDataType

Defined in 6.2.9.1.

WriterGroupId

UInt16

Defined in 6.2.9.2.

DataSetWriterId

UInt16

Defined in 6.2.9.3.

DataSetMetaData

DataSetMetaDataType

Defined in 6.2.9.4.

If the DataSetReaderDataTypeis provided as part of a create or update operation and the subscribedDataSet contains a StandaloneSubscribedDataSetRefDataType, this field shall be null and shall be replaced with the DataSetMetaDataTypecontained in the referenced StandaloneSubscribedDataSetDataType.

DataSetField‌ContentMask

DataSetField‌ContentMask

Defined in 6.2.9.5.

MessageReceiveTimeout

Duration

Defined in 6.2.9.6.

KeyFrameCount

UInt32

Defined in 6.2.9.7.

HeaderLayoutUri

String

Defined in 6.2.9.8.

SecurityMode

MessageSecurityMode

Defined in 6.2.9.9.

SecurityGroupId

String

Defined in 6.2.9.10.

SecurityKeyServices

EndpointDescription[]

Defined in 6.2.9.11.

DataSetReaderProperties

KeyValuePair[]

Defined in 6.2.9.12.

TransportSettings

DataSetReaderTransportDataType

Transport-specific DataSetReader parameters. The abstract base type is defined in 6.2.9.13.2. The concrete subtypes are defined in the subclauses for transport mapping specific parameters.

If no concrete subtype is defined for the transport mapping, the field shall be null.

True

MessageSettings

DataSetReaderMessageDataType

DataSetMessage mapping specific DataSetReader parameters. The abstract base type is defined in 6.2.9.13.3. The concrete subtypes are defined in the subclauses for message mapping specific parameters.

If no concrete subtype is defined for the message mapping, the field shall be null.

True

SubscribedDataSet

SubscribedDataSetDataType

The SubscribedDataSet specific parameters. The abstract base type and the concrete subtypes are defined in 6.2.10.

If the DataSetReaderis configured to receive heartbeat DataSetMessages, the field shall be null.

The StandaloneSubscribedDataSetDataTypesubtype shall not be used in this structure field.

True

Its representation in the AddressSpace is defined in Table 50.

Table 50– DataSetReaderDataType definition

Attributes

Value

BrowseName

DataSetReaderDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

This Structure DataTypeis an abstract base type for transport-specific DataSetReaderparameters. The DataSetReaderTransportDataTypeis formally defined in Table 51.

Table 51– DataSetReaderTransportDataType structure

Name

Type

Description

DataSetReaderTransportDataType

Structure

The DataSetReaderTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 52.

Table 52– DataSetReaderTransportDataType definition

Attributes

Value

BrowseName

DataSetReaderTransportDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

This Structure DataTypeis an abstract base type for message mapping specific DataSetReaderparameters. The DataSetReaderMessageDataTypeis formally defined in Table 53.

Table 53– DataSetReaderMessageDataType structure

Name

Type

Description

DataSetReaderMessageDataType

Structure

The DataSetReaderMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 54.

Table 54– DataSetReaderMessageDataType definition

Attributes

Value

BrowseName

DataSetReaderMessageDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

This Structure DataTypeis an abstract base type for SubscribedDataSetparameters. A SubscribedDataSetdefines the metadata for the subscribed DataSetand the information for the processing of DataSetMessages. See 5.4.2.2for an introduction to the processing options for received DataSetMessages.

The SubscribedDataSetDataTypeis formally defined in Table 55.

Table 55– SubscribedDataSetDataType structure

Name

Type

Description

SubscribedDataSetDataType

Structure

The SubscribedDataSetDataType Structurerepresentation in the AddressSpaceis defined in Table 56.

Table 56– SubscribedDataSetDataType definition

Attributes

Value

BrowseName

SubscribedDataSetDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Discovery Extended

The SubscribedDataSetoption TargetVariablesdefines a list of Variablemappings between received DataSetfields and target Variablesin the Subscriber AddressSpace. The FieldTargetDataTypeis defined in 6.2.10.2.3. Target Variablesshall only be used once within the same TargetVariableslist.

This Structure DataTypeis used to represent TargetVariablesspecific parameters. It is a subtype of the SubscribedDataSetDataTypedefined in 6.2.10.1.

The TargetVariablesDataTypeis formally defined in Table 57.

Table 57– TargetVariablesDataType structure

Name

Type

Description

TargetVariablesDataType

Structure

TargetVariables

FieldTargetDataType[]

Defined in 6.2.10.2.3.

Its representation in the AddressSpace is defined in Table 58.

Table 58– TargetVariablesDataType definition

Attributes

Value

BrowseName

TargetVariablesDataType

IsAbstract

False

Subtype of SubscribedDataSetDataTypedefined in 6.2.10.1.

Conformance Units

PubSub Parameters SubscribedDataSet

This DataTypeis used to provide the metadata for the relation between a field in a DataSetMessageand a target Variablein a DataSetReader. The FieldTargetDataTypeis formally defined in Table 59.

Table 59– FieldTargetDataType structure

Name

Type

Description

FieldTargetDataType

Structure

DataSetFieldId

Guid

The unique ID of the field in the DataSet. The fields and their unique IDs are defined in the DataSetMetaData Structure.

ReceiverIndexRange

NumericRange

Index range used to extract parts of an array out of the received data.

It is used to identify a single element of an array, or a single range of indexes for arrays for the received DataSetfield. If a range of elements is specified, the values are returned as a composite. The first element is identified by index 0 (zero). The NumericRangetype is defined in OPC 10000-4.

This parameter is null if the specified Attribute is not an array. However, if the specified Attribute is an array, and this parameter is null, then the complete array is used.

The resulting data array size of this NumericRangeshall match the resulting data array size of the writeIndexRange NumericRangesetting.

If the resulting array size is one and the target node ValueRankis scalar, the value shall be applied as scalar value.

TargetNodeId

NodeId

The NodeIdof the Variableto which the received DataSetMessagefield value is written.

AttributeId

IntegerId

Id of the Attributeto write e.g. the Value Attribute. This shall be a valid AttributeId.

The Attributes are defined in OPC 10000-3. The IntegerId DataType is defined in OPC 10000-4. The IntegerIdsfor the Attributesare defined in OPC 10000-6.

WriteIndexRange

NumericRange

The index range used for writing received data to the target node.

It is used to identify a single element of an array, or a single range of indexes for arrays for the write operation to the target Node. If a range of elements is specified, the values are written as a composite. The first element is identified by index 0 (zero). The NumericRangetype is defined in OPC 10000-4.

This parameter is null if the specified Attributeis not an array. However, if the specified Attributeis an array, and this parameter is null, then the complete array is used.

OverrideValueHandling

OverrideValueHandling

The value is used to define the override value handling behaviour if the State of the DataSetReaderis not Operationalor if the corresponding field in the DataSetcontains a Bad StatusCode.

The handling of the OverrideValuein different scenarios is defined in 6.2.11.

The OverrideValueHandlingenumeration DataTypeis defined in 6.2.10.2.4.

OverrideValue

BaseDataType

This value is used if the OverrideValueHandling is set to OverrideValueand the State of the DataSetReaderis not Operationalor if the corresponding field in the DataSetcontains a Bad StatusCode.

The handling of the OverrideValuein different scenarios is defined in 6.2.11.

This Value shall match the DataTypeof the target Node.

If a writeIndexRangeis configured, the Value shall match the resulting size of the writeIndexRange. For example if the writeIndexRangeis “5:7”, the overrideValue must be an array with length 3.

Its representation in the AddressSpace is defined in Table 60.

Table 60– FieldTargetDataType definition

Attributes

Value

BrowseName

FieldTargetDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters SubscribedDataSet

The OverrideValueHandlingis an enumeration that specifies the possible options for the handling of Override values. The possible enumeration values are described in Table 61.

Table 61– OverrideValueHandling values

Name

Value

Description

Disabled

0

The override value handling is disabled.

LastUsableValue

1

In the case of an error, the last usable value is used. If no last usable value is available, the default value for the data type is used.

OverrideValue

2

In the case of an error, the configured override value is used.

The OverrideValueHandlingrepresentation in the AddressSpaceis defined in Table 62.

Table 62– OverrideValueHandling definition

Attribute

Value

BrowseName

OverrideValueHandling

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of Enumeration defined in OPC 10000-5

HasProperty

Variable

EnumStrings

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters SubscribedDataSet

The SubscribedDataSetoption SubscribedDataSetMirrordefines an Objectin the Subscriber AddressSpacewith a mirror Variablefor each DataSetfield in the received DataSetMessages.

This parameter with DataType Stringdefines the BrowseNameand DisplayNameof the parent Nodefor the Variablesrepresenting the fields of the subscribed DataSet.

This parameter with DataType RolePermissionTypedefines the value of the RolePermissionsAttribute to be set on the parent Node. This value is also used as RolePermissionsfor all Variablesof the DataSetmirror.

This Structure DataTypeis used to represent SubscribedDataSetMirrorspecific parameters. It is a subtype of the SubscribedDataSetDataTypedefined in 6.2.10.1.

The SubscribedDataSetMirrorDataTypeis formally defined in Table 63.

Table 63– SubscribedDataSetMirrorDataType structure

Name

Type

Description

SubscribedDataSetMirrorDataType

Structure

ParentNodeName

String

Defined in 6.2.10.3.1.

RolePermissions

RolePermissionType[]

Defined in 6.2.10.3.3.

Its representation in the AddressSpace is defined in Table 64.

Table 64– SubscribedDataSetMirrorDataType definition

Attributes

Value

BrowseName

SubscribedDataSetMirrorDataType

IsAbstract

False

Subtype of SubscribedDataSetDataTypedefined in in 6.2.10.1.

Conformance Units

PubSub Parameters SubscribedDataSet Mirror

This Structure DataTypereferences a standalone subscribed DataSet. It is a subtype of the SubscribedDataSetDataTypedefined in 6.2.10.1.

The StandaloneSubscribedDataSetRefDataTypeis formally defined in Table 65.

Table 65– StandaloneSubscribedDataSetRefDataType structure

Name

Type

Description

StandaloneSubscribedDataSetRefDataType

Structure

DataSetName

String

The name of the corresponding standalone subscribed DataSet.

Its representation in the AddressSpace is defined in Table 66.

Table 66– StandaloneSubscribedDataSetRefDataType definition

Attributes

Value

BrowseName

StandaloneSubscribedDataSetRefDataType

IsAbstract

False

Subtype of SubscribedDataSetDataType defined in 6.2.10.1.

Conformance Units

PubSub Parameters SubscribedDataSet Standalone

This Structure DataTypeis define a standalone subscribed DataSet. It is a subtype of the SubscribedDataSetDataTypedefined in 6.2.10.1.

The StandaloneSubscribedDataSetDataTypeis formally defined in Table 67.

Table 67– StandaloneSubscribedDataSetDataType structure

Name

Type

Description

Allow Subtypes

StandaloneSubscribedDataSetDataType

Structure

Name

String

Name of the standalone SubscribedDataSet. It is recommended to use a human readable name.

The name of the standalone SubscribedDataSetshall be unique in the Subscriber.

DataSetFolder

String[]

Optional path of the SubscribedDataSetfolder used to group SubscribedDataSetswhere each entry in the Stringarray represents one level in a folder hierarchy.

If no grouping is needed the parameter is a null or empty Stringarray.

DataSetMetaData

DataSetMetaDataType

Defined in 6.2.9.4.

A Publishermust be configured to send DataSetMessagesthat comply with the DataSetMetaDatain the standalone subscribed DataSet.

SubscribedDataSet

SubscribedDataSet‌DataType

The SubscribedDataSet specific parameters. The abstract base type and the concrete subtypes are defined in 6.2.10.

The StandaloneSubscribedDataSetDataTypeand the StandaloneSubscribedDataSetRefDataTypesubtypes shall not be used in this structure field.

True

Its representation in the AddressSpace is defined in Table 68.

Table 68– StandaloneSubscribedDataSetDataType definition

Attributes

Value

BrowseName

StandaloneSubscribedDataSetDataType

IsAbstract

False

Subtype of SubscribedDataSetDataType defined in 6.2.10.1.

Conformance Units

PubSub Parameters SubscribedDataSet Standalone

The configuration model defines different parameters that influence the information flow from Publisherto Subscriberin the case of a Bad Value Status or other error situations. Figure 24depicts the parameters and the information flow inside a Publisherand inside a Subscriber.

The parameters and behaviour relevant for the encoding of a DataSetMessageon the Publisherside and the decoding of the DataSetMessageon the Subscriberside are defined in 6.2.4.2together with the DataSetFieldContentMask.

image027.png

Figure 24– PubSub information flow

The mapping of source value and status to the DataSetin the Publisherdepends on the substitute value. The dependencies are defined in Table 69.

Table 69– Source to message input mapping

Source

Substitute

Value

DataSet Publisher side

Value(b)

Status (a)

Value

Status (a)

Value 1

Good_*

Value 2

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Value 2

Uncertain_SubstituteValue

Value 1

Good_*

Null

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Null

Bad_*

(a)If no specific StatusCodeis used, the grouping into severity Good, Uncertain or Bad is used. In this case, the resulting Status matches the input Status.

(b)Any error that happens during processing of source value e.g. DataTypedoes not match DataSetField should be treated like a Bad StatusCodereceived from the source.

The mapping of the decoded DataSeton the Subscriberside to the value and status of the target Variabledepends on the override value. The dependencies are defined in Table 70.

Table 70– Message output to target mapping

Decoded DataSet Subscriber

Override Value Handling Enum

Override

Value

Reader

State

Target

Value

Status (a)

Value

Status (a)

Value 1

Good_*

OverrideValue

Value 2

Operational

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Value 2

Good_LocalOverride

Value 1

Good_*

LastUsableValue

Ignored

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

LastValue (b)

Uncertain_LastUsableValue

Value 1

Good_*

Disabled

Ignored

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Null

Bad_*

No message received.

The target values are updated once after a reader state change.

OverrideValue

Value 2

Disabled

Paused

Value 2

Good_LocalOverride

LastUsableValue

Ignored

LastValue (b)

Uncertain_LastUsableValue

Disabled

Ignored

Null

Bad_OutOfService

OverrideValue

Value 2

Error

Value 2

Good_LocalOverride

LastUsableValue

Ignored

LastValue (b)

Uncertain_LastUsableValue

Disabled

Ignored

Null

Bad_NoCommunication

(a)If no specific StatusCodeis used, the grouping into severity Good, Uncertain or Bad is used. In this case, the resulting Status matches the input Status.

(b)The last value is either the last received value or the default value for the data type if there was never a value received before.

If one of the target Variablesin the SubscribedDataSetdoes not allow writing of the StatusCodeand the OverrideValueHandlingis set to Disabled, the DataSetReadershall indicate the configuration error by setting the DataSetReaderstate to Error. In all other configurations of OverrideValueHandlingwhen the target Variabledoes not allow writing of the StatusCode, only the Valueis transferred to the target Variable.

If a target Variablein the SubscribedDataSetdoes not allow writing of timestamp, any received timestamp shall not be used and only the received value shall be written to the target Variable.

This Structure DataTypeis used to represent the PubSubconfiguration of an OPC UA Application. The PubSubConfigurationDataTypeis formally defined in Table 71.

Table 71– PubSubConfigurationDataType structure

Name

Type

Description

PubSubConfigurationDataType

Structure

PublishedDataSets

PublishedDataSetDataType[]

The PublishedDataSetscontained in the configuration. The PublishedDataSetis defined in 0.

Connections

PubSubConnectionDataType[]

The PubSubConnectionscontained in the configuration. The PubSubConnectionDataTypeis defined in 6.2.7.

The connection includes WriterGroupsand ReaderGroups.

Enabled

Boolean

The enabled state of the PubSubconfiguration. This Enablestate corresponds to the PubSub Statusof the PublishSubscribe Object.

Its representation in the AddressSpace is defined in Table 72.

Table 72– PubSubConfigurationDataType definition

Attributes

Value

BrowseName

PubSubConfigurationDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Configuration

If the PubSubconfiguration is stored in a file, the UABinaryFileDataTypeand the related definitions in OPC 10000-5shall be used to encode the file content. The structure of the UABinaryFileDataTypefile with typical values for a PubSub configuration is described in Table 73.

Table 73– PubSubConfiguration file content

Field

Type

Typical Values

Namespaces

String[]

Namespace URIs for namespace indices used in the body. Examples are NodeIdscontained in PublishedDataSets.

The OPC UA namespace is skipped.

The DataTypesused for configuration are defined in the OPC UA namespace.

structureDataTypes

StructureDescription[]

Null or empty

DataTypesused for configuration are defined by OPC UA.

enumDataTypes

EnumDescription[]

Null or empty

DataTypesused for configuration are defined by OPC UA.

simpleDataTypes

SimpleTypeDescription[]

Null or empty

DataTypesused for configuration are defined by OPC UA.

schemaLocation

String

Null or empty

fileHeader

KeyValuePair[]

Null or empty

Body

BaseDataType

PubSubConfigurationDataType Structure

The PubSubconfiguration represented by the PubSubConfigurationDataType.

This Structure DataTypeis used to represent the configuration of a SecurityGroupin a PubSubconfiguration of an OPC UA Application. The SecurityGroupDataType is formally defined in Table 74.

Table 74– SecurityGroupDataType structure

Name

Type

Description

SecurityGroupDataType

Structure

Name

String

Name of the SecurityGroup.

SecurityGroupFolder

String[]

Optional path of the SecurityGroupFoldersused to group SecurityGroupswhere each entry in the Stringarray represents one level in a folder hierarchy.

If no grouping is needed the parameter is a null or emptyStringarray.

KeyLifetime

Duration

The lifetime of a key in milliseconds.

SecurityPolicyUri

String

The SecurityPolicyused for the SecurityGroup.

MaxFutureKeyCount

UInt32

The maximum number of future keys returned by the Method GetSecurityKeys.

MaxPastKeyCount

UInt32

The maximum number of historical keys stored by the SKS.

SecurityGroupId

String

The identifier for the SecurityGroup. The SecurityGroupIdshall match the Namefield.

RolePermissions

RolePermissionType[]

The permissions that apply to the SecurityGroup.

GroupProperties

KeyValuePair[]

Specifies additional properties for the security group.

Its representation in the AddressSpace is defined in Table 75.

Table 75– SecurityGroupDataType definition

Attributes

Value

BrowseName

SecurityGroupDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Configuration2

This Structure DataTypeis used to represent the configuration of a PubSubKeyServicePushTargetin a PubSubconfiguration of an OPC UA Application. The PubSubKeyPushTargetDataType is formally defined in Table 76.

Table 76– PubSubKeyPushTargetDataType structure

Name

Type

Description

PubSubKeyPushTargetDataType

Structure

ApplicationUri

String

ApplicationUriof the Serverthat is the target of a push.

PushTargetFolder

String[]

Optional path of the PubSubKeyPushTargetFolder used to group the push targets where each entry in the Stringarray represents one level in a folder hierarchy.

If no grouping is needed the parameter is a null or emptyStringarray.

EndpointUrl

String

URL of the Endpoint of the Server that is the target of a push.

SecurityPolicyUri

String

The security policy the SKS shall use to establish a SecureChannelto the push target.

UserTokenType

UserTokenPolicy

The type of user toke to be used for the connection to the push target. The default is Anonymous.

RequestedKeyCount

UInt16

The number of keys that are to be pushed on each update. The minimum setting for this is three

RetryInterval

Duration

The interval the SKSshall use to retry pushing keys after an error appeared

PushTargetProperties

KeyValuePair[]

Specifies additional properties for the push target

SecurityGroups

String[]

List of security groups related to the push target

Its representation in the AddressSpace is defined in Table 77.

Table 77– PubSubKeyPushTargetDataType definition

Attributes

Value

BrowseName

PubSubKeyPushTargetDataType

IsAbstract

False

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters Configuration2

This Structure DataTypeis used to represent the extended PubSubconfiguration of an OPC UA Application. It is a subtype of the PubSubConfigurationDataType defined in 6.2.12.1.

The PubSubConfiguration2DataTypeis formally defined in Table 78.

Table 78– PubSubConfiguration2DataType structure

Name

Type

Description

PubSubConfiguration2DataType

Structure

Subtype of PubSubConfigurationDataType defined in 6.2.12.1.

SubscribedDataSets

StandaloneSubscribed‌DataSetDataType[]

The standalone SubscribedDataSetscontained in the configuration. The StandaloneSubscribedDataSetDataTypeis defined in 6.2.10.5.

DataSetClasses

DataSetMeta‌DataType[]

DataSetClasses supported by the Publisher.

DefaultSecurityKeyServices

EndpointDescription[]

The default SecurityKeyServices used for the PubSub configuration. The value is as default if not overwritten in the groups or DataSetReaders. The general definition for the SecurityKeyServices parameter is in .6.2.5.4.

SecurityGroups

SecurityGroupDataType[]

The SecurityGroupscontained in the configuration. The SecurityGroupDataTypeis defined in 6.2.12.2.

PubSubKeyPushTargets

PubSubKeyPushTarget DataType[]

The PubSubKeyPushTargetscontained in the configuration. The PubSubKeyPushTargetDataType is defined in 6.2.12.3.

ConfigurationVersion

VersionTime

The configurationVersionreflects the time of the last change.

ConfigurationProperties

KeyValuePair[]

The configurationPropertiesis an array of DataType KeyValuePairthat specifies additional properties for the PubSub configuration. The KeyValuePairtype is defined in OPC 10000-5and consists of a QualifiedName and a value of BaseDataType.

The mapping of the namespace, name, and value to concrete functionality may be defined by transport protocol mappings, future versions of this document or vendor-specific extensions.

Its representation in the AddressSpace is defined in Table 79.

Table 79– PubSubConfiguration2DataType definition

Attributes

Value

BrowseName

PubSubConfiguration2DataType

IsAbstract

False

Subtype of PubSubConfigurationDataTypedefined in 6.2.12.1.

Conformance Units

PubSub Parameters Configuration2

The PublishingInterval, the SamplingOffsetthe PublishingOffsetand the timestamp in the NetworkMessageheader shall use the same time base.

If an underlying network provides a synchronized global clock, this clock shall be used as the time base for the Publisherand Subscriber.

The beginning of a PublishingIntervalshall be a multiple of the PublishingIntervalrelative to the start of the time base. The reference start time of the PublishingIntervalcan be calculated by using the following formula:

Start of periodic execution =

current time + PublishingInterval – (current time / PublishingInterval)

Current time is the number of nanoseconds since the start of epoch used by the reference clock.

PublishingIntervalis the duration in nanoseconds.

Start of periodic executionis the number of nanoseconds since the start of epoch which is the next possible start of a PublishingInterval.

Figure 25shows an example how to select the possible start of a PublishingInterval.

image028.png

Figure 25– Start of the periodic publisher execution

The different timing offsets inside a PublishingIntervalcycle on Publisherand Subscriberside are shown in Figure 26. The SamplingOffsetand PublishingOffsetare defined as parameters of the UADP WriterGroup. The ReceiveOffsetand the ProcessingOffsetare defined as parameters of the UADP DataSetReaderin 6.3.1.4.

image029.png

Figure 26– Timing offsets in a PublishingInterval

The GroupVersionwith DataType VersionTimereflects the time of the last layout change of the content of the NetworkMessagespublished by the WriterGroup. The VersionTime DataTypeis defined in OPC 10000-4. The GroupVersionchanges when one of the following parameters is modified:

The GroupVersionis valid for all NetworkMessagesresulting from this WriterGroup.

The DataSetOrderingdefines the ordering of the DataSetMessagesin the NetworkMessages. Possible values for DataSetOrderingare described in Table 80. The default value is Undefined.

The DataSetOrderingTypeis an enumeration that specifies the possible options for the ordering of DataSetMessagesinside and across NetworkMessages. The possible enumeration values are described in Table 80.

Table 80– DataSetOrderingType values

Name

Value

Description

Undefined

0

The ordering of DataSetMessagesis not specified.

AscendingWriterId

1

DataSetMessagesare ordered ascending by the value of their corresponding DataSetWriterIds.

AscendingWriterIdSingle

2

DataSetMessagesare ordered ascending by the value of their corresponding DataSetWriterIdsand only one DataSetMessageis sent per NetworkMessage.

If DataSetOrderingis Undefinedany ordering between DataSets and their distribution into NetworkMessagesis allowed. Ordering and distribution even may change between each PublishingInterval. If DataSetOrderingis set to AscendingWriterId,the Publishershall fill up each NetworkMessagewith DataSetswith an ascending order of the related DataSetWriterIdsas long as the accumulated DataSetsizes will not exceed the MaxNetworkMessageSize. The different options are shown in Figure 27.

image030.png

Figure 27– DataSetOrdering and MaxNetworkMessageSize

The DataSetOrderingTyperepresentation in the AddressSpaceis defined in Table 81.

Table 81– DataSetOrderingType definition

Attribute

Value

BrowseName

DataSetOrderingType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of Enumeration defined in OPC 10000-5

HasProperty

Variable

EnumStrings

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters UADP

The parameter NetworkMessageContentMaskdefines the optional header fields to be included in the NetworkMessagesproduced by the WriterGroup. The DataTypefor the UADP NetworkMessagemapping is UadpNetworkMessageContentMask.

The DataType UadpNetworkMessageContentMaskis formally defined in Table 82.

Table 82– UadpNetworkMessageContentMask values

Value

Bit No.

Description

PublisherId

0

The PublisherIdis included in the NetworkMessages.

GroupHeader

1

The GroupHeader is included in the NetworkMessages.

WriterGroupId

2

The WriterGroupIdfield is included in the GroupHeader.

The flag is only valid if Bit 1 is set.

GroupVersion

3

The GroupVersionfield is included in the GroupHeader.

The flag is only valid if Bit 1 is set.

NetworkMessageNumber

4

The NetworkMessageNumberfield is included in the GroupHeader.

The field is required if more than one NetworkMessage is needed to transfer all DataSets of the group.

The flag is only valid if Bit 1 is set.

SequenceNumber

5

The SequenceNumberfield is included in the GroupHeader.

The flag is only valid if Bit 1 is set.

PayloadHeader

6

The PayloadHeaderis included in the NetworkMessages.

Timestamp

7

The sender timestamp is included in the NetworkMessages.

PicoSeconds

8

The sender PicoSecondsportion of the timestamp is included in the NetworkMessages. This flag is ignored if the Timestampflag is not set.

DataSetClassId

9

The DataSetClassIdis included in the NetworkMessages.

The NetworkMessagecan only contain DataSetMessageswith the same DataSetClassId. If DataSetMessageshave different DataSetClassIdsthey must be sent in individual NetworkMessages.

PromotedFields

10

The PromotedFieldsare included in the NetworkMessages.

The UadpNetworkMessageContentMaskrepresentation in the AddressSpaceis defined in Table 83.

Table 83– UadpNetworkMessageContentMask definition

Attribute

Value

BrowseName

UadpNetworkMessageContentMask

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of UInt32 defined in OPC 10000-5

HasProperty

Variable

OptionSetValues

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters UADP

The SamplingOffsetwith the DataType Durationdefines the time in milliseconds for the offset of creating the NetworkMessagein the PublishingIntervalcycle.

Any negative value indicates that the optional parameter is not configured. In this case the Publishershall calculate the time before the PublishingOffsetthat is necessary to create the NetworkMessagein time for sending at the PublishingOffset.

The Duration DataTypeis a subtype of Doubleand allows configuration of intervals smaller than a millisecond.

The PublishingOffsetis an array of DataType Durationthat defines the time in milliseconds for the offset in the PublishingIntervalcycle of sending the NetworkMessageto the network.

Any negative value indicates that the PublishingOffsetis not configured and the timing inside the PublishingIntervalis application specific.

The Duration DataTypeis a subtype of Doubleand allows configuration of intervals smaller than a millisecond.

Figure 28depicts how the different variations of PublishingOffsetsettings affect sending of multiple NetworkMessages.

image031.png

Figure 28– PublishingOffset options for multiple NetworkMessages

If all DataSetsof a group are transferred with a single NetworkMessage, the scalar value or the first value in the array defines the offset for sending the NetworkMessagerelative to the start of the PublishingIntervalcycle. If the DataSetsof a group are sent in a series of NetworkMessages, the values in the array define the offsets of sending the NetworkMessagesrelative to the start of the PublishingIntervalcycle. If a scalar value is configured, the first NetworkMessageis sent at the offset and the following NetworkMessages are sent immediately after each other. If more NetworkMessages are available for sending than offset values in the array, the offset for the remaining NetworkMessages is extrapolated from the last two offset values in the array.

The PublishingInterval, the SamplingOffsetthe PublishingOffsetand the timestamp in the NetworkMessageheader shall use the same time base.

This Structure DataTypeis used to represent the UADP NetworkMessagemapping specific WriterGroup parameters. It is a subtype of WriterGroupMessageDataTypedefined in 6.2.6.7.3.

The UadpWriterGroupMessageDataTypeis formally defined in Table 84.

Table 84– UadpWriterGroupMessageDataType structure

Name

Type

Description

UadpWriterGroupMessageDataType

Structure

Subtype of WriterGroupMessageDataTypedefined in 6.2.6.7.3

GroupVersion

VersionTime

Defined in 6.3.1.1.2.

DataSetOrdering

DataSetOrderingType

Defined in 6.3.1.1.3.

NetworkMessageContentMask

UadpNetworkMessageContentMask

Defined in 6.3.1.1.4.

SamplingOffset

Duration

Defined in 6.3.1.1.5.

PublishingOffset

Duration[]

Defined in 6.3.1.1.6.

Its representation in the AddressSpace is defined in Table 85.

Table 85– UadpWriterGroupMessageDataType definition

Attributes

Value

BrowseName

UadpWriterGroupMessageDataType

IsAbstract

False

Subtype of WriterGroupMessageDataTypedefined in 6.2.6.7.3.

Conformance Units

PubSub Parameters UADP

There are no UADP specific message mapping parameters defined for the ReaderGroup.

The configuration of the DataSetWritersin a WriterGroupcan result in a fixed NetworkMessagelayout where all DataSetshave a static position between NetworkMessages.

In this case the parametersNetworkMessageNumberand DataSetOffsetprovide information about the static position of the DataSetMessagein a NetworkMessage Subscriberscan rely on. If the value of one of the two parameters is 0, the position is not guaranteed to be static.

NOTE A Publishercan only provide valid values for the parameters NetworkMessageNumberand DataSetOffsetif the message mapping allows keeping the value for these Propertiesconstant unless the configuration of the WriterGroupis changed.

The DataSetMessageContentMaskdefines the flags for the content of the DataSetMessageheader. The UADP message mapping specific flags are defined by the UadpDataSetMessageContentMask DataType.

The UadpDataSetMessageContentMask DataTypeis formally defined in Table 86.

Table 86– UadpDataSetMessageContentMask Values

Value

Bit No.

Description

Timestamp

0

If this flag is set, a timestamp shall be included in the DataSetMessageheader.

PicoSeconds

1

If this flag is set, a PicoSecondstimestamp field shall be included in the DataSetMessageheader. This flag is ignored if the Timestampflag is not set.

Status

2

If this flag is set, the DataSetMessagestatus is included in the DataSetMessageheader. The rules for creating the DataSetMessagestatus are defined in Table 26.

MajorVersion

3

If this flag is set, the ConfigurationVersion.MajorVersionis included in the DataSetMessageheader.

MinorVersion

4

If this flag is set, the ConfigurationVersion.MinorVersionis included in the DataSetMessageheader.

SequenceNumber

5

If this flag is set, the DataSetMessageSequenceNumber is included in the DataSetMessage header.

The UadpDataSetMessageContentMaskrepresentation in the AddressSpaceis defined in Table 87.

Table 87– UadpDataSetMessageContentMask definition

Attribute

Value

BrowseName

UadpDataSetMessageContentMask

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of UInt32 defined in OPC 10000-5

HasProperty

Variable

OptionSetValues

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters UADP

The parameter ConfiguredSizewith the DataType UInt16defines the fixed size in bytes a DataSetMessageuses inside a NetworkMessage. The default value is 0 and it indicates a dynamic length. If a DataSetMessagewould be smaller in size (e.g. because of the current values that are encoded) the DataSetMessageis padded with bytes with value zero. In case it would be larger, the Publishershall set bit 0 of the DataSetFlags1to false to indicate that the DataSetMessageis not valid.

NOTE The parameter ConfiguredSizecan be used for different reasons. One reason is the reservation of space inside a NetworkMessageby setting ConfiguredSizeto a higher value than the assigned DataSetactually requires. Modifications (e.g. extensions) of the DataSetwould then not change the required bandwidth on the network which reduces the risk of side effects. Another reason would be to maintain predictable network behaviour even when using a volatile field DataTypeslike Stringor ByteString.

The parameter NetworkMessageNumberwith the DataType UInt16is the number of the NetworkMessageinside a PublishingIntervalin which this DataSetMessageis published. The default value is 0 and indicates that the number of the NetworkMessageis not fixed.

The NetworkMessageshall have a fixed layout if the PayloadHeaderflag in the NetworkMessageContentMaskis false.

If the NetworkMessagelayout is fixed and all DataSetMessagesof a WriterGroupfit into one single NetworkMessage, the value of NetworkMessageNumbershall be 1. If the DataSetMessagesof a WriterGroupare distributed or chunked over more than one NetworkMessage, the first NetworkMessagein a PublishingIntervalshall be generated with the value 1, the following NetworkMessagesshall be generated with incrementing NetworkMessageNumbers. To avoid a roll-over the number of NetworkMessagesgenerated from one WriterGroupwithin one PublishingIntervalis limited to 65535.

The parameter DataSetOffsetwith the DataType UInt16is the offset in bytes inside a NetworkMessageat which the DataSetMessageis located, relative to the beginning of the NetworkMessage.

The default value 0 indicates that the position of the DataSetMessagein a NetworkMessageis not fixed. If the DataSetWriteris disabled and the DataSetOffsetis not 0, the valid flag of the DataSetFlags1in the DataSetMessageheader at the offset shall be false.

This parameter should be set if the PayloadHeaderflag in the NetworkMessageContentMaskis false and therefore the NetworkMessagehas a fixed layout.

This Structure DataTypeis used to represent UADP DataSetMessage mapping specific DataSetWriterparameters. It is a subtype of the DataSetWriterMessageDataTypedefined in 6.2.4.5.3.

The UadpDataSetWriterMessageDataTypeis formally defined in Table 88.

Table 88– UadpDataSetWriterMessageDataType structure

Name

Type

Description

UadpDataSetWriterMessageDataType

Structure

Subtype of DataSetWriterMessageDataTypedefined in 6.2.4.5.3

DataSetMessageContentMask

UadpDataSetMessageContentMask

Defined in 6.3.1.3.2.

ConfiguredSize

UInt16

Defined in 6.3.1.3.3.

NetworkMessageNumber

UInt16

Defined in 6.3.1.3.4.

DataSetOffset

UInt16

Defined in 6.3.1.3.5.

Its representation in the AddressSpace is defined in Table 89.

Table 89– UadpDataSetWriterMessageDataType definition

Attributes

Value

BrowseName

UadpDataSetWriterMessageDataType

IsAbstract

False

Subtype of DataSetWriterMessageDataTypedefined in 6.2.4.5.3.

Conformance Units

PubSub Parameters UADP

The parameterGroupVersion with DataType VersionTime defines the expected value in the field GroupVersion in the header of the NetworkMessage. The default value 0 is defined as null value, and means this parameter shall be ignored.

The parameterNetworkMessageNumber with DataType UInt16 is the number of the NetworkMessageinside a PublishingIntervalin which this DataSetMessageis published. The default value 0 is defined as null value, and means this parameter shall be ignored.

The NetworkMessageshall have a fixed layout if the PayloadHeaderflag in the NetworkMessageContentMaskis false.

The parameterDataSetOffset with DataType UInt16 defines the offset in bytes for the DataSetMessageinside the corresponding NetworkMessagerelative to the beginning of the NetworkMessage. The default value 0 is defined as null value, and means that the position of the DataSetMessagein a NetworkMessageis not fixed.

This parameter should be set if the PayloadHeaderflag in the NetworkMessageContentMaskis false and therefore the NetworkMessagehas a fixed layout.

The parameterDataSetClassIdwith DataType Guid defines a DataSetclass related filter. If the value is null, the DataSetClassIdfilter is not applied.

The NetworkMessageContentMaskwith DataType UadpNetworkMessageContentMaskindicates the optional header fields included in the received NetworkMessages.

The UadpNetworkMessageContentMask DataTypeis defined in 6.3.1.1.4.

The DataSetMessageContentMaskwith the DataType UadpDataSetMessageContentMaskindicates the optional header fields included in the DataSetMessages.

The UadpDataSetMessageContentMaskDataType is defined in 6.3.1.3.2.

The PublishingIntervalwith DataType Duration indicates the rate the Publishersends NetworkMessagesrelated to the DataSet. The start time for the periodic execution of the Subscribershall be calculated according to 6.3.1.1.1.

The ReceiveOffset with DataType Duration defines the time in milliseconds for the offset in the PublishingIntervalcycle for the expected receive time of the NetworkMessagefor the DataSetfrom the network.

Any negative value indicates that the ReceiveOffset is not configured and the timing inside the PublishingIntervalis not defined.

The ProcessingOffsetwith DataType Duration defines the time in milliseconds for the offset in the PublishingIntervalcycle when the received DataSet need to be processed by the application in the Subscriber.

The different timing offsets inside a PublishingIntervalcycle on the Publisherand Subscribersides are shown in Figure 26.

Any negative value indicates that the ProcessingOffsetis not configured and the timing inside the PublishingIntervalis application specific.

This Structure DataTypeis used to represent UADP message mapping specific DataSetReaderparameters. It is a subtype of the DataSetReaderMessageDataTypedefined in 6.2.9.13.3.

The UadpDataSetReaderMessageDataTypeis formally defined in Table 90.

Table 90– UadpDataSetReaderMessageDataType structure

Name

Type

Description

UadpDataSetReaderMessageDataType

Structure

Subtype of DataSetReaderMessageDataTypedefined in 6.2.9.13.3.

GroupVersion

VersionTime

Defined in 6.3.1.4.1.

NetworkMessageNumber

UInt16

Defined in 6.3.1.4.2.

DataSetOffset

UInt16

Defined in 6.3.1.4.3.

DataSetClassId

Guid

Defined in 6.3.1.4.4.

Network‌Message‌ContentMask

UadpNetworkMessageContentMask

Defined in 6.3.1.4.5.

DataSetMessage‌ContentMask

UadpDataSetMessageContentMask

Defined in 6.3.1.4.6.

PublishingInterval

Duration

Defined in 6.3.1.4.7.

ReceiveOffset

Duration

Defined in 6.3.1.4.8.

ProcessingOffset

Duration

Defined in 6.3.1.4.9.

Its representation in the AddressSpace is defined in Table 91.

Table 91– UadpDataSetReaderMessageDataType definition

Attributes

Value

BrowseName

UadpDataSetReaderMessageDataType

IsAbstract

False

Subtype of DataSetReaderMessageDataTypedefined in 6.2.9.13.3.

Conformance Units

PubSub Parameters UADP

The parameter NetworkMessageContentMaskdefines the optional header fields to be included in the NetworkMessagesproduced by the WriterGroup. The DataTypefor the JSON NetworkMessagemapping is JsonNetworkMessageContentMask.

The DataType JsonNetworkMessageContentMaskis formally defined in Table 92.

Table 92– JsonNetworkMessageContentMask values

Value

Bit No.

Description

NetworkMessageHeader

0

The JSON NetworkMessageheader is included in the NetworkMessages.

If this bit is false, bits 3 and 4 shall be 0.

DataSetMessageHeader

1

The JSON DataSetMessageheader is included in each DataSetMessage.

If this bit is false then the DataSetMessageContentMaskfor the DataSetWritersis ignored (see 6.3.2.3.1).

SingleDataSetMessage

2

Each JSON NetworkMessagecontains only one DataSetMessage.

PublisherId

3

The PublisherIdis included in the NetworkMessages.

DataSetClassId

4

The DataSetClassIdis included in the NetworkMessages.

The NetworkMessagecan only contain DataSetMessageswith the same DataSetClassId. If DataSetMessageshave different DataSetClassIdsthey must be sent in individual NetworkMessages.

ReplyTo

5

Reserved.

The JsonNetworkMessageContentMaskrepresentation in the AddressSpaceis defined in Table 93.

Table 93– JsonNetworkMessageContentMask definition

Attribute

Value

BrowseName

JsonNetworkMessageContentMask

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of UInt32 defined in OPC 10000-5

HasProperty

Variable

OptionSetValues

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters JSON

This Structure DataTypeis used to represent the JSON NetworkMessagemapping specific WriterGroupparameters. It is a subtype of WriterGroupMessageDataTypedefined in 6.2.6.7.3.

The JsonWriterGroupMessageDataTypeis formally defined in Table 94.

Table 94– JsonWriterGroupMessageDataType structure

Name

Type

Description

JsonWriterGroupMessageDataType

Structure

Subtype of WriterGroupMessageDataTypedefined in 6.2.6.7.3.

NetworkMessageContentMask

JsonNetworkMessageContentMask

Defined in 6.3.2.1.1.

Its representation in the AddressSpace is defined in Table 95.

Table 95– JsonWriterGroupMessageDataType definition

Attributes

Value

BrowseName

JsonWriterGroupMessageDataType

IsAbstract

False

Subtype of WriterGroupMessageDataTypedefined in 6.2.6.7.3.

Conformance Units

PubSub Parameters JSON

There are no JSON specific message mapping parameters defined for the ReaderGroup.

The DataSetMessageContentMaskdefines the flags for the content of the DataSetMessageheader. The JSON message mapping specific flags are defined by the JsonDataSetMessageContentMask DataType.

The JsonDataSetMessageContentMask DataTypeis formally defined in Table 96.

Table 96– JsonDataSetMessageContentMask values

Value

Bit No.

Description

DataSetWriterId

0

If this flag is set, a DataSetWriterId shall be included in the DataSetMessageheader.

MetaDataVersion

1

If this flag is set, the ConfigurationVersionis included in the DataSetMessageheader.

SequenceNumber

2

If this flag is set, the DataSetMessageSequenceNumber is included in the DataSetMessage header.

Timestamp

3

If this flag is set, a timestamp shall be included in the DataSetMessageheader.

Status

4

If this flag is set, an overall status is included in the DataSetMessageheader.

MessageType

5

If this flag is set, the message type is included in the DataSetMessageheader.

DataSetWriterName

6

If this flag is set, a DataSetWriterName shall be included in the DataSetMessageheader.

ReversibleFieldEncoding

7

If this flag is set, the DataSetMessage fields are encoded in the reversible JSON encoding and in the non-reversible JSON encoding otherwise.

The JsonDataSetMessageContentMask representation in the AddressSpaceis defined in Table 97.

Table 97– JsonDataSetMessageContentMask definition

Attribute

Value

BrowseName

JsonDataSetMessageContentMask

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of UInt32 defined in OPC 10000-5

HasProperty

Variable

OptionSetValues

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters JSON

This Structure DataTypeis used to represent JSON DataSetMessagemapping specific DataSetWriterparameters. It is a subtype of the DataSetWriterMessageDataTypedefined in 6.2.4.5.3.

The JsonDataSetWriterMessageDataTypeis formally defined in Table 98.

Table 98– JsonDataSetWriterMessageDataType structure

Name

Type

Description

JsonDataSetWriterMessageDataType

Structure

Subtype of DataSetWriterMessageDataTypedefined in 6.2.4.5.3.

DataSetMessageContentMask

JsonDataSetMessageContentMask

Defined in 6.3.2.3.1.

Its representation in the AddressSpace is defined in Table 99.

Table 99– JsonDataSetWriterMessageDataType definition

Attributes

Value

BrowseName

JsonDataSetWriterMessageDataType

IsAbstract

False

Subtype of DataSetWriterMessageDataTypedefined in 6.2.4.5.3.

Conformance Units

PubSub Parameters JSON

The NetworkMessageContentMaskwith DataType JsonNetworkMessageContentMaskindicates the optional header fields included in the received NetworkMessages. The JsonNetworkMessageContentMask DataTypeis defined in 6.3.2.1.1.

The DataSetMessageContentMaskwith the DataType JsonDataSetMessageContentMaskindicates the optional header fields included in the DataSetMessages.

The JsonDataSetMessageContentMaskDataType is defined in 6.3.2.3.1.

This Structure DataTypeis used to represent JSON DataSetMessagemapping specific DataSetReaderparameters. It is a subtype of the DataSetReaderMessageDataTypedefined in 6.2.9.13.3.

The JsonDataSetReaderMessageDataTypeis formally defined in Table 100.

Table 100– JsonDataSetReaderMessageDataType structure

Name

Type

Description

JsonDataSetReaderMessageDataType

Structure

Subtype of DataSetReaderMessageDataTypedefined in 6.2.9.13.3.

NetworkMessageContentMask

JsonNetworkMessageContentMask

Defined in 6.3.2.4.1.

DataSetMessageContentMask

JsonDataSetMessageContentMask

Defined in 6.3.2.4.2.

Its representation in the AddressSpace is defined in Table 101.

Table 101– JsonDataSetReaderMessageDataType definition

Attributes

Value

BrowseName

JsonDataSetReaderMessageDataType

IsAbstract

False

Subtype of DataSetReaderMessageDataTypedefined in 6.2.9.13.3.

Conformance Units

PubSub Parameters JSON

The QosDataTypesdefined in the following chapters are used in the DatagramQosparameter in different datagram specific transport protocol mapping settings.

The DatagramQoscontains an array of QosDataTypes. The array is null or empty if no QoS related parameters are set.

The DatagramQosparameter is always combined with a QosCategoryparameter. Depending on the content of the QosCategory String, different elements need to be present within the DatagramQosarray.

The specific processing of the QosCategoryand DatagramQoscontent is described in 5.4.5.4.

Standard QosCategoryvalues are defined in Table 102.

Table 102– Standard QosCategory values

QosCategory

Description

Null or empty

This category indicates best-effort is used.

DatagramQosshall be null or empty.

opc.qos.cat://priority

This category indicates priority is used.

DatagramQosshall contain one element of TransmitQosPriorityDataTypeor ReceiveQosPriorityDataTypeand optionally further elements which may be omitted.

This Structure DataTypeis an abstract base type for Structureswith QoS related parameters. The QosDataTypeis formally defined in Table 103.

Table 103– QosDataType structure

Name

Type

Description

QosDataType

Structure

The QosDataType Structurerepresentation in the AddressSpaceis defined in Table 104.

Table 104– QosDataType definition

Attributes

Value

BrowseName

QosDataType

IsAbstract

True

Subtype of Structure defined in OPC 10000-5.

Conformance Units

PubSub Parameters QoS

This Structure DataTypeis an abstract base type for Structureswith transmit QoS related parameters. The TransmitQosDataTypeis formally defined in Table 105.

Table 105– TransmitQosDataType structure

Name

Type

Description

TransmitQosDataType

Structure

The TransmitQosDataType Structurerepresentation in the AddressSpaceis defined in Table 106.

Table 106– TransmitQosDataType definition

Attributes

Value

BrowseName

TransmitQosDataType

IsAbstract

True

Subtype of QosDataType defined in 6.4.1.1.2.

Conformance Units

PubSub Parameters QoS

The PriorityLabelwith DataType Stringspecifies the priority of the according sender. The network stack will use the PriorityLabelto look up the priority settings for the transport protocol headers.

The priority labels defined by OPC UA should have the following form:

opc.qos.lbl://<label>

Example values are "opc.qos.lbl://low" or "opc.qos.lbl://high". The mapping is described in 5.4.5.4.

Note: This version does not define concrete labels. The engineering process needs to provide them and also build up the PriorityMappingTable in OPC 10000-22accordingly.

This Structure DataTypeis used to represent the priority lable specific transmit QoS parameters. It is a subtype of the TransmitQosDataTypedefined in 6.4.1.1.3.

The TransmitQosPriorityDataTypeis formally defined in Table 107.

Table 107– TransmitQosPriorityDataType structure

Name

Type

Description

TransmitQosPriorityDataType

Structure

Subtype of TransmitQosDataTypedefined in 6.4.1.1.3.

PriorityLabel

String

Defined in 6.4.1.1.4.1.

Its representation in the AddressSpace is defined in Table 108.

Table 108– TransmitQosPriorityDataType definition

Attributes

Value

BrowseName

TransmitQosPriorityDataType

IsAbstract

False

Subtype of TransmitQosDataTypedefined in 6.4.1.1.3.

Conformance Units

PubSub Parameters QoS

This Structure DataTypeis an abstract base type for Structureswith receive QoS related parameters. The ReceiveQosDataTypeis formally defined in Table 109.

Table 109– ReceiveQosDataType structure

Name

Type

Description

ReceiveQosDataType

Structure

The ReceiveQosDataType Structurerepresentation in the AddressSpaceis defined in Table 110.

Table 110– ReceiveQosDataType definition

Attributes

Value

BrowseName

ReceiveQosDataType

IsAbstract

True

Subtype of QosDataType defined in 6.4.1.1.2.

Conformance Units

PubSub Parameters QoS

The PriorityLabelwith DataType Stringspecifies the priority of the according sender.

Futher details are defined in 6.4.1.1.4.1.

This Structure DataTypeis used to represent the priority lable specific receive QoS parameters. It is a subtype of the ReceiveQosDataTypedefined in 6.4.1.1.5.

The ReceiveQosPriorityDataTypeis formally defined in Table 111.

Table 111– TransmitQosPriorityDataType structure

Name

Type

Description

ReceiveQosPriorityDataType

Structure

Subtype of ReceiveQosDataTypedefined in 6.4.1.1.5.

PriorityLabel

String

Defined in 6.4.1.1.6.1.

Its representation in the AddressSpace is defined in Table 112.

Table 112– ReceiveQosPriorityDataType definition

Attributes

Value

BrowseName

ReceiveQosPriorityDataType

IsAbstract

False

Subtype of ReceiveQosDataTypedefined in 6.4.1.1.5.

Conformance Units

PubSub Parameters QoS

The DiscoveryAddress parameter contains the network address information used for the discovery probe and announcement messages. The different Structure DataTypesused to represent the Address are defined in 6.2.7.5.3.

This Structure DataTypeis used to represent the datagram specific transport mapping parameters for PubSubConnections. It is a subtype of the ConnectionTransportDataTypedefined in 6.2.7.5.2.

The DatagramConnectionTransportDataTypeis formally defined in Table 113.

Table 113– DatagramConnectionTransportDataType structure

Name

Type

Description

Allow Subtypes

DatagramConnectionTransportDataType

Structure

Subtype of ConnectionTransportDataTypedefined in 6.2.6.4.

DiscoveryAddress

NetworkAddressDataType

Defined in 6.4.1.2.1.

The NetworkAddressDataTypeis defined in 6.2.7.5.3.

True

Its representation in the AddressSpace is defined in Table 114.

Table 114– DatagramConnectionTransportDataType definition

Attributes

Value

BrowseName

DatagramConnectionTransportDataType

IsAbstract

False

Subtype of ConnectionTransportDataTypedefined in 6.2.7.5.2.

Conformance Units

PubSub Parameters Datagram

The DiscoveryAnnounceRatewith DataType UInt32defines the interval in seconds used for cyclic sending of discovery anouncement messages related to this connection.

The default value is 0 and defines that discovery announcement messages are only sent as response to discovery probe messages.

The DiscoveryMaxMessageSizewith DataType UInt32indicates the maximum size in bytes for NetworkMessagescreated for discovery. It refers to the size of the complete NetworkMessageincluding padding and signature without any additional headers added by the transport protocol mapping. If the size of a NetworkMessageexceeds the DiscoveryMaxMessageSize,the behaviour depends on the message mapping.

The default value is 0 and defines that the default size for the transport protocol ist used. The default size is defined for the transport protocol mappings in 7.3.

NOTE The value for the DiscoveryMaxMessageSize should be configured in a way that ensures that NetworkMessagestogether with additional headers added by the transport protocol are still smaller than or equal than the transport protocol MTU.

Selects the general category of QoS the PubSubConnectionrequires. Further details are defined in 6.4.1.1.1.

The parameter shall be null or empty if no QoS related parameters are set.

The DatagramQosparameter contains QoS related parameters for the PubSubConnectionas array of QosDataType Structures. The abstract DataTypeis defined in 6.4.1.1.2. The concrete subtypes are used to represent different QoS settings for transmit and receive that can be combined in the array.

The parameter shall be null or empty if no QoS related parameters are set.

This Structure DataTypeis used to represent the datagram specific transport mapping parameters for a PubSubConnection.

It is a subtype of the DatagramConnectionTransportDataTypedefined in 6.4.1.2.2.

The DatagramConnectionTransport2DataTypeis formally defined in Table 115.

Table 115– DatagramConnectionTransport2DataType structure

Name

Type

Description

Allow Subtypes

DatagramConnectionTransport2DataType

Structure

Subtype of ConnectionTransportDataTypedefined in 6.2.6.4.

DiscoveryAnnounceRate

UInt32

Defined in 6.4.1.2.3.

DiscoveryMaxMessageSize

UInt32

Defined in 6.4.1.2.4.

QosCategory

String

Defined in 6.4.1.2.5.

DatagramQos

QosDataType[]

Defined in 6.4.1.2.6.

True

Its representation in the AddressSpace is defined in Table 116.

Table 116– DatagramConnectionTransport2DataType definition

Attributes

Value

BrowseName

DatagramConnectionTransport2DataType

IsAbstract

False

Subtype of DatagramConnectionTransportDataTypedefined in 6.4.1.2.2.

Conformance Units

PubSub Parameters Datagram

The MessageRepeatCountwith DataType Bytedefines how many times every NetworkMessageis repeated. The default value is 0 and disables the repeating.

The MessageRepeatDelaywith DataType Durationdefines the time between NetworkMessagerepeats in milliseconds. The parameter shall be ignored if the parameter MessageRepeatCountis set to 0.

This Structure DataTypeis used to represent the datagram specific transport mapping parameters for WriterGroups. It is a subtype of the WriterGroupTransportDataTypedefined in 6.2.6.7.2.

The DatagramWriterGroupTransportDataTypeis formally defined in Table 117.

Table 117– DatagramWriterGroupTransportDataType structure

Name

Type

Description

DatagramWriterGroupTransportDataType

Structure

Subtype of WriterGroupTransportDataTypedefined in 6.2.6.7.2.

MessageRepeatCount

Byte

Defined in 6.4.1.3.1.

MessageRepeatDelay

Duration

Defined in 6.4.1.3.2.

Its representation in the AddressSpace is defined in Table 118.

Table 118– DatagramWriterGroupTransportDataType definition

Attributes

Value

BrowseName

DatagramWriterGroupTransportDataType

IsAbstract

False

Subtype of WriterGroupTransportDataTypedefined in 6.2.6.7.2.

Conformance Units

PubSub Parameters Datagram

The Address parameter contains the network address information for the communication middleware related to the WriterGroup. The different Structure DataTypesused to represent the Addressare defined in 6.2.7.5.3.

The parameter shall be null if an address is not set at this level. If the parameter is set, it overwrites the Addresson the PubSubConnection.

Selects the general category of QoS the WriterGrouprequires. Further details are defined in 6.4.1.1.1.

The parameter shall be null or empty if no QoS related parameters are set.

The DatagramQosparameter contains QoS related parameters for the WriterGroupas array of TransmitQosDataType Structures. The abstract TransmitQosDataTypeis defined in 6.4.1.1.3. The concrete subtypes are used to represent different QoS settings that can be combined in the array.

The parameter shall be null or empty if no QoS related parameters are set.

The DiscoveryAnnounceRatewith DataType UInt32defines the interval in seconds used for cyclic sending of discovery anouncement messages related to the WriterGroup.

The default value is 0 and defines that discovery announcement messages are only sent as response to discovery probe messages.

The Topicparameter with DataType Stringcontains the unique name of the data stream produced by the WriterGroupwithin a Message Oriented Middleware.

A unique default name can be created by combining the PublisherIdwith the WriterGroupIdusing ‘.’ as separator.

This Structure DataTypeis used to represent the datagram specific transport mapping parameters for WriterGroups. It is a subtype of the DatagramWriterGroupTransportDataTypedefined in 6.4.1.3.3.

The DatagramWriterGroupTransportDataTypeis formally defined in Table 119.

Table 119– DatagramWriterGroupTransport2DataType structure

Name

Type

Description

Allow Subtypes

DatagramWriterGroup‌Transport2DataType

Structure

Subtype of DatagramWriterGroupTransportDataType defined in 6.4.1.3.3.

Address

NetworkAddressDataType

Defined in 6.4.1.3.4.

True

QosCategory

String

Defined in 6.4.1.3.5.

DatagramQos

TransmitQosDataType[]

Defined in 6.4.1.3.6.

True

DiscoveryAnnounceRate

UInt32

Defined in 6.4.1.3.7.

Topic

String

Defined in 6.4.1.3.8.

Its representation in the AddressSpace is defined in Table 120.

Table 120– DatagramWriterGroupTransport2DataType definition

Attributes

Value

BrowseName

DatagramWriterGroupTransport2DataType

IsAbstract

False

Subtype of DatagramWriterGroupTransportDataTypedefined in 6.4.1.3.3.

Conformance Units

PubSub Parameters Datagram

There are no datagram-specific transport mapping parameters defined for the ReaderGroup.

There are no datagram-specific transport mapping parameters defined for the DataSetWriter.

The Address parameter contains the network address information for the communication middleware related to the DataSetReader. The different Structure DataTypesused to represent the Addressare defined in 6.2.7.5.3.

The parameter shall be null if an address is not set at this level. If the parameter is set, it overwrites the Addresson the PubSubConnection.

Selects the general categorty of QoS the DataSetReaderrequires. Further details are defined in 6.4.1.1.1.

The parameter shall be null or empty if no QoS related parameters are set.

The DatagramQosparameter contains the QoS related parameters for the DataSetReaderas array of ReceiveQosDataType Structures. The abstract ReceiveQosDataTypeis defined in 6.4.1.1.5. The concrete subtypes are used to represent different QoS settings that can be combined in the array.

The parameter shall be null or empty if no QoS related parameters are set.

The Topicparameter with DataType Stringcontains the unique name of the data stream from the Publisherthat contains the DataSetMessagesof interest for the DataSetReader. The Topicis defined by the Publisher.

This Structure DataTypeis used to represent the datagram transport mapping parameters for DataSetReaders. It is a subtype of the DataSetReaderTransportDataTypedefined in 6.2.9.13.2.

The DatagramDataSetReaderTransportDataTypeis formally defined in Table 121.

Table 121– DatagramDataSetReaderTransportDataType structure

Name

Type

Description

Allow Subtypes

DatagramDataSetReaderTransportDataType

Structure

Subtype of DataSetReaderTransportDataTypedefined in 6.2.9.13.2.

Address

NetworkAddressDataType

Defined in 6.4.1.6.1.

True

QosCategory

String

Defined in 6.4.1.6.2.

DatagramQos

ReceiveQosDataType[]

Defined in 6.4.1.6.3.

True

Topic

String

Defined in 6.4.1.6.4.

Its representation in the AddressSpace is defined in Table 122.

Table 122– DatagramDataSetReaderTransportDataType definition

Attributes

Value

BrowseName

DatagramDataSetReaderTransportDataType

IsAbstract

False

Subtype of DataSetReaderTransportDataTypedefined in 6.2.9.13.2.

Conformance Units

PubSub Parameters Datagram

The BrokerTransportQualityOfServiceEnumeration DataTypeis formally defined in Table 123.

The mapping of quality of service to the broker transport specific implementation is defined in 7.3.4.5for AMQP and 7.3.5.5for MQTT.

Table 123– BrokerTransportQualityOfService values

Name

Value

Description

NotSpecified

0

The value is not specified and the value of the parent object shall be used.

BestEffort

1

The transport shall make the best effort to deliver a message. Worst case this means data loss or data duplication are possible.

AtLeastOnce

2

The transport guarantees that the message shall be delivered at least once, but duplication is possible. Readers shall de-duplicate based on message id or sequence number.

AtMostOnce

3

The transport guarantees that the message shall be sent once, but if it is lost it is not sent again.

ExactlyOnce

4

The transport handshake guarantees that the message shall be delivered to the broker exactly once and not more or less.

The BrokerTransportQualityOfServicerepresentation in the AddressSpaceis defined in Table 124.

Table 124– BrokerTransportQualityOfService definition

Attribute

Value

BrowseName

BrokerTransportQualityOfService

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Others

Subtype of Enumeration defined in OPC 10000-5

HasProperty

Variable

EnumStrings

LocalizedText []

PropertyType

Conformance Units

PubSub Parameters Broker

The ResourceUriparameter of DataType Stringenables the transport implementation to look up a configured key from the corresponding KeyCredentialConfigurationTypeinstance defined in OPC 10000-12to use for authenticating access to the Brokerat the connection level or for queues configured below the connection.

If null or empty, no authentication or anonymous authentication shall be assumed as default unless authentication settings are provided on a subordinated WriterGroupor a DataSetWriterto authenticate access to individual queues.

The parameter AuthenticationProfileUriof DataType Stringallows the selection of the authentication protocol used by the transport implementation. This maps to the ProfileUri Propertyin the KeyCredentialConfigurationTypeinstance selected through the ResourceUriand AuthenticationProfileUri Strings.

This parameter is optional. If more than one ProfileUridescribing the protocol to use for authentication is configured and this value is null or empty, the transport will choose one. If the transport cannot fine a suitable authentication mechanism in the ProfileUriarray, the transport sets the Stateof the PubSubConnectionis set to Error.

This Structure DataTypeis used to represent the broker-specific transport mapping parameters for the PubSubConnection. It is a subtype of the ConnectionTransportDataTypedefined in 6.2.7.5.2.

The BrokerConnectionTransportDataTypeis formally defined in Table 125.

Table 125– BrokerConnectionTransportDataType structure

Name

Type

Description

BrokerConnectionTransportDataType

Structure

Subtype of the ConnectionTransportDataTypedefined in 6.2.6.4.

ResourceUri

String

Defined in 6.4.2.2.1.

AuthenticationProfileUri

String

Defined in 6.4.2.2.2.

Its representation in the AddressSpace is defined in Table 126.

Table 126– BrokerConnectionTransportDataType definition

Attributes

Value

BrowseName

BrokerConnectionTransportDataType

IsAbstract

False

Subtype of ConnectionTransportDataTypedefined in 6.2.7.5.2.

Conformance Units

PubSub Parameters Broker

The QueueNameparameter with DataType Stringspecifies the queue in the Brokerthat receives NetworkMessagessent by the Publisher. This could be the name of a queue or topic defined in the Broker.

The ResourceUriproperty of DataType Stringallows the transport implementation to look up the configured key from the corresponding KeyCredentialConfigurationTypeinstance defined in OPC 10000-12to use for authenticating access to the specified queue.

If this Stringis not null or empty, it overrides the ResourceUriof the PubSubConnectionauthentication settings.

The parameter AuthenticationProfileUriof DataType Stringallows the selection of the authentication protocol used by the transport implementation for authenticating access to the specified queue.

If this Stringis not null or empty, it overrides the AuthenticationProfileUriof the PubSubConnectiontransport settings defined in 6.4.2.2.2.

The RequestedDeliveryGuaranteeparameter with DataType BrokerTransportQualityOfServicespecifies the delivery guarantees that shall apply to all NetworkMessagespublished by the WriterGroupunless otherwise specified on the DataSetWritertransport settings. The DataType BrokerTransportQualityOfServiceis defined in 6.4.2.1.

The value NotSpecifiedis not allowed on the WriterGroup. If the selected delivery guarantee cannot be applied, the WriterGroupshall set the state to Error.

This Structure DataTypeis used to represent the broker-specific transport mapping parameters for WriterGroups. It is a subtype of the WriterGroupTransportDataTypedefined in 6.2.6.7.2.

The BrokerWriterGroupTransportDataTypeis formally defined in Table 127.

Table 127– BrokerWriterGroupTransportDataType structure

Name

Type

Description

BrokerWriterGroupTransportDataType

Structure

Subtype of WriterGroupTransportDataTypedefined in 6.2.6.7.2.

QueueName

String

Defined in 6.4.2.3.1.

ResourceUri

String

Defined in 6.4.2.3.2.

AuthenticationProfileUri

String

Defined in 6.4.2.3.3.

RequestedDeliveryGuarantee

BrokerTransportQualityOfService

Defined in 6.4.2.3.4.

Its representation in the AddressSpace is defined in Table 128.

Table 128– BrokerWriterGroupTransportDataType definition

Attributes

Value

BrowseName

BrokerWriterGroupTransportDataType

IsAbstract

False

Subtype of WriterGroupTransportDataTypedefined in 6.2.6.7.2.

Conformance Units

PubSub Parameters Broker

There are no broker specific transport mapping parameters defined for the ReaderGroup.

The QueueNameparameter with DataType Stringspecifies the queue in the Brokerthat receives NetworkMessagessent by the Publisherfor the DataSetWriter. This could be the name of a queue or topic defined in the Broker. This parameter is only valid if the NetworkMessagesfrom the WriterGroupcontain only one DataSetMessage.

If this Stringis not null or empty, it overrides the QueueNameof the WriterGrouptransport settings.

The ResourceUriproperty of DataType Stringallows the transport implementation to look up the configured key from the corresponding KeyCredentialConfigurationTypeinstance defined in OPC 10000-12to use for authenticating access to the specified queue.

If this Stringis not null or empty, it overrides the ResourceUriof the WriterGroup authentication settings.

The parameter AuthenticationProfileUriof DataType Stringallows the selection of the authentication protocol used by the transport implementation for authenticating access to the specified queue.

If this Stringis not null or empty, it overrides the AuthenticationProfileUriof the WriterGroup transport settings.

The RequestedDeliveryGuaranteeparameter with DataType BrokerTransportQualityOfServicespecifies the delivery guarantees that shall apply to all messages published by the DataSetWriter. The DataType BrokerTransportQualityOfServiceis defined in 6.4.2.1.

If the value is not NotSpecified, it overrides the RequestedDeliveryGuaranteeof the WriterGrouptransport settings. Overriding the WriterGroupsetting is only valid if the DataSetWriteralso overrides the QueueName.

If the selected delivery guarantee cannot be applied, the DataSetWritershall set the state to Error.

For message mappings like UADP, the Subscriberneeds access to the DataSetMetaDatato process received DataSetMessages. The Publisher can provide the DataSetMetaDatathrough a dedicated queue.

The parameter MetaDataQueueNamewith the DataType Stringspecifies the Brokerqueue that receives messages with DataSetMetaDatasent by the Publisherfor this DataSetWriter. This could be the name of a queue or topic defined in the Broker.

Specifies the interval in milliseconds with Data Type Duration at which the Publisher shall send the DataSetMetaData to the MetaDataQueueName. A value of 0 or any negative value shall be interpreted as infinite interval.

The broker transport shall publish all messages with an expiration time that is equal to or greater than this value.

If the update time is infinite, a broker transport shall attempt to negotiate message retention if possible. In this case the DataSetMetaDatais only sent if the ConfigurationVersionof the corresponding DataSetMetaDatais changed and DataSetWritersshall try to negotiate AtLeastOnceor ExactlyOncedelivery guarantees with the broker for any DataSetMetaDatasent to ensure metadata is available to readers.

The DataSetWriterPropertiessettings apply also to DataSetMetaDatasent to the queue named through the MetaDataQueueNameparameter.

This Structure DataTypeis used to represent the broker-specific transport mapping parameters for DataSetWriters. It is a subtype of the DataSetWriterTransportDataTypedefined in 6.2.4.5.2.

The BrokerDataSetWriterTransportDataTypeis formally defined in Table 129.

Table 129– BrokerDataSetWriterTransportDataType structure

Name

Type

Description

BrokerDataSetWriterTransportDataType

Structure

Subtype of DataSetWriterTransportDataTypedefined in 6.2.4.5.2.

QueueName

String

Defined in 6.4.2.5.1.

ResourceUri

String

Defined in 6.4.2.5.2.

AuthenticationProfileUri

String

Defined in 6.4.2.5.3.

RequestedDeliveryGuarantee

BrokerTransportQualityOfService

Defined in 6.4.2.5.4.

MetaDataQueueName

String

Defined in 6.4.2.5.5.

MetaDataUpdateTime

Duration

Defined in 6.4.2.5.6.

Its representation in the AddressSpace is defined in Table 130.

Table 130– BrokerDataSetWriterTransportDataType definition

Attributes

Value

BrowseName

BrokerDataSetWriterTransportDataType

IsAbstract

False

Subtype of DataSetWriterTransportDataTypedefined in 6.2.4.5.2.

Conformance Units

PubSub Parameters Broker

The QueueNameparameter with DataType Stringspecifies the queue in the Brokerwhere the DataSetReadercan receive NetworkMessageswith the DataSet of interest sent by the Publisher. This could be the name of a queue or topic defined in the Broker.

The ResourceUriproperty of DataType Stringallows the transport implementation to look up the configured key from the corresponding KeyCredentialConfigurationTypeinstance defined in OPC 10000-12to use for authenticating access to the specified queue.

If this Stringis not null or empty, it overrides the ResourceUriof the PubSubConnectionauthentication settings.

The parameter AuthenticationProfileUriof DataType Stringallows the selection of the authentication protocol used by the transport implementation for authenticating access to the specified queue.

If this Stringis not null or empty, it overrides the AuthenticationProfileUriof the PubSubConnectiontransport settings defined in 6.4.2.2.2.

The RequestedDeliveryGuaranteeparameter with DataType BrokerTransportQualityOfServicespecifies the delivery guarantees the DataSetReadernegotiates with the broker for all messages received. The DataType BrokerTransportQualityOfServiceis defined in 6.4.2.1.

The value NotSpecifiedis not allowed on the DataSetReader. If the selected delivery guarantee cannot be applied, the DataSetReadershall set the state to Error.

The parameter MetaDataQueueNamewith the DataType Stringspecifies the Brokerqueue that provides messages with DataSetMetaDatasent by the Publisherfor the DataSetof interest. This could be the name of a queue or topic defined in the Broker.

This Structure DataTypeis used to represent the broker-specific transport mapping parameters for DataSetReaders. It is a subtype of the DataSetReaderTransportDataTypedefined in 6.2.9.13.2.

The BrokerDataSetReaderTransportDataTypeis formally defined in Table 131.

Table 131– BrokerDataSetReaderTransportDataType structure

Name

Type

Description

BrokerDataSetReaderTransportDataType

Structure

Subtype of DataSetReaderTransportDataTypedefined in 6.2.9.13.2.

QueueName

String

Defined in 6.4.2.6.1.

ResourceUri

String

Defined in 6.4.2.6.2.

AuthenticationProfileUri

String

Defined in 6.4.2.6.3.

RequestedDeliveryGuarantee

BrokerTransportQualityOfService

Defined in 6.4.2.6.4.

MetaDataQueueName

String

Defined in 6.4.2.6.5.

Its representation in the AddressSpace is defined in Table 132.

Table 132– BrokerDataSetReaderTransportDataType definition

Attributes

Value

BrowseName

BrokerDataSetReaderTransportDataType

IsAbstract

False

Subtype of DataSetReaderTransportDataTypedefined in 6.2.9.13.2.

Conformance Units

PubSub Parameters Broker