The PubSubStateis used to expose and control the operation of a PubSubcomponent. It is an enumeration of the possible states. The enumeration values are described in Table 1.

Table 1– PubSubState Values

Value

Description

Disabled_0

The PubSub component is configured but currently disabled.

Paused_1

The PubSub component is enabled but currently paused by a parent component. The parent component is either Disabled_0or Paused_1.

Operational_2

The PubSub component is operational.

Error_3

The PubSub component is in an error state.

Figure 19depicts the PubSubcomponents that have a PubSubstate and their parent-child relationship. State changes of children are based on changes of the parent state. The root of the hierarchy is the PublishSubscribecomponent.

image022.png

Figure 19– PubSub Component State Dependencies

Figure 20describes the formal state machine with the possible transitions.

image023.png

Figure 20– PubSubState State Machine

Table 2formally defines the transitions of the state machine.

Table 2– PubSubState State Machine

Source State

Target State

Trigger Description

Disabled_0

Paused_1

The component was successfully enabled but the parent component is in the state Disabled_0 or Paused_1.

Disabled_0

Operational_2

The component was successfully enabled.

Paused_1

Disabled_0

The component was successfully disabled.

Paused_1

Operational_2

The state of the parent component changed to Operational_2.

Operational_2

Disabled_0

The component was successfully disabled.

Operational_2

Paused_1

The state of the parent component changed to Disabled_0 or Paused_1.

Operational_2

Error_3

There is a pending error situation for the related PubSubcomponent.

Error_3

Disabled_0

The component was successfully disabled.

Error_3

Paused_1

The state of the parent component changed to Disabled_0 or Paused_1.

Error_3

Operational_2

The error situation was resolved for the related PubSubcomponent.

DataSetMetaDatadescribe the content and semantic of a DataSet. The order of the fields in the DataSetMetaDatashall match the order of DataSetfields when they are included in the published DataSetMessages. The DataSetMetaDataTypeis defined in 6.2.2.1.2.

This Structure DataTypeis a subtype of DataTypeSchemaHeaderand is used to provide the metadata for a DataSet. The DataSetMetaDataTypeis formally defined in Table 3.

The DataTypeSchemaHeaderprovides OPC UA DataTypedefinitions used in the DataSetMetaData. The DataTypeSchemaHeaderis defined in A.1.1.

Table 3– DataSetMetaDataType Structure

Name

Type

Description

DataSetMetaDataType

Structure

name

String

Name of the DataSet.

description

LocalizedText

Description of the DataSet.

The default value is a null LocalizedText.

fields

FieldMetaData[]

The metadata for the fields in the DataSet.

The FieldMetaData DataType is defined in 6.2.2.1.3.

dataSetClassId

Guid

This field provides the globally unique identifier of the class of DataSetif the DataSetis based on a DataSetClass. In this case, this field shall match the DataSetClassIdof the concrete DataSetconfiguration.

If the DataSetsare not created from a class, this field is null.

configurationVersion

Configuration‌VersionDataType

The configuration version for the current configuration of the DataSet.

Its representation in the AddressSpace is defined in Table 4.

Table 4– DataSetMetaDataType Definition

Attributes

Value

BrowseName

DataSetMetaDataType

IsAbstract

False

Subtype of DataTypeSchemaHeader defined in A.1.1.

This Structure DataTypeis used to provide the metadata for a field in a DataSet. The FieldMetaDatais formally defined in Table 5.

Table 5– FieldMetaData Structure

Name

Type

Description

FieldMetaData

Structure

name

String

Name of the field.

The name shall be unique in the DataSet.

description

LocalizedText

Description of the field.

The default value shall be a null LocalizedText.

fieldFlags

DataSetFieldFlags

Flags for the field.

builtInType

Byte

The built-in data type of the field. The possible built-in type values are defined in OPC 10000-6.

All data types are transferred in DataSetMessagesas one of the built-in data types. In most cases the identifier of the DataType NodeIdmatches the built-in type. The following special cases must be handled in addition:

(1) Abstract types always have the built-in type Variantsince they can result in different concrete types in a DataSetMessage. The dataTypefield may provide additional restrictions e.g. if the abstract type is Number. Abstract types shall not be used if the field is represented as RawDataset by the DataSetFieldContentMaskdefined in 6.2.3.1.

(2) Enumeration DataTypesare encoded as Int32. The Enumerationstrings are defined through a DataTypereferenced through the dataTypefield.

(3) Structureand Union DataTypesare encoded as ExtensionObject. The encoding rules are defined through a DataTypereferenced through the dataTypefield.

(4) DataTypesderived from built-in types have the BuiltInTypeof the corresponding base DataType. The concrete subtype is defined through the dataTypefield.

(5) OptionSet DataTypesare either encoded as one of the concrete UInteger DataTypesor as an instance of an OptionSetTypein an ExtensionObject.

dataType

NodeId

The NodeIdof the DataTypeof this field.

If the DataTypeis an Enumerationor an OptionSet, the semantic of the Enumeration DataTypeis provided through the enumDataTypesfield of the DataSetMetaData.

If the DataTypeis a Structureor Union, the encoding and decoding description of the Structure DataTypeis provided through the structureDataTypesfield of the DataSetMetaData.

valueRank

Int32

Indicates whether the dataTypeis an array and how many dimensions the array has.

It may have the following values:

n > 1: the dataTypeis an array with the specified number of dimensions.

OneDimension (1): The dataTypeis an array with one dimension.

OneOrMoreDimensions (0): The dataTypeis an array with one or more dimensions.

Scalar (−1): The dataTypeis not an array.

Any (−2): The dataTypecan be a scalar or an array with any number of dimensions.

ScalarOrOneDimension (−3): The dataTypecan be a scalar or a one dimensional array.

NOTE All DataTypesare considered to be scalar, even if they have array-like semantics like ByteStringand String.

arrayDimensions

UInt32[]

This field specifies the maximum supported length of each dimension. If the maximum is unknown the value shall be 0.

The number of elements shall be equal to the value of the valueRank field. This field shall be null if valueRank≤ 0.

The maximum number of elements of an array transferred on the wire is 2147483647 (max Int32). It is the total number of elements in all dimensions based on the UA Binary encoding rules for arrays.

