The configuration of the DataSetWriters in a WriterGroup can result in a fixed NetworkMessage layout where all DataSets have a static position between NetworkMessages.

In this case the parameters NetworkMessageNumber and DataSetOffset provide information about the static position of the DataSetMessage in a NetworkMessage Subscribers can rely on. If the value of one of the two parameters is 0, the position is not guaranteed to be static.

NOTE A Publisher can only provide valid values for the parameters NetworkMessageNumber and DataSetOffset if the message mapping allows keeping the value for these Properties constant unless the configuration of the WriterGroup is changed.

The DataSetMessageContentMask defines the flags for the content of the DataSetMessage header. The UADP message mapping specific flags are defined by the UadpDataSetMessageContentMask DataType.

The UadpDataSetMessageContentMask DataType is formally defined in Table 87.

Table 87 – UadpDataSetMessageContentMask Values

Value

Bit No.

Description

Timestamp

0

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

PicoSeconds

1

If this flag is set, a PicoSeconds timestamp field shall be included in the DataSetMessage header. This flag is ignored if the Timestamp flag is not set.

Status

2

If this flag is set, the DataSetMessage status is included in the DataSetMessage header. The rules for creating the DataSetMessage status are defined in Table 26.

MajorVersion

3

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

MinorVersion

4

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

SequenceNumber

5

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

The UadpDataSetMessageContentMask representation in the AddressSpace is defined in Table 88.

Table 88 – 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 ConfiguredSize with the DataType UInt16 defines the fixed size in bytes a DataSetMessage uses inside a NetworkMessage. The default value is 0 and it indicates a dynamic length. If a DataSetMessage would be smaller in size (e.g. because of the current values that are encoded) the DataSetMessage is padded with bytes with value zero. In case it would be larger, the Publisher shall set bit 0 of the DataSetFlags1 to false to indicate that the DataSetMessage is not valid.

NOTE The parameter ConfiguredSize can be used for different reasons. One reason is the reservation of space inside a NetworkMessage by setting ConfiguredSize to a higher value than the assigned DataSet actually requires. Modifications (e.g. extensions) of the DataSet would 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 DataTypes like String or ByteString.

The parameter NetworkMessageNumber with the DataType UInt16 is the number of the NetworkMessage inside a PublishingInterval in which this DataSetMessage is published. The default value is 0 and indicates that the number of the NetworkMessage is not fixed.

The NetworkMessage shall have a fixed layout if the PayloadHeader flag in the NetworkMessageContentMask is false.

If the NetworkMessage layout is fixed and all DataSetMessages of a WriterGroup fit into one single NetworkMessage, the value of NetworkMessageNumber shall be 1. If the DataSetMessages of a WriterGroup are distributed or chunked over more than one NetworkMessage, the first NetworkMessage in a PublishingInterval shall be generated with the value 1, the following NetworkMessages shall be generated with incrementing NetworkMessageNumbers. To avoid a roll-over the number of NetworkMessages generated from one WriterGroup within one PublishingInterval is limited to 65535.

The parameter DataSetOffset with the DataType UInt16 is the offset in bytes inside a NetworkMessage at which the DataSetMessage is located, relative to the beginning of the NetworkMessage.

The default value 0 indicates that the position of the DataSetMessage in a NetworkMessage is not fixed. If the DataSetWriter is disabled and the DataSetOffset is not 0, the valid flag of the DataSetFlags1 in the DataSetMessage header at the offset shall be false.

This parameter should be set if the PayloadHeader flag in the NetworkMessageContentMask is false and therefore the NetworkMessage has a fixed layout.

This Structure DataType is used to represent UADP DataSetMessage mapping specific DataSetWriter parameters. It is a subtype of the DataSetWriterMessageDataType defined in 6.2.4.5.3.

The UadpDataSetWriterMessageDataType is formally defined in Table 89.

Table 89 – UadpDataSetWriterMessageDataType structure

Name

Type

Description

UadpDataSetWriterMessageDataType

Structure

Subtype of DataSetWriterMessageDataType defined 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 90.

Table 90 – UadpDataSetWriterMessageDataType definition

Attributes

Value

BrowseName

UadpDataSetWriterMessageDataType

IsAbstract

False

Subtype of DataSetWriterMessageDataType defined in 6.2.4.5.3.

Conformance Units

PubSub Parameters UADP