6 PubSub Communication Parameters ToC Previous Next

6.2 Common Configuration Parameters ToC Previous Next

6.2.3 DataSetWriter Parameters ToC Previous Next

6.2.3.1 DataSetWriterId ToC

The DataSetWriterId with DataType UInt16 defines the unique ID of the DataSetWriter for a PublishedDataSet. It is used to select DataSetMessages for aPublishedDataSet on the Subscriber side.

It shall be unique across all DataSetWriters for a PublisherId.

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

6.2.3.2 DataSetFieldContentMask ToC

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

This DataType defines flags to include DataSet field related information like status and timestamp in addition to the value in the DataSetMessage.

The DataSetFieldContentMask is formally defined in Table 14.

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

Table 14 – DataSetFieldContentMask Values

Value Bit No. Description
DataSet fields 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 RawData flag is set, the fields are represented as RawData and all other bits are ignored.If one of the bits 0 to 4 is set, the fields are represented as DataValue.    
StatusCode 0 The DataValue structure field StatusCode is included in the DataSetMessages.If this flag is set, the fields are represented as DataValue.
SourceTimestamp 1 The DataValue structure field SourceTimestamp is included in the DataSetMessages.If this flag is set, the fields are represented as DataValue.
ServerTimestamp 2 The DataValue structure field ServerTimestamp is included in the DataSetMessages.If this flag is set, the fields are represented as DataValue.
SourcePicoSeconds 3 The DataValue structure field SourcePicoSeconds is included in the DataSetMessages.If this flag is set, the fields are represented as DataValue. This flag is ignored if the SourceTimestamp flag is not set.
ServerPicoSeconds 4 The DataValue structure field ServerPicoSeconds is included in the DataSetMessages.If this flag is set, the fields are represented as DataValue. This flag is ignored if the ServerTimestamp flag is not set.
RawData 5 If this flag is set, the values of the DataSet are encoded as Structure and all other field related flags shall be ignored.The RawData representation is handled like a Structure DataType where the DataSet fields are handled like Structure fields and fields with Structure DataType are handled like nested structures. All restrictions for the encoding of Structure DataTypes also apply to the RawData Field Encoding. Fields shall not have an abstract DataType or shall have a fixed ValueRank. Fields shall have dimensions defined if the DataType is String or ByteString or if it is an array. This includes Structure fields with such fields. The flag shall be ignored and the fields shall be represented as Variant if the fields do not fulfil these requirements.

The DataSetFieldContentMask representation in the AddressSpace is defined in Table 15.

Table 15 – DataSetFieldContentMask Definition

Attributes Value    
BrowseName DataSetFieldContentMask    
IsAbstract False    
References NodeClass BrowseName DataType
Subtype of UInt32 defined in Part 5.      
HasProperty Variable OptionSetValues LocalizedText [ ]

The DataSetFieldContentMask defines different options that influence the information flow from Publisher to Subscriber in the case of a Bad Value Status or other error situations. Figure 21 depicts the parameters and the information flow from DataSet field to DataSetMessage creation on Publisher side and the decoded DataSet field on the Subscriber side. The DataSetFieldContentMask controls the representation of the DataSet fields in a DataSetMessage.

readme_files/image022.png

Figure 21 – PubSub Information Flow dependency to field representation

The representation of the DataSet fields in a DataSetMessage on the Publisher side and the decoding back to the DataSet fields on the Subscriber side is defined in Table 16. The representation on the Publisher side depends on the field representation defined in the DataSetFieldContentMask.

Table 16 – DataSetMessage field representation options