maxStringLength

UInt32

If the dataTypefield is a Stringor ByteStringthen this field specifies the maximum supported length. If the maximum is unknown the value shall be 0.

If the dataType field is not a Stringor ByteStringthe value shall be 0.

If the valueRankis greater than 0 this field applies to each element of the array.

dataSetFieldId

Guid

The unique ID for the field in the DataSet. The ID is generated when the field is added to the list. A change of the position of the field in the list shall not change the ID.

properties

KeyValuePair[]

List of Propertyvalues providing additional semantic for the field.

If at least one Propertyvalue changes, the MajorVersionof the ConfigurationVersionshall be updated.

If the Propertyis EngineeringUnits, the unit of the Field Valueshall match the unit of the FieldMetaData.

The KeyValuePairDataType is defined in OPC 10000-5. For this field the key in the KeyValuePairstructure is the BrowseNameof the Propertyand the value in the KeyValuePairstructure is the Valueof the Property.

This DataTypedefines flags for DataSet fields.

The DataSetFieldFlagsis formally defined in Table 6.

Table 6– DataSetFieldFlags Values

Value

Bit No.

Description

PromotedField

0

The flag indicates if the field is promoted to the NetworkMessagesor transport protocol header.

Setting this flag increases the size of the NetworkMessagessince information from the DataSetMessagebody is also promoted to the header.

Depending on the used security, the header including the field may be unencrypted.

Promoted fields are always included in the header even if the DataSetMessagepayload is a delta frame and the DataSetfield is not included in the delta frame. In this case the last sent value is sent in the header.

The order of the fields in the DataSetMetaDatapromoted to the header shall match the order of the fields in the header unless the header includes field names.

The DataSetFieldFlagsrepresentation in the AddressSpaceis defined in Table 7.

Table 7– DataSetFieldFlags Definition

Attributes

Value

BrowseName

DataSetFieldFlags

IsAbstract

False

References

NodeClass

BrowseName

DataType

Subtype of UInt16 defined in OPC 10000-5.

HasProperty

Variable

OptionSetValues

LocalizedText [ ]

This Structure DataTypeis used to indicate configuration changes in the information published for a DataSet. The ConfigurationVersionDataTypeis formally defined in Table 8.

Table 8– ConfigurationVersionDataType Structure

Name

Type

Description

ConfigurationVersionDataType

Structure

majorVersion

VersionTime

The MajorVersionreflects the time of the last major change of the DataSetcontent. The VersionTime DataTypeis defined in OPC 10000-4.

To assure interoperability, the Subscriberhas to use DataSetMetaDatafor decoding with a MajorVersionthat matches the MajorVersionin DataSetMessagessent by the Publisher.

Removing fields from the DataSetcontent, reordering fields, adding fields in between other fields or a DataType change in fields shall result in an update of the MajorVersion.

If at least one Propertyvalue of a DataSetMetaDatafield changes, the MajorVersionshall be updated.

There can be situations where older configurations of a Publisherare loaded and changed with product specific configuration tools. In this case the MajorVersionshall be updated if the configuration tool is not able to verify if the change only extends the configuration and does not change the existing content.

Additional criteria for changing MajorVersionor MinorVersionare defined in this specification.

minorVersion

VersionTime

The MinorVersionreflects the time of the last change.

Only the MinorVersionshall be updated if fields are added at the end of the DataSetcontent.

If the MajorVersionversion is updated, the MinorVersionis updated to the same value as MajorVersion.

DataSetMetaDatamay be specific to a single Publisherand a single selection of information or universal e.g. defined by a standard organisation or by a plant operator as a DataSetClass. DataSetsthat conform to such a DataSetClassare identified with a DataSetClassId.

The DataSetClassIdis the globally unique identifier (Guid) of a DataSetClass. It is included in the DataSetMetaData. The NetworkMessageContentMaskcontrols the availability of the DataSetClassIdin the NetworkMessage.

The ExtensionFieldsparameterallows the configuration of fields with values to be included in the DataSetwhen the existing AddressSpaceof the Publisherdoes not provide the necessary information. The ExtensionFieldsare represented as array of KeyValuePair Structures.

This Structure DataTyperepresents the PublishedDataSetparameters. The PublishedDataSetDataTypeis formally defined in Table 9.

Table 9– PublishedDataSetDataType Structure

Name

Type

Description

PublishedDataSetDataType

Structure

name

String

Name of the PublishedDataSet.

The name of the PublishedDataSetshall be unique in the Publisher.

dataSetFolder

String[]

Optional path of the DataSetfolder used to group PublishedDataSetswhere each entry in the Stringarray represents one level in a DataSetfolder hierarchy.

If no grouping is needed the parameter is a null Stringarray.

dataSetMetaData

DataSetMetaDataType

Defined in 6.2.2.1.

extensionFields

KeyValuePair[]

Defined in 6.2.2.3.

dataSetSource

PublishedDataSetSourceDataType

Defined in 6.2.2.5.

The PublishedDataSetSourceDataType Structureis an abstract base type without fields for the definition of the PublishedDataSetsource. Its representation in the AddressSpaceis defined in Table 10.

Table 10– PublishedDataSetSourceDataType Definition

Attributes

Value

BrowseName

PublishedDataSetSourceDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

PublishedDataItemsDataType

FALSE

Defined in 6.2.2.6.2.

HasSubtype

DataType

PublishedEventsDataType

FALSE

Defined in 6.2.2.7.4.

The parameterPublishedDatadefines the content of a DataSetcreated from Variable Valuesand therefore the content of the DataSetMessagesent by aDataSetWriter. The sources of the DataSet fields are defined through an array of PublishedVariableDataType.

The index into the array has an important role for Subscribersand for configuration tools. It is used as a handle to reference the Valuein DataSetMessagesreceived by Subscribers. The index may change after configuration changes. Changes are indicated by the ConfigurationVersionof the DataSetand applications working with the index shall always check the ConfigurationVersionbefore using the index.

If an entry of the PublishedDatareferences one of the ExtensionFields, the substituteValueshall contain the QualifiedName of the ExtensionFields entry. All other fields of this PublishedVariableDataTypearray element shall be null.

