6.2.9 DataSetReader parameters

6.2.9.1 PublisherId

The parameter PublisherId defines the Publisher to receive NetworkMessages from.

If the value is null, the parameter shall be ignored and all received NetworkMessages pass the PublisherId filter.

Valid DataTypes are UInteger and String.

6.2.9.2 WriterGroupId

The parameter WriterGroupId with DataType UInt16 defines the identifier of the corresponding WriterGroup.

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

6.2.9.3 DataSetWriterId

The parameter DataSetWriterId with DataType UInt16 defines the DataSet selected in the Publisher for the DataSetReader.

If the value is 0 (null), the parameter shall be ignored and all received DataSetMessages pass the DataSetWriterId filter.

6.2.9.4 DataSetMetaData

The parameter DataSetMetaData provides the information necessary to decode DataSetMessages from the Publisher. If the DataSetMetaData changes in the Publisher and the MajorVersion was changed, the DataSetReader needs an update of the DataSetMetaData for further operation. If the update cannot be retrieved in the duration of the MessageReceiveTimeout, the State of the DataSetReader shall change to Error. The related PublishedDataSet is defined in 6.2.3. The DataSetMetaDataType is defined in 6.2.3.2.3. The options for retrieving the update of the DataSetMetaData are described in 5.2.3.

The Subscriber must map namespace indices in received messages if the data is processed in the context of an OPC UA Server information model e.g. if the values are written to target Variables. This affects encoding NodeIds in ExtensionObjects but also all other namespace indices in NodeIds and BrowseNames contained in the messages. If the Subscriber receives Structure DataTypes where the target Variables DataTypes have the same structure but different DataType NodeIds, the Subscriber must verify the consistency of the layout at start-up and must map the complete encoding NodeId when receiving the data.

The Subscriber should verify that the target Variables can handle array and string sizes if the Subscriber has limits and the DataSetMetaData contains size information. This includes ArrayDimensions and MaxStringLength information in the FieldMetaData and the StructureFields of Structure DataTypes. The verification should be executed at the start-up of the DataSetReader and when the DataSetMetaData is updated. The DataSetReader should go into Error state if the verification fails.

If the DataSetMetaData contains an empty fields array, the DataSetReader is configured to receive heartbeat DataSetMessages. For heartbeat DataSetMessages the majorVersion and minorVersion in the configurationVersion shall always be 0 in the configuration and in the DataSetMessages.

6.2.9.5 DataSetFieldContentMask

The parameter DataSetFieldContentMask with DataType DataSetFieldContentMask indicates the fields of a DataValue included in the DataSetMessages. The parameter shall be ignored for heartbeat messages.

The DataSetFieldContentMask DataType is defined in 6.2.4.2.

6.2.9.6 MessageReceiveTimeout

The parameter MessageReceiveTimeout is the maximum acceptable time between two DataSetMessages. The time starts when the state of the DataSetReader changes to Operational. If there is no new DataSetMessage received within this period, the DataSetReader State shall be changed to Error until the next DataSetMessage is received. The DataSetMessages that reset the period include keep-alive and heartbeat messages. A DataSetMessage is 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 DataSetMessage is considered new.

The MessageReceiveTimeout is related to the Publisher side parameters PublishingInterval, KeepAliveTime and KeyFrameCount.

6.2.9.7 KeyFrameCount

The KeyFrameCount with DataType UInt32 is the multiplier of the PublishingInterval that defines the maximum number of times the PublishingInterval expires before a key frame message, with all field values, is received.

For DataSets that 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.

6.2.9.8 HeaderLayoutUri

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 String is 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 Strings are defined in Annex A.

6.2.9.9 SecurityMode

The parameter is defined in 6.2.5.2.

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

6.2.9.10 SecurityGroupId

The parameter is defined in 6.2.5.3.

The parameter shall be null if the SecurityMode is INVALID.

6.2.9.11 SecurityKeyServices

The parameter is defined in 6.2.5.4.

The parameter shall be null if the SecurityMode is INVALID.

The parameter is only used to overwrite the SecurityKeyServices parameter of the ReaderGroup if the SKS is different for the DataSetReader.

6.2.9.12 DataSetReaderProperties

The DataSetReaderProperties parameter is an array of DataType KeyValuePair that specifies additional properties for the configured DataSetReader. The KeyValuePair DataType is defined in OPC 10000-5 and consists of a QualifiedName and 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.

6.2.9.13 DataSetReader structure
6.2.9.13.1 DataSetReaderDataType

This Structure DataType is used to represent the DataSetReader parameters. The DataSetReaderDataType is formally defined in Table 59.

Table 59 – DataSetReaderDataType structure
Name Type Description Allow Subtypes
DataSetReaderDataTypeStructure

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

BooleanThe enabled state of the DataSetReader.

PublisherId

BaseDataTypeDefined in 6.2.9.1.

WriterGroupId

UInt16Defined in 6.2.9.2.

DataSetWriterId

UInt16Defined in 6.2.9.3.

DataSetMetaData

DataSetMetaDataType

Defined in 6.2.9.4.

If the DataSetReaderDataType is 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 DataSetMetaDataType contained in the referenced StandaloneSubscribedDataSetDataType.

DataSetField‌ContentMask

DataSetField‌ContentMaskDefined in 6.2.9.5.

MessageReceiveTimeout

DurationDefined in 6.2.9.6.

KeyFrameCount

UInt32Defined in 6.2.9.7.

HeaderLayoutUri

StringDefined in 6.2.9.8.

SecurityMode

MessageSecurityModeDefined in 6.2.9.9.

SecurityGroupId

StringDefined 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 DataSetReader is configured to receive heartbeat DataSetMessages, the field shall be null.

The StandaloneSubscribedDataSetDataType subtype shall not be used in this structure field.

True

Its representation in the AddressSpace is defined in Table 60.

Table 60 – DataSetReaderDataType definition
Attributes Value
BrowseNameDataSetReaderDataType
IsAbstractFalse
Subtype of Structure defined in OPC 10000-5.
Conformance Units
PubSub Parameters Discovery Extended
6.2.9.13.2 DataSetReaderTransportDataType

This Structure DataType is an abstract base type for transport-specific DataSetReader parameters. The DataSetReaderTransportDataType is formally defined in Table 61.

Table 61 – DataSetReaderTransportDataType structure
Name Type Description
DataSetReaderTransportDataTypeStructure

The DataSetReaderTransportDataType Structure representation in the AddressSpace is defined in Table 62.

Table 62 – DataSetReaderTransportDataType definition
Attributes Value
BrowseNameDataSetReaderTransportDataType
IsAbstractTrue
Subtype of Structure defined in OPC 10000-5.
Conformance Units
PubSub Parameters Discovery Extended
6.2.9.13.3 DataSetReaderMessageDataType

This Structure DataType is an abstract base type for message mapping specific DataSetReader parameters. The DataSetReaderMessageDataType is formally defined in Table 63.

Table 63 – DataSetReaderMessageDataType structure
Name Type Description
DataSetReaderMessageDataTypeStructure

The DataSetReaderMessageDataType Structure representation in the AddressSpace is defined in Table 64.

Table 64 – DataSetReaderMessageDataType definition
Attributes Value
BrowseNameDataSetReaderMessageDataType
IsAbstractTrue
Subtype of Structure defined in OPC 10000-5.
Conformance Units
PubSub Parameters Discovery Extended