The configuration model defines different parameters that influence the information flow from Publisherto Subscriberin the case of a Bad Value Status or other error situations. Figure 24depicts the parameters and the information flow inside a Publisherand inside a Subscriber.

The parameters and behaviour relevant for the encoding of a DataSetMessageon the Publisherside and the decoding of the DataSetMessageon the Subscriberside are defined in 6.2.4.2together with the DataSetFieldContentMask.

image027.png

Figure 24– PubSub information flow

The mapping of source value and status to the DataSetin the Publisherdepends on the substitute value. The dependencies are defined in Table 69.

Table 69– Source to message input mapping

Source

Substitute

Value

DataSet Publisher side

Value(b)

Status (a)

Value

Status (a)

Value 1

Good_*

Value 2

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Value 2

Uncertain_SubstituteValue

Value 1

Good_*

Null

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Null

Bad_*

(a)If no specific StatusCodeis used, the grouping into severity Good, Uncertain or Bad is used. In this case, the resulting Status matches the input Status.

(b)Any error that happens during processing of source value e.g. DataTypedoes not match DataSetField should be treated like a Bad StatusCodereceived from the source.

The mapping of the decoded DataSeton the Subscriberside to the value and status of the target Variabledepends on the override value. The dependencies are defined in Table 70.

Table 70– Message output to target mapping

Decoded DataSet Subscriber

Override Value Handling Enum

Override

Value

Reader

State

Target

Value

Status (a)

Value

Status (a)

Value 1

Good_*

OverrideValue

Value 2

Operational

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Value 2

Good_LocalOverride

Value 1

Good_*

LastUsableValue

Ignored

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

LastValue (b)

Uncertain_LastUsableValue

Value 1

Good_*

Disabled

Ignored

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Ignored

Bad_*

Null

Bad_*

No message received.

The target values are updated once after a reader state change.

OverrideValue

Value 2

Disabled

Paused

Value 2

Good_LocalOverride

LastUsableValue

Ignored

LastValue (b)

Uncertain_LastUsableValue

Disabled

Ignored

Null

Bad_OutOfService

OverrideValue

Value 2

Error

Value 2

Good_LocalOverride

LastUsableValue

Ignored

LastValue (b)

Uncertain_LastUsableValue

Disabled

Ignored

Null

Bad_NoCommunication

(a)If no specific StatusCodeis used, the grouping into severity Good, Uncertain or Bad is used. In this case, the resulting Status matches the input Status.

(b)The last value is either the last received value or the default value for the data type if there was never a value received before.

If one of the target Variablesin the SubscribedDataSetdoes not allow writing of the StatusCodeand the OverrideValueHandlingis set to Disabled, the DataSetReadershall indicate the configuration error by setting the DataSetReaderstate to Error. In all other configurations of OverrideValueHandlingwhen the target Variabledoes not allow writing of the StatusCode, only the Valueis transferred to the target Variable.

If a target Variablein the SubscribedDataSetdoes not allow writing of timestamp, any received timestamp shall not be used and only the received value shall be written to the target Variable.