The DataType PublishedVariableDataTyperepresents the configuration information for one Variable. The PublishedVariableDataTypeis formally defined in Table 11.

Table 11– PublishedVariableDataType Structure

Name

Type

Description

PublishedVariableDataType

Structure

publishedVariable

NodeId

The NodeIdof the published Variable.

Some transport protocols require knowledge on the message receiver side about the DataType, ValueRank and ArrayDimensions to be able to decode the message content. This information is provided through the DataSetMetaDataprovided for the DataSet.

attributeId

IntegerId

Id of the Attributeto publish e.g. the Value Attribute. This shall be a valid Attributeid.

The Attributesare defined in OPC 10000-3. The IntegerId DataType is defined in OPC 10000-4. The IntegerIdsfor the Attributesare defined in OPC 10000-6.

samplingIntervalHint

Duration

A recommended rate of acquiring new values for change or deadband evaluation. A Publishershould use this value as hint for setting the internal sampling rate.

The value 0 indicates that the Servershould use the fastest practical rate.

The value -1 indicates that the default sampling interval defined by the PublishingIntervalof the WriterGroup is requested. Any negative number is interpreted as -1.

deadbandType

UInt32

A value that defines the Deadbandtype and behaviour.

Value Description

None_0 No Deadbandcalculation should be applied.

Absolute_1 AbsoluteDeadband (This type is specified in OPC 10000-4)

Percent_2 PercentDeadband (This type is specified in OPC 10000-8).

deadbandValue

Double

The deadband value for the corresponding DeadbandType. The meaning of the value depends on DeadbandType.

indexRange

NumericRange

This parameter is used to identify a single element of an array, or a single range of indexes for arrays. The NumericRangetype and the logic for IndexRangeare defined in OPC 10000-4.

substituteValue

BaseDataType

The value that is included in the DataSetif the StatusCodeof the DataValueis Bad. In this case the StatusCodeis set to

Uncertain_SubstituteValue.

This Value shall match the DataTypeof the PublishedVariablesince DataSetWritersmay depend on a valid Valuewith the right DataTypethat matches the ConfigurationVersion.

If the SubstituteValueis Null, the StatusCodeof the DataValueis processed.

The handling of the SubstituteValueis defined in 6.2.10.

metaDataProperties

QualifiedName [ ]

This parameter specifies an array of Propertiesto be included in the FieldMetaDatacreated for this Variable.

It shall be used to populate the propertieselement of the resulting field in the DataSetMetaData.

This Structure DataTypeis used to represent PublishedDataItemsspecific parameters. It is a subtype of the PublishedDataSetSourceDataType defined in 6.2.2.5.

The PublishedDataItemsDataTypeis formally defined in Table 12.

Table 12– PublishedDataItemsDataType Structure

Name

Type

Description

PublishedDataItemsDataType

Structure

publishedData

PublishedVariableDataType[]

Defined in 6.2.2.6.1.

The parameter EventNotifierdefines the NodeIdof the Objectin the event notifier tree of the OPC UA Serverfrom which Eventsare collected.

The parameter SelectedFieldsdefines the selection of Eventfields contained in the DataSetgenerated for an Eventand sent through the DataSetWriter. The SimpleAttributeOperand DataTypeis defined in OPC 10000-4. The DataTypeof the selected Eventfield in the EventTypedefines the DataTypeof the DataSetfield. Eventfields can be null or the field value can be a StatusCode. The encoding of EventbasedDataSetMessagesshall be able to handle these cases. ExtensionFieldsdefined for the instance of the PublishedEventsTypecan be included in the SelectedFieldsby specifying the PublishedEventsType NodeIdas typeId in the SimpleAttributeOperandand the BrowseNameof the extension field in the browsePathof the SimpleAttributeOperand.

The index into the list of entries in the SelectedFieldshas an important role for Subscribers. It is used as handle to reference the Eventfield in DataSetMessagesreceived by Subscribers. The index may change after configuration changes. Changes are indicated by the ConfigurationVersionand applications working with the index shall always check the ConfigurationVersionbefore using the index. If a change of the SelectedFieldsadds additional fields, the MinorVersionof the ConfigurationVersionshall be updated. If a change of the SelectedFieldsremoves fields, the MajorVersionof the ConfigurationVersionshall be updated. The ConfigurationVersionDataTypeand the rules for setting the version are defined in 6.2.2.1.5.

The parameter Filterdefines the filter applied to the Events. It allows the reduction of the DataSetsgenerated from Eventsthrough a filter. The ContentFilter DataTypeis defined in OPC 10000-4.

This Structure DataTypeis used to represent PublishedEventsspecific parameters. It is a subtype of the PublishedDataSetSourceDataType defined in 6.2.2.5.

The PublishedEventsDataTypeis formally defined in Table 13.

Table 13– PublishedEventsDataType Structure

Name

Type

Description

PublishedEventsDataType

Structure

eventNotifier

NodeId

Defined in 6.2.2.7.1.

selectedFields

SimpleAttributeOperand[]

Defined in 6.2.2.7.2.

filter

ContentFilter

Defined in 6.2.2.7.3.

The DataSetWriterIdwith DataType UInt16defines the unique ID of the DataSetWriterfor a PublishedDataSet. It is used to select DataSetMessagesfor aPublishedDataSeton the Subscriberside.

It shall be unique across all DataSetWritersfor a PublisherId.

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

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 DataSetFieldContentMaskis formally defined in Table 14.

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

Table 14– 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 values of the DataSetare encoded as Structureand all other field related flags shall be ignored.

The RawDatarepresentation is handled like a Structure DataTypewhere the DataSetfields are handled like Structurefields and fields with Structure DataTypeare handled like nested structures. All restrictions for the encoding of Structure DataTypesalso 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 DataTypeis Stringor ByteStringor if it is an array. This includes Structurefields with such fields. The flag shall be ignored and the fields shall be represented as Variantif the fields do not fulfil these requirements.

The DataSetFieldContentMaskrepresentation in the AddressSpaceis defined in Table 15.

Table 15– DataSetFieldContentMask Definition

Attributes

