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