6 PubSub communication parameters ToC Previous Next

6.2 Common configuration parameters ToC Previous Next

6.2.4 DataSetWriter parameters ToC Previous Next

6.2.4.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 a PublishedDataSet 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.

The DataSetWriterId shall be within the range 0x0001 - 0x7FFF for external assignment by configuration tools, and 0x8000 - 0xFFFF for internal assignment like through the Method CloseAndUpdate of the PubSubConfigurationType.

6.2.4.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 parameter is ignored for heartbeat messages.

The DataSetFieldContentMask is formally defined in Table 24.

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

Table 24 – 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 fields of the DataSet are encoded without additional information like timestamp, status or DataType information. 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 DataSetFieldContentMask representation in the AddressSpace is 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 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 23 depicts the parameters and the information flow from DataSet field to DataSetMessage creation on the 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/image026.png Figure 23 – 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 26. The representation on the Publisher side 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 1Uncertain_* (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)        
</sup>   Uncertain (d) Value 1 Uncertain      
Null Bad_*   Default value for DataType (e)        
</sup>   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 StatusCode is used, the grouping into severity Good, Uncertain or Bad is used. In this case, the resulting Status matches 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.              

6.2.4.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 that provide cyclic updates of the DataSet, the value shall be greater than or equal to 1. PublishedDataItems or custom sources with CyclicDataSet set to true provide cyclic updates.

For non-cyclic PublishedDataSets that provide acyclic event based DataSets, the value shall be 0. PublishedEvents or custom sources with CyclicDataSet set to false provide acyclic updates.

For a heartbeat DataSetMessage, the value shall be 1.

6.2.4.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 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.4.5 DataSetWriter definition ToC Model

6.2.4.5.1 DataSetWriterDataType ToC Model

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

Table 27 – DataSetWriterDataType definition

Name Type Description
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 DataSetWriter is used to create heartbeat DataSetMessages, the dataSetName shall be null or empty.
   dataSetWriterProperties KeyValuePair[] Defined in 6.2.4.4.
   transportSettings DataSetWriterTransportDataType    Transport mapping specific DataSetWriter parameters. 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.
   messageSettings DataSetWriterMessageDataType    DataSetMessage   mapping specific DataSetWriter parameters. 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.

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  

6.2.4.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 29.

Table 29 – DataSetWriterTransportDataType definition

Attributes Value      
BrowseName DataSetWriterTransportDataType      
IsAbstract True      
References NodeClass BrowseName IsAbstract Description
Subtype of Structure defined in OPC 10000-5.        
HasSubtype DataType BrokerDataSetWriterTransportDataType FALSE Defined in 6.4.2.5.7.
Conformance Units        
PubSub Parameters Discovery        

6.2.4.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 30.

Table 30 – DataSetWriterMessageDataType definition

Attributes Value      
BrowseName DataSetWriterMessageDataType      
IsAbstract True      
References NodeClass BrowseName IsAbstract Description
Subtype of Structure defined in OPC 10000-5.        
HasSubtype DataType UadpDataSetWriterMessageDataType FALSE Defined in 6.3.1.3.6.
HasSubtype DataType JsonDataSetWriterMessageDataType FALSE Defined in 6.3.2.3.2.
Conformance Units        
PubSub Parameters Discovery        

Previous Next