Value

BrowseName

DataSetFieldContentMask

IsAbstract

False

References

NodeClass

BrowseName

DataType

Subtype of UInt32 defined in OPC 10000-5.

HasProperty

Variable

OptionSetValues

LocalizedText [ ]

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

image024.png

Figure 21– 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 16. The representation on the Publisherside 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 DataSetMessageheader, 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 DataSetMessagestatus shall be set to Uncertain.

Note 3: If the worst status for one or more fields is bad, the DataSetMessagestatus shall be set to Bad.

Note 4: If no specific StatusCodeis used, the grouping into severity Good, Uncertainor Badis used. In this case, the resulting Statusmatches the input Status.

The KeyFrameCountwith DataType UInt32is the multiplier of the PublishingIntervalthat defines the maximum number of times the PublishingIntervalexpires before a key frame message with values for all published Variablesis sent. The delta frame DataSetMessagescontains just the changed values. If no changes exist, the delta frame DataSetMessageshall not be sent. If the KeyFrameCountis set to 1, every message contains a key frame.

For PublishedDataSetslike PublishedDataItemsthat 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.

The DataSetWriterPropertiesparameter is an array of DataType KeyValuePairthat specifies additional properties for the configured DataSetWriter. The KeyValuePair DataTypeis defined in OPC 10000-5and consists of a QualifiedNameand 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.

This Structure DataTypeis used to represent the DataSetWriterparameters. The DataSetWriterDataTypeis 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 DataSetWriterparameters. 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

DataSetMessagemapping specific DataSetWriterparameters. 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.

This Structure DataTypeis an abstract base type for transport mapping specific DataSetWriterparameters. The abstract DataTypedoes not define fields.

The DataSetWriterTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 18.

Table 18– 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.3.7.

This Structure DataTypeis an abstract base type for message mapping specific DataSetWriterparameters. The abstract DataTypedoes not define fields.

The DataSetWriterMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 19.

Table 19– DataSetWriterMessageDataType Structure

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

HasSubtype

DataType

JsonDataSetWriterMessageDataType

FALSE

Defined in 6.3.2.2.2.

The parameters are shared between WriterGroupand ReaderGroup.

The parameters are related to PubSub NetworkMessagesecurity. See 5.4.3for an introduction of PubSub security and 8for the definition of the PubSub Security Key Service.

The SecurityModeindicates the level of security applied to the NetworkMessagespublished by a WriterGroupor received by a ReaderGroup. The MessageSecurityMode DataTypeis defined in OPC 10000-4.

The SecurityGroupIdwith DataType Stringis the identifier for a SecurityGroupin the Security Key Server. It is unique within a SKS.

The parameter is null if the SecurityModeis NONE_1.

If the SecurityModeis not NONE_1 the SecurityGroupIdidentifies the SecurityGroup. The SecurityGroup defines the SecurityPolicy and the security keys used for the NetworkMessagesecurity. The PubSubGroupdefines the SecurityModefor the NetworkMessagessent by the group.

SecurityKeyServicesis an array of the DataType EndpointDescriptionand definesone or more Security Key Servers(SKS) that manage the security keys for the SecurityGroupassigned to the PubSubGroup. The EndpointDescription DataTypeis defined in OPC 10000-4.

The parameter is null if the SecurityMode is NONE_1.

Each element in the array is an Endpointfor an SKS that can supply the security keys for theSecurityGroupId. Multiple Endpointsexist because an SKS may support multiple transport profiles and/or may have multiple redundant instances. The UserTokenPoliciesin each Endpointspecify what user credentials are required. OPC 10000-4describes UserTokenPoliciesin more detail.

The MaxNetworkMessageSizewith DataType UInt32indicates the maximum size in bytes for NetworkMessagescreated by the WriterGroup. It refers to the size of the complete NetworkMessageincluding padding and signature without any additional headers added by the transport protocol mapping. If the size of a NetworkMessageexceeds the MaxNetworkMessageSize,the behaviour depends on the message mapping.

The transport protocol mappings defined in 7.3may define restrictions for the maximum value of this parameter.

Note 1: The value for the MaxNetworkMessageSizeshould be configured in a way that ensures that NetworkMessagestogether with additional headers added by the transport protocol are still smaller or equal than the transport protocol MTU.

The GroupPropertiesparameter is an array of DataType KeyValuePairthat specifies additional properties for the configured group. The KeyValuePair DataTypeis defined in OPC 10000-5and consists of a QualifiedNameand 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.

This Structure DataTypeis an abstract base type for PubSubGroups. The PubSubGroupDataTypeis formally defined in Table 20.

Table 20– PubSubGroupDataType Structure

Name

Type

Description

PubSubGroupDataType

Structure

name

String

The name of the PubSubGroup.

enabled

Boolean

The enabled state of the PubSubGroup.

securityMode

MessageSecurityMode

Defined in 6.2.4.2.

securityGroupId

String

Defined in 6.2.4.3.

securityKeyServices

EndpointDescription[]

Defined in 6.2.4.4.

maxNetworkMessageSize

UInt32

Defined in 6.2.4.5.

groupProperties

KeyValuePair[]

Defined in 6.2.4.6.

The PubSubGroupDataType Structurerepresentation in the AddressSpaceis defined in Table 21.

Table 21– PubSubGroupDataType Definition

Attributes

Value

BrowseName

PubSubGroupDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

WriterGroupDataType

FALSE

Defined in 6.2.5.6.1.

HasSubtype

DataType

ReaderGroupDataType

FALSE

Defined in 6.2.7.2.1.

The WriterGroupIdwith DataType UInt16is an identifier for the WriterGroupand shall be unique across all WriterGroupsfor a PublisherId.All values, except for 0, are valid. The value 0 is defined as null value.

The PublishingIntervalwith the DataType Durationdefines the interval in milliseconds for publishing NetworkMessagesand the embedded DataSetMessagescreated by the related DataSetWriters.

In the case of Eventbased DataSets, this may result in zero to many DataSetMessagesproduced for one PublishedDataSetin a PublishingInterval. All Eventsthat occur between two PublishingIntervalsshall be buffered until the next NetworkMessageis sent. If the number of Events exceeds the buffer capability of the DataSetWriter, an Eventof type EventQueueOverflowEventTypeis inserted into the buffer.