DataSet Publisher Field DataSetMessage DataSet Subscriber      
Value Status(4)   Value Status(4) Value Status(4)
Value 1 Good_* Variant Value 1 N/A (1) Value 1 N/A (1)
Value 1 Uncertain_*   Value 1   Value 1  
Null Bad_*   Bad_* (1)   Null Bad_*
Value 1 Good_* DataValue Value 1 Good_* Value 1 Good_*
Value 1 Uncertain_*   Value 1 Uncertain_* Value 1 Uncertain_*
Null Bad_*   Null Bad_* Null Bad_*
Value 1 Good_* RawData Value 1 N/A Value 1 N/A
Value 1 Uncertain_*   Value 1(2)   Value 1  
Null Bad_*   DefaultValue(3)   DefaultValue  
Note 1: A bad status is transferred instead of a value. An uncertain status is not transferred for a field. If the status field is included in the DataSetMessage header, the status is set to uncertain if one of the fields has an uncertain status.Note 2: If the worst status for one or more fields is uncertain, the DataSetMessage status shall be set to Uncertain.Note 3: If the worst status for one or more fields is bad, the DataSetMessage status shall be set to Bad.Note 4: If no specific StatusCode is used, the grouping into severity Good, Uncertain or Bad is used. In this case, the resulting Status matches the input Status.            

6.2.3.3 KeyFrameCount ToC

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 values for all published Variables is sent. The delta frame DataSetMessages contains just the changed values. If no changes exist, the delta frame DataSetMessage shall not be sent. If the KeyFrameCount is set to 1, every message contains a key frame.

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

6.2.3.4 DataSetWriterProperties ToC

The DataSetWriterProperties parameter is an array of DataType KeyValuePair that specifies additional properties for the configured DataSetWriter. The KeyValuePair DataType is defined in Part 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 specification or vendor specific extensions.

6.2.3.5 DataSetWriter Structure ToC Model

6.2.3.5.1 DataSetWriterDataType ToC Model

This Structure DataType is used to represent the DataSetWriter parameters. The DataSetWriterDataType is formally defined in Table 17.

Table 17 – DataSetWriterDataType Structure

Name Type Description
DataSetWriterDataType Structure  
 name String The name of the DataSetWriter.
 enabled Boolean The enabled state of the DataSetWriter.
 dataSetWriterId UInt16 Defined in 6.2.3.1.
 dataSetFieldContentMask DataSetFieldContentMask Defined in 6.2.3.2.
 keyFrameCount UInt32 Defined in 6.2.3.3.
 dataSetName String The name of the corresponding PublishedDataSet.
 dataSetWriterProperties KeyValuePair[] Defined in 6.2.3.4.
 transportSettings DataSetWriterTransportDataType Transport mapping specific DataSetWriter parameters. The abstract base type is defined in 6.2.3.5.2. The concrete subtypes are defined in the sections for transport mapping specific parameters.
 messageSettings DataSetWriterMessageDataType DataSetMessage mapping specific DataSetWriter parameters. The abstract base type is defined in 6.2.3.5.3. The concrete subtypes are defined in the sections for message mapping specific parameters.

6.2.3.5.2 DataSetWriterTransportDataType ToC Model

This Structure DataType is an abstract base type for transport mapping specific DataSetWriter parameters. The abstract DataType does not define fields.

The DataSetWriterTransportDataType Structure representation in the AddressSpace is defined in Table 18.

Table 18 – DataSetWriterTransportDataType Definition

Attributes Value      
BrowseName DataSetWriterTransportDataType      
IsAbstract True      
References NodeClass BrowseName IsAbstract Description
Subtype of Structure defined in Part 5.        
HasSubtype DataType BrokerDataSetWriterTransportDataType FALSE Defined in 6.4.2.3.7.

6.2.3.5.3 DataSetWriterMessageDataType ToC Model

This Structure DataType is an abstract base type for message mapping specific DataSetWriter parameters. The abstract DataType does not define fields.

The DataSetWriterMessageDataType Structure representation in the AddressSpace is defined in Table 19.

Table 19 – DataSetWriterMessageDataType Structure

Attributes Value      
BrowseName DataSetWriterMessageDataType      
IsAbstract True      
References NodeClass BrowseName IsAbstract Description
Subtype of Structure defined in Part 5.        
HasSubtype DataType UadpDataSetWriterMessageDataType FALSE Defined in 6.3.1.2.6.
HasSubtype DataType JsonDataSetWriterMessageDataType FALSE Defined in 6.3.2.2.2.

Previous Next