The Duration DataTypeis a subtype of Doubleand allows configuration of intervals smaller than a millisecond.

The KeepAliveTimewith DataType Durationdefines the time in milliseconds until the Publishersends a keep alive DataSetMessagein the case where no DataSetMessagewas sent in this period by a DataSetWriter. The minimum value shall equal the PublishingInterval.

The Prioritywith DataType Bytedefines the relative priority of the WriterGroupto all other WriterGroupsacross all PubSubConnectionsof the Publisher.

If more than one WriterGroupneeds to be processed, the priority number defines the order of processing. The highest priority is processed first.

The lowest priority is zero and the highest is 255.

The LocaleIdswith DataType LocaleIddefines a list of locale ids in priority order for localized strings for all DataSetWritersin the WriterGroup. The first LocaleIdin the list has the highest priority.

If the Publishersends a localized String, the Publishershall send the translation with the highest priority that it can. If it does not have a translation for any of the locales identified in this list, then it shall send the Stringvalue that it has and include the LocaleIdwith the String. If no locale id is configured, the Publishershall use any that it has. See OPC 10000-3for more detail on LocaleId.

This Structure DataTypeis used to represent the configuration parameters for WriterGroups. It is a subtype of PubSubGroupDataTypedefined in 0.

The WriterGroupDataTypeis formally defined in Table 22.

Table 22– WriterGroupDataType Structure

Name

Type

Description

WriterGroupDataType

Structure

writerGroupId

UInt16

Defined in 6.2.5.1.

publishingInterval

Duration

Defined in 6.2.5.2.

keepAliveTime

Duration

Defined in 6.2.5.3.

priority

Byte

Defined in 6.2.5.4.

localeIds

LocaleId[]

Defined in 6.2.5.5.

headerLayoutUri

String

transportSettings

WriterGroupTransportDataType

Transport mapping specific WriterGroupparameters. The abstract base type is defined in 6.2.5.6.2. The concrete subtypes are defined in the sections for transport mapping specific parameters.

messageSettings

WriterGroupMessageDataType

NetworkMessagemapping specific WriterGroupparameters. The abstract base type is defined in 6.2.5.6.3. The concrete subtypes are defined in the sections for message mapping specific parameters.

dataSetWriters

DataSetWriterDataType[]

The DataSetWriters contained in the WriterGroup. The DataSetWriterparameters are defined in 6.2.3.

The WriterGroupDataType Structurerepresentation in the AddressSpaceis defined in Table 23.

Table 23– WriterGroupDataType Definition

Attributes

Value

BrowseName

WriterGroupDataType

IsAbstract

False

References

NodeClass

BrowseName

IsAbstract

Subtype of PubSubGroupDataType defined in 0.

This Structure DataTypeis an abstract base type for transport mapping specific WriterGroupparameters. The abstract DataTypedoes not define fields.

The WriterGroupTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 24.

Table 24– WriterGroupTransportDataType Definition

Attributes

Value

BrowseName

WriterGroupTransportDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

DatagramWriterGroupTransportDataType

FALSE

Defined in 6.4.1.2.3.

HasSubtype

DataType

BrokerWriterGroupTransportDataType

FALSE

Defined in 6.4.2.2.6.

This Structure DataTypeis an abstract base type for message mapping specific WriterGroupparameters. The abstract DataTypedoes not define fields.

The WriterGroupMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 25.

Table 25– WriterGroupMessageDataType Structure

Attributes

Value

BrowseName

WriterGroupMessageDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

UadpWriterGroupMessageDataType

FALSE

Defined in 6.3.1.1.7.

HasSubtype

DataType

JsonWriterGroupMessageDataType

FALSE

Defined in 6.3.2.1.2.

The PublisherId is a unique identifier for a Publisherwithin a Message Oriented Middleware. It can be included in sent NetworkMessagefor identification or filtering. The value of the PublisherIdis typically shared between PubSubConnectionsbut the assignment of the PublisherIdis vendor specific.

The PublisherIdparameter is only relevant for the Publisherfunctionality inside a PubSubConnection. The filter setting on the Subscriberside is contained in the DataSetReaderparameters.

Valid DataTypesare UIntegerand String.

The TransportProfileUri parameter with DataType Stringindicates the transport protocol mapping and the message mapping used.

The possible TransportProfileUrivalues are defined as URI of the transport protocols defined as PubSubtransport Facetin OPC 10000-7.

The Address parameter contains the network address information for the communication middleware. The different Structure DataTypes used to represent the Address are defined in 6.2.6.5.3.

The ConnectionPropertiesparameter is an array of DataType KeyValuePairspecifies additional properties for the configured connection. The KeyValuePairtype is defined in OPC 10000-5and consists of a QualifiedNameand a value of BaseDataType.

The mapping of the namespace, name, and value to concrete functionality may be defined by transport protocol mappings, future versions of this specification or vendor specific extensions.

This Structure DataTypeis used to represent the configuration parameters for PubSubConnections. The PubSubConnectionDataTypeis formally defined in Table 26.

Table 26– PubSubConnectionDataType Structure

Name

Type

Description

PubSubConnectionDataType

Structure

name

String

The name of the PubSubConnection.

enabled

Boolean

The enabled state of the PubSubConnection.

publisherId

BaseDataType

Defined in 6.2.6.1.

transportProfileUri

String

Defined in 6.2.6.2.

address

NetworkAddressDataType

Defined in 6.2.6.3.

The NetworkAddressDataTypeis defined in 6.2.6.5.3.

connectionProperties

KeyValuePair[]

Defined in 6.2.6.4.

transportSettings

ConnectionTransportDataType

Transport mapping specific PubSubConnectionparameters. The abstract base type is defined in 6.2.6.5.2. The concrete subtypes are defined in the sections for transport mapping specific parameters.

writerGroups

WriterGroupDataType[]

The WriterGroupscontained in the PubSubConnection. The WriterGroupis defined in 6.2.5.

readerGroups

ReaderGroupDataType[]

The ReaderGroupscontained in the PubSubConnection. The ReaderGroupis defined in 6.2.7.

This Structure DataTypeis an abstract base type for transport mapping specific PubSubConnectionparameters. The abstract DataTypedoes not define fields.

The ConnectionTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 27.

Table 27– ConnectionTransportDataType Definition

Attributes

Value

BrowseName

ConnectionTransportDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Subtype of Structure defined in OPC 10000-5.

Subtypes of this abstract Structure DataTypeare used to represent network address information. The NetworkAddressDataTypeis formally defined in Table 28.

Table 28– NetworkAddressDataType Structure

Name

Type

Description

NetworkAddressDataType

Structure

networkInterface

String

The name of the network interface used for the communication relation.

The NetworkAddressDataType Structurerepresentation in the AddressSpaceis defined in Table 29.

Table 29– NetworkAddressDataType Definition

Attributes

Value

BrowseName

NetworkAddressDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

NetworkAddressUrlDataType

False

Defined in 6.2.6.5.4.

This Structure DataTypeis used to represent network address information in the form of an URL String. The NetworkAddressUrlDataTypeis formally defined in Table 30.

Table 30– NetworkAddressUrlDataType Structure

Name

Type

Description

NetworkAddressUrlDataType

Structure

url

String

The address string for the communication relation in the form on an URL String.

The NetworkAddressUrlDataType Structurerepresentation in the AddressSpaceis defined in Table 31.

Table 31– NetworkAddressUrlDataType Definition

Attributes

Value

BrowseName

NetworkAddressUrlDataType

IsAbstract

False

References

NodeClass

BrowseName

IsAbstract

Subtype of NetworkAddressDataType defined in 6.2.6.5.3.

The ReaderGroupdoes not add parameters to the shared PubSubGroup parameters.

The ReaderGroupis used to group a list of DataSetReaders. It is not symmetric to a WriterGroupand it is not related to a particular NetworkMessage. The NetworkMessagerelated filter settings are on the DataSetReaders.

This Structure DataTypeis used to represent the configuration parameters for ReaderGroups. The ReaderGroupDataTypeis formally defined in Table 32.

Table 32– ReaderGroupDataType Structure

Name

Type

Description

ReaderGroupDataType

Structure

transportSettings

ReaderGroupTransportDataType

Transport mapping specific ReaderGroupparameters. The abstract base type is defined in 6.2.7.2.2. The concrete subtypes are defined in the sections for transport mapping specific parameters.

messageSettings

ReaderGroupMessageDataType

NetworkMessagemapping specific ReaderGroupparameters. The abstract base type is defined in 6.2.7.2.3. The concrete subtypes are defined in the sections for message mapping specific parameters.

dataSetReaders

DataSetReaderDataType[]

The DataSetReaders contained in the ReaderGroup. The DataSetReader is defined in 6.2.8.

The ReaderGroupDataType Structurerepresentation in the AddressSpaceis defined in Table 33.

Table 33– ReaderGroupDataType Definition

Attributes

Value

BrowseName

ReaderGroupDataType

IsAbstract

False

References

NodeClass

BrowseName

IsAbstract

Subtype of PubSubGroupDataType defined in 0.

This Structure DataTypeis an abstract base type for transport mapping specific ReaderGroupparameters. The abstract DataTypedoes not define fields.

The ReaderGroupTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 34.

Table 34– ReaderGroupTransportDataType Definition

Attributes

Value

BrowseName

ReaderGroupTransportDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Subtype of Structure defined in OPC 10000-5.

This Structure DataTypeis an abstract base type for message mapping specific ReaderGroupparameters. The abstract DataTypedoes not define fields.

The ReaderGroupMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 35.

Table 35– ReaderGroupMessageDataType Structure

Attributes

Value

BrowseName

ReaderGroupMessageDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Subtype of Structure defined in OPC 10000-5.

The parameterPublisherIddefines the Publisherto receive NetworkMessagesfrom.

If the value is null, the parameter shall be ignored and all received NetworkMessagespass the PublisherIdfilter.

Valid DataTypesare UIntegerand String.

The parameterWriterGroupId with DataType UInt16defines the identifier of the corresponding WriterGroup.

The default value 0 is defined as null value, and means this parameter shall be ignored.

The parameterDataSetWriterIdwith DataType UInt16 defines the DataSetselected in the Publisherfor the DataSetReader.

If the value is 0 (null), the parameter shall be ignored and all received DataSetMessagespass the DataSetWriterIdfilter.

The parameterDataSetMetaDataprovides the information necessary to decode DataSetMessagesfrom the Publisher. If the DataSetMetaDatachanges in the Publisherand the MajorVersionwas changed, the DataSetReaderneeds an update of the DataSetMetaDatafor further operation. If the update cannot be retrieved in the duration of the MessageReceiveTimeout, the Stateof the DataSetReadershall change to Error_3. The related PublishedDataSetis defined in 6.2.2. The DataSetMetaDataTypeis defined in 6.2.2.1.2. The options for retrieving the update of the DataSetMetaDataare described in 5.2.3.

The parameterDataSetFieldContentMaskwith DataType DataSetFieldContentMaskindicates the fields of a DataValueincluded in the DataSetMessages.

The DataSetFieldContentMaskDataType is defined in 6.2.3.2.

The parameterMessageReceiveTimeoutis the maximum acceptable time between two DataSetMessages. If there is no DataSetMessagereceived within this period, the DataSetReader Stateshall be changed to Error_3 until the next DataSetMessageis received. The DataSetMessagescan be data or keep alive messages.

The MessageReceiveTimeoutis related to the Publisherside parameters PublishingInterval, KeepAliveTimeand KeyFrameCount.

The parameter is defined in 6.2.4.2.

This parameter overwrites the corresponding setting on the ReaderGroupif the value is not INVALID_0.

The parameter is defined in 6.2.4.3.

The parameter shall be null if the SecurityModeis INVALID_0.

The parameter is defined in 6.2.4.4.

The parameter shall be null if the SecurityModeis INVALID_0.

The DataSetReaderPropertiesparameter is an array of DataType KeyValuePairthat specifies additional properties for the configured DataSetReader. The KeyValuePair DataTypeis defined in OPC 10000-5and consists of a QualifiedNameand 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.

This Structure DataTypeis used to represent the DataSetReaderparameters. The DataSetReaderDataTypeis formally defined in Table 36.

Table 36– DataSetReaderDataType Structure

Name

Type

Description

DataSetReaderDataType

Structure

name

String

The name of the DataSetReader.

enabled

Boolean

The enabled state of the DataSetReader.

publisherId

BaseDataType

Defined in 6.2.8.1.

writerGroupId

UInt16

Defined in 6.2.8.2.

dataSetWriterId

UInt16

Defined in 6.2.8.3.

dataSetMetaData

DataSetMetaDataType

Defined in 6.2.8.4.

dataSetField‌ContentMask

DataSetFieldContentMask

Defined in 6.2.8.5.

messageReceiveTimeout

Duration

Defined in 6.2.8.6.

keyFrameCount

UInt32

headerLayoutUri

String

securityMode

MessageSecurityMode

Defined in 6.2.8.7.

securityGroupId

String

Defined in 6.2.8.8.

securityKeyServices

EndpointDescription[]

Defined in 6.2.8.9.

dataSetReaderProperties

KeyValuePair[]

Defined in 6.2.8.10.

transportSettings

DataSetReaderTransportDataType

Transport specific DataSetReader parameters. The abstract base type is defined in 6.2.8.11.2. The concrete subtypes are defined in the sections for transport mapping specific parameters

messageSettings

DataSetReaderMessageDataType

DataSetMessage mapping specific DataSetReader parameters. The abstract base type is defined in 6.2.8.11.3. The concrete subtypes are defined in the sections for message mapping specific parameters.

subscribedDataSet

SubscribedDataSetDataType

The SubscribedDataSet specific parameters. The abstract base type and the concrete subtypes are defined 6.2.9.

This Structure DataTypeis an abstract base type for transport specific DataSetReaderparameters. The DataSetReaderTransportDataTypeis formally defined in Table 37.

Table 37– DataSetReaderTransportDataType Structure

Name

Type

Description

DataSetReaderTransportDataType

Structure

The DataSetReaderTransportDataType Structurerepresentation in the AddressSpaceis defined in Table 38.

Table 38– DataSetReaderTransportDataType Definition

Attributes

Value

BrowseName

DataSetReaderTransportDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

BrokerDataSetReaderTransportDataType

FALSE

Defined in 6.4.2.4.6.

This Structure DataTypeis an abstract base type for message mapping specific DataSetReaderparameters. The DataSetReaderMessageDataTypeis formally defined in Table 39.

Table 39– DataSetReaderMessageDataType Structure

Name

Type

Description

DataSetReaderMessageDataType

Structure

The DataSetReaderMessageDataType Structurerepresentation in the AddressSpaceis defined in Table 40.

Table 40– DataSetReaderMessageDataType Definition

Attributes

Value

BrowseName

DataSetReaderMessageDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

UadpDataSetReaderMessageDataType

FALSE

Defined in 6.3.1.3.10.

HasSubtype

DataType

JsonDataSetReaderMessageDataType

FALSE

Defined in 6.3.2.3.3.

This Structure DataTypeis an abstract base type for SubscribedDataSetparameters. The SubscribedDataSetDataTypeis formally defined in Table 41.

Table 41– SubscribedDataSetDataType Structure

Name

Type

Description

SubscribedDataSetDataType

Structure

The SubscribedDataSetDataType Structurerepresentation in the AddressSpaceis defined in Table 42.

Table 42– SubscribedDataSetDataType Definition

Attributes

Value

BrowseName

SubscribedDataSetDataType

IsAbstract

True

References

NodeClass

BrowseName

IsAbstract

Description

Subtype of Structure defined in OPC 10000-5.

HasSubtype

DataType

TargetVariablesDataType

FALSE

Defined in 6.2.9.2.2.

HasSubtype

DataType

SubscribedDataSetMirrorDataType

FALSE

Defined in 6.2.9.3.3.

The SubscribedDataSetoption TargetVariablesdefines a list of Variablemappings between received DataSetfields and target Variablesin the Subscriber AddressSpace. The FieldTargetDataTypeis defined in 6.2.9.2.3. Target Variablesshall only be used once within the same TargetVariableslist.

This Structure DataTypeis used to represent TargetVariablesspecific parameters. It is a subtype of the SubscribedDataSetDataTypedefined in 6.2.9.1.

The TargetVariablesDataTypeis formally defined in Table 43.

Table 43– TargetVariablesDataType Structure

Name

Type

Description

TargetVariablesDataType

Structure

targetVariables

FieldTargetDataType[]

Defined in 6.2.9.2.1.

This DataTypeis used to provide the metadata for the relation between a field in a DataSetMessageand a target Variablein a DataSetReader. The FieldTargetDataTypeis formally defined in Table 44.

Table 44– FieldTargetDataType Structure

Name

Type

Description

FieldTargetDataType

Structure

dataSetFieldId

Guid

The unique ID of the field in the DataSet. The fields and their unique IDs are defined in the DataSetMetaData Structure.

receiverIndexRange

NumericRange

Index range used to extract parts of an array out of the received data.

It is used to identify a single element of an array, or a single range of indexes for arrays for the received DataSetfield. If a range of elements is specified, the values are returned as a composite. The first element is identified by index 0 (zero). The NumericRangetype is defined in OPC 10000-4.

This parameter is null if the specified Attribute is not an array. However, if the specified Attribute is an array, and this parameter is null, then the complete array is used.

The resulting data array size of this NumericRangeshall match the resulting data array size of the writeIndexRange NumericRangesetting.

targetNodeId

NodeId

The NodeIdof the Variablewhere to write the received DataSetMessagefield value to.

attributeId

IntegerId

Id of the Attributeto write e.g. the Value Attribute. This shall be a valid AttributeId.

The Attributes are defined in OPC 10000-3. The IntegerId DataType is defined in OPC 10000-4. The IntegerIdsfor the Attributesare defined in OPC 10000-6.

writeIndexRange

NumericRange

The index range used for writing received data to the target node.

It is used to identify a single element of an array, or a single range of indexes for arrays for the write operation to the target Node. If a range of elements is specified, the values are written as a composite. The first element is identified by index 0 (zero). The NumericRangetype is defined in OPC 10000-4.

This parameter is null if the specified Attributeis not an array. However, if the specified Attributeis an array, and this parameter is null, then the complete array is used.

overrideValueHandling

OverrideValueHandling

The value is used to define the override value handling behaviour if the State of the DataSetReaderis not Operational_2 or if the corresponding field in the DataSetcontains a Bad StatusCode.

The handling of the OverrideValuein different scenarios is defined in 6.2.10.

The OverrideValueHandlingenumeration DataTypeis defined in 6.2.9.2.4.

overrideValue

Variant

This value is used if the OverrideValueHandling is set to OverrideValue_2and the State of the DataSetReaderis not Operational_2 or if the corresponding field in the DataSetcontains a Bad StatusCode.

The handling of the OverrideValuein different scenarios is defined in 6.2.10.

This Value shall match the DataTypeof the target Node.

The OverrideValueHandlingis an enumeration that specifies the possible options for the handling of Override values. The possible enumeration values are described in Table 45.

Table 45– OverrideValueHandling Values

Value

Description

Disabled_0

The override value handling is disabled.

LastUsableValue_1

In the case of an error, the last usable value is used. If no last useable value is available, the default value for the data type is used.

OverrideValue_2

In the case of an error, the configured override value is used.

This parameter with DataType Stringdefines the BrowseNameand DisplayNameof the parent Nodefor the Variablesrepresenting the fields of the subscribed DataSet.

This parameter with DataType RolePermissionTypedefines the value of the RolePermissionsAttribute to be set on the parent Node. This value is also used as RolePermissionsfor all Variablesof the DataSetmirror.

This Structure DataTypeis used to represent SubscribedDataSetMirrorspecific parameters. It is a subtype of the SubscribedDataSetDataTypedefined in 6.2.9.1.

The SubscribedDataSetMirrorDataTypeis formally defined in Table 46.

Table 46– SubscribedDataSetMirrorDataType Structure

Name

Type

Description

SubscribedDataSetMirrorDataType

Structure

parentNodeName

String

Defined in 6.2.9.3.1.

rolePermissions

RolePermissionType[]

Defined in 6.2.9.3.2.

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 22depicts 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.3.1together with the DataSetFieldContentMask.

image025.png

Figure 22– 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 47.

Table 47– Source to message input mapping

Source

Substitute

Value

DataSet Publisher side

Value

Status(1)

Value

Status(1)

Value 1

Good_*

Value 2

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Null

Bad_*

Value 2

Uncertain_SubstituteValue

Value 1

Good_*

Null

Value 1

Good_*

Value 1

Uncertain_*

Value 1

Uncertain_*

Null

Bad_*

Null

Bad_*

Note 1: 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.

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

Table 48– Message output to target mapping

Decoded DataSet Subscriber

Override Value Handling Enum

Override

Value

Reader

State

Target

Value

Status(1)

Value

Status(1)

Value 1

Good_*

OverrideValue_2

Value 2

Operational_2

Value 1

Good_*

Value 1

Uncertain_*

OverrideValue_2

Value 2

Operational_2

Value 1

Uncertain_*

Null

Bad_*

OverrideValue_2

Value 2

Operational_2

Value 2

Good_LocalOverride

Value 1

Good_*

LastUsableValue_1

Null

Operational_2

Value 1

Good_*

Value 1

Uncertain_*

LastUsableValue_1

Null

Operational_2

Value 1

Uncertain_*

Null

Bad_*

LastUsableValue_1

Null

Operational_2

LastValue(2)

Uncertain_LastUsableValue

Value 1

Good_*

Disabled_0

Null

Operational_2

Value 1

Good_*

Value 1

Uncertain_*

Disabled_0

Null

Operational_2

Value 1

Uncertain_*

Null

Bad_*

Disabled_0

Null

Operational_2

Null

Bad_*

No message received.

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

OverrideValue_2

Value 2

Diabled_0

Paused_1

Value 2

Good_LocalOverride

LastUsableValue_1

Null

Diabled_0

Paused_1

LastValue(2)

Uncertain_LastUsableValue

Disabled_0

Null

Diabled_0

Paused_1

Null

Bad_OutOfService

OverrideValue_2

Value 2

Error_3

Value 2

Good_LocalOverride

LastUsableValue_1

Null

Error_3

LastValue(2)

Uncertain_LastUsableValue

Disabled_0

Null

Error_3

Null

Bad_NoCommunication

Note 1: 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.

Note 2: 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.

This Structure DataTypeis used to represent the PubSubconfiguration of an OPC UA Application. The PubSubConfigurationDataTypeis formally defined in Table 49.

Table 49– PubSubConfigurationDataType Structure

Name

Type

Description

PubSubConfigurationDataType

Structure

publishedDataSets

PublishedDataSetDataType[]

The PublishedDataSetscontained in the configuration. The PublishedDataSetis defined in 6.2.2.

connections

PubSubConnectionDataType[]

The PubSubConnectionscontained in the configuration. The PubSubConnectionis defined in 6.2.6.

The connection includes WriterGroupsand ReaderGroups.

enabled

Boolean

The enabled state of the PubSubconfiguration.

If the PubSubconfiguration is stored in a file, the UABinaryFileDataTypeand the related definitions in A.2shall be used to encode the file content. The values of the UABinaryFileDataTypestructure are described in Table 50.

Table 50– PubSubConfiguration File Content

Field

Type

Value

namespaces

String[]

null

The DataTypesused for configuration are defined in the OPC UA namespace.

structureDataTypes

StructureDescription[]

null

DataTypesused for configuration are defined by OPC UA.

enumDataTypes

EnumDescription[]

null

DataTypesused for configuration are defined by OPC UA.

simpleDataTypes

SimpleTypeDescription[]

null

DataTypesused for configuration are defined by OPC UA.

schemaLocation

String

null

fileHeader

KeyValuePair[]

null

body

BaseDataType

PubSubConfigurationDataType Structure

The PubSubconfiguration represented by the PubSubConfigurationDataType.