Figure 35depicts the ObjectTypesof the message and transport protocol mapping independent part of the PubSubconfiguration model, their main components and their relations.

image038.png

Figure 35– PubSub Configuration Model Overview

An instance of the PublishSubscribeTypewith the name PublishSubscriberepresents the root Objectfor all PubSubrelated Objects. It manages a list of PubSubConnectionType Objectsand the PublishedDataSetType Objectsthrough the PublishedDataSetsfolder.

On the Publisherside, a PublishedDataSetrepresents the information to publish and the DataSetWriterrepresents the transport settings for creating DataSetMessagesfor delivery through a Message Oriented Middleware.

On the Subscriberside, a DataSetReaderrepresents the transport settings for receiving DataSetMessagesfrom a Message Oriented Middlewareand the SubscribedDataSetrepresents the information to dispatch the received DataSetsin the Subscriber.

The configuration can be done through Methodsor product specific configuration tools. The DataSetFolderTypecan be used to organize the PublishedDataSetType Objectsin a tree of folders.

Figure 36shows an example configuration with the root Object PublishSubscribethat is a component of the Server Object.

image039.png

Figure 36– PubSub Example Objects

The example defines two PublishedDataSetspublished through one connection and one group and one DataSetReaderused to subscribe one DataSet.

Figure 37depicts the information flow and the related ObjectTypesfrom the PubSub Information Model. The boxes in the lower part of the figure are examples for blocks necessary to implement the information flow in a Publisher.

image040.png

Figure 37– PubSub Information Flow

The PublishedDataSetType represents the selection and configuration of Variablesor Events. An Eventnotification or a snapshot of the Variablescomprises a DataSet. A DataSetis the content of a DataSetMessagecreated by a DataSetWriter. Examples of concrete PublishedDataSetTypes are PublishedEventsTypeand PublishedDataItemsType. An instance of PublishedDataSetType has a list of DataSetWriters used to produce DataSetMessagessent via the Message Oriented Middleware. The DataSetMetaDatadescribes the content of a DataSet.

Instances of the PubSubConnectionTyperepresent settings associated with Message Oriented Middleware. A connection manages a list of WriterGroupType Objectsand transport protocol mapping specific parameters.

Instances of the WriterGroupTypecontain instances of DataSetWriter Objectsthat share settings such as security configuration, encoding or timing of NetworkMessages. A group manages a list of DataSetWriterTypeObjects that define the payload of the NetworkMessagescreated from the group settings.

DataSetWritersrepresent the configuration necessary to create DataSetMessagescontained as payload in NetworkMessages.

DataSetReadersrepresent the configuration necessary to receive and process DataSetMessageson the Subscriberside.

NetworkMessagesare sent through a transport like AMQP, MQTT or OPC UA UDP. Other transport protocols can be added as subtypes without changing the base model.

The definition of the PubSubrelated ObjectTypesdoes not prescribe how the instances are created or configured or how dynamic the configuration can be. A Publishermay have a preconfigured number of PublishedDataSetsand DataSetWriterswhere only protocol specific settings can be configured. If a Publisherallows dynamic creation of Objectslike DataSetsand DataSetWriters, this can be done through product specific configuration tools or through the standardized configuration Methodsdefined in this specification.

Publishersand Subscribersmay be configurable through vendor-specific engineering tools or with the configuration Methodsand parameters described in this standard. This allows a standard OPC UA Client based configuration tool to configure an OPC UA Serverthat is a Publisherand/or Subscriber.

Configuration parameters are exposed as Variablesof the configurable Objects. Methodsfor creation of Objectshave input arguments for mandatoryVariables. Optional Variablesare not contained in the input arguments of Methodsfor Objectcreation. Optional Variablesare created with a default value if they are supported for the Objector required for the current configuration. The default value can be changed by writing to the Variableafter creation. Newly created Objectsshall have the Status Disabled_0if they are created with the standard Methods.

Variables that can be configured shall have the CurrentWriteflag set in the AccessLevel Attribute. The UserAccessLevelmay be limited based on the rights of the user of the OPC UA Client.

Configuration changes shall be applied in a batch to avoid inconsistencies between different configuration parameters. The mechanism to apply changes in a batch operation is to allow changes only when the related Objecthas the Status Disabled_0and to apply the new configuration settings when the Statusis changed toOperational_2. Therefore write operations to configuration parameters shall be rejected with Bad_InvalidStateif the Statusis notDisabled_0. Changes to PublishedDataSetconfigurations shall be rejected with Bad_InvalidStateif not all related DataSetWritershave the Status Disabled_0.

Figure 38depicts the PublishSubscribeTypeand the components used to represent the PublishSubscribeObject.

image041.png

Figure 38– PublishSubscribe Object Types Overview

The PublishSubscribe Objectis the root node for all PubSubrelated configuration Objects. It is an instance of the PublishSubscribeTypeand a component of the Server Object.

The PublishSubscribeTypecontains the entry point for PublishedDataSetconfiguration, the entry point for PubSubconnections. In addition, it provides Methodsfor connection management.

An instance of this ObjectTyperepresents the root Objectfor all PubSubrelated configuration and metadata Objects. The one instance of this ObjectTypethat represents the root Objectis defined in 8.4. The ObjectTypeis formally defined in Table 103.

Table 103– PublishSubscribeType Definition

Attribute

Value

BrowseName

PublishSubscribeType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of PubSubKeyServiceType defined in 8.2.

HasPubSub‌Connection

Object

<ConnectionName>

PubSubConnectionType

Optional‌Placeholder

HasComponent

Method

SetSecurityKeys

Defined in 9.1.3.3.

Optional

HasComponent

Method

AddConnection

Defined in 9.1.3.4.

Optional

HasComponent

Method

RemoveConnection

Defined in 9.1.3.5.

Optional

HasComponent

Object

PublishedDataSets

DataSetFolderType

Mandatory

HasComponent

Object

Status

PubSubStatusType

Mandatory

HasComponent

Object

Diagnostics

PubSubDiagnosticsRootType

Optional

HasProperty

Variable

SupportedTransportProfiles

String[]

PropertyType

Mandatory

The PublishSubscribeType ObjectTypeis a concrete type and can be used directly.

The configured connectionObjectsare added as components to the instance of the PublishSubscribeType. ConnectionObjectsmay be configured with product specific configuration tools or added and removed through the Methods AddUadpConnection, AddBrokerConnectionand RemoveConnection. The PubSubConnectionTypeis defined in 9.1.5.2. The HasPubSubConnection ReferenceTypeis defined in 9.1.3.6.

The PublishedDataSets Objectcontains the configured PublishedDataSets. The DataSetFolderTypeis defined in 9.1.4.5.1. The DataSetFolderTypecan be used to build a tree of DataSetFolders.

The Status Objectprovides the current operational status of the PublishSubscribefunctionality. The PubSubStatusTypeis defined in 9.1.10. The state machine for the status and the relation to other PubSub Objectslike PubSubConnection, PubSubGroup, DataSetWriterand DataSetReaderare defined in 6.2.1.

The Diagnostics Object provides the current diagnostic information for the PublishSubscribe Object. The PubSubDiagnosticsRootTypeis defined in 9.1.11.7.

The SupportedTransportProfiles Propertyprovides a list of TransportProfileUrissupported by the Server. The TransportProfileUris are defined in OPC 10000-7.

This Methodis used to push the security keys for a SecurityGroupinto a Publisheror Subscriber. It is used if Publisheror Subscriberhave no OPC UA Clientfunctionality.

Encryption is required for this Method. The Methodshall return Bad_SecurityModeInsufficient if the communication is not encrypted.

Signature

SetSecurityKeys(

[in]String SecurityGroupId

[in]String SecurityPolicyUri

[in]IntegerId CurrentTokenId

[in]ByteString CurrentKey

[in]ByteString[]FutureKeys

[in]Duration TimeToNextKey

[in]Duration KeyLifetime

);

Argument

Description

SecurityGroupId

The identifier for the SecurityGroup.

SecurityPolicyUri

The URI for the set of algorithms and key lengths used to secure the messages. The SecurityPoliciesare defined in OPC 10000-7.

CurrentTokenId

The SecurityTokenIdthat appears in the header of messages secured with the CurrentKey. It starts at 1 and is incremented by 1 each time the KeyLifetimeelapses even if no keys are requested. If the CurrentTokenId increments past the maximum value of UInt32it restarts a 1.

If the PubSub Objecthas key material from previous SetSecurityKeys Methodcalls, the CurrentTokenIdis used to match the existing list with the fetched list and to eliminate duplicates.

If the CurrentTokenId is unknown, the existing list shall be discarded and replaced.

CurrentKey

The current key used to secure the messages. This key is not used directly since the protocol associated with the PubSubGroup(s)specifies an algorithm to generate distinct keys for different types of cryptography operations.

FutureKeys

An ordered list of future keys that are used when the KeyLifetime elapses.The SecurityTokenId associated with the first key in the list is 1 more than the CurrentTokenId. All following keys have a SecurityTokenId that is incremented by 1 for every key returned.

TimeToNextKey

The time, in milliseconds, before the CurrentKey is expected to expire.

If a Publisheruses this Methodto get the keys from a SKS, the TimeToNextKeyand KeyLifetimeare used to calculate the time the Publishershall use the next key. The TimeToNextKeydefines the time when to switch from CurrentKeyto FutureKeysand the KeyLifetimedefines when to switch from one future key to the next future key.

For a Subscriberthe TimeToNextKeyand KeyLifetimeare used to calculate the time the Subscribermust expect that the Publishersuse the next key. Due to network latency, out of order delivery and the use of keys for several Publishers, a Subscribermust expect some overlap time where NetworkMessagesare received that are using the previous or the next key.

TimeToNextKeyand KeyLifetimeare also used to calculate the time until Publisherand Subscribermust fetch new keys.

KeyLifetime

The lifetime of a key in milliseconds.

The returned keys may expire earlier if the keys are discarded for some reason. An unplanned key rotation is indicated in the NetworkMessageheader before the next key is used to give the Subscribersome time to fetch new keys.

If the CurrentTokenIdin the message is not recognized the receiver shall call this Methodagain to get new keys.

Method Result Codes

ResultCode

Description

Bad_NotFound

The SecurityGroupIdis unknown.

Bad_UserAccessDenied

The caller is not allowed to set the keys for the SecurityGroup.

Bad_SecurityModeInsufficient

The communication channel is not using encryption.

This Methodis used to add a new PubSubConnection Objectto the PublishSubscribe Object.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddConnection(

[in]PubSubConnectionDataTypeConfiguration

[out]NodeId ConnectionId

);

Argument

Description

Configuration

Configuration parameters for the PubSubConnection. The parameters and the PubSubConnectionDataTypeare defined in 6.2.6.

ConnectionId

The NodeIdof the new connection.

Method Result Codes

ResultCode

Description

Bad_InvalidArgument

The Serveris not able to apply the name. The name may be too long or may contain invalid character.

Bad_BrowseNameDuplicated

An Objectwith the name already exists.

Bad_ResourceUnavailable

The Serverhas not enough resources to add the PubSubConnection Object.

Bad_UserAccessDenied

The Sessionuser is not allowed to create a PubSubConnection Object.

This Methodis used to remove a PubSubConnection Objectfrom the PublishSubscribe Object.

A successful removal of the PubSubConnection Objectremoves all associated group, DataSetWriterand DataSetReader Objects. Before the Objectsare removed, their state is set to Disabled_0.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveConnection(

[in]NodeIdConnectionId

);

Argument

Description

ConnectionId

NodeIdof the PubSubConnection Object to remove from the Server

Method Result Codes

ResultCode

Description

Bad_NodeIdUnknown

The ConnectionIdis unknown.

Bad_UserAccessDenied

The Sessionuser is not allowed to delete the PubSubConnection Object.

The HasPubSubConnection ReferenceTypeis a concrete ReferenceTypethat can be used directly. It is a subtype of the HasComponent ReferenceType.

The SourceNodeof Referencesof this type shall be the PublishSubscribe Objectdefined in 8.4.

The TargetNodeof this ReferenceType shall be an Objectof type PubSubConnectionTypedefined in 9.1.5.2.

The representation of the HasPubSubConnection ReferenceTypein the AddressSpaceis specified in Table 104.

Table 104– HasPubSubConnection ReferenceType

Attributes

Value

BrowseName

HasPubSubConnection

InverseName

PubSubConnectionOf

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Subtype of HasComponent defined in OPC 10000-5.

Figure 39depicts the ObjectTypesof the published DataSetmodel and their components.

image042.png

Figure 39– Published DataSet Overview

Instances of the DataSetFolderTypeare used to organize PublishedDataSetType Objectsin a tree of DataSetFolders. The configuration can be made through Methodsor can be made by product specific configuration tools.

The PublishedDataSetTypedefines the information necessary for a Subscriberto understand and decode DataSetMessagesreceived from the Publisherfor a DataSetand to detect changes of the DataSetsemantic and metadata.

The types derived from the PublishedDataSetTypedefine the source of information for a DataSetin the OPC UA Server AddressSpacelike Variablesor Events.

This ObjectTypeis the base type for PublishedDataSets. It defines the metadata and the configuration version of the DataSetssent as DataSetMessagesthrough DataSetWriters.

The PublishedDataSetTypeis the base type for configurable DataSets. Derived types like PublishedDataItemsTypeand PublishedEventsTypedefines how to collect the DataSetto be published. For PublishedDataItemsTypethis is a list of monitored Variables. For PublishedEventsTypethis is an Eventselection. The list of monitored Variables or the list of selected EventFieldsdefines the content and metadata of the PublishedDataSetType Object.

If the content of the DataSetis defined by a product specific configuration and the source of the DataSetis not known, the PublishedDataSetType can be used directly to expose the PublishedDataSetin the AddressSpaceof the Publisher.

The PublishedDataSetTypeis formally defined in Table 105.

Table 105– PublishedDataSetType Definition

Attribute

Value

BrowseName

PublishedDataSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in OPC 10000-5.

DataSetToWriter

Object

<DataSetWriterName>

DataSetWriterType

Optional‌Placeholder

HasProperty

Variable

ConfigurationVersion

Configuration‌VersionDataType

PropertyType

Mandatory

HasProperty

Variable

DataSetMetaData

DataSetMeta‌DataType

PropertyType

Mandatory

HasProperty

Variable

DataSetClassId

Guid

PropertyType

Optional

HasComponent

Object

ExtensionFields

ExtensionFieldsType

Optional

The PublishedDataSetType ObjectTypeis a concrete type and can be used directly. It can be used to expose a PublishedDataSetwhere the data collection is not visible in the AddressSpace.

The Objecthas a list of DataSetWriters. A DataSetWritersends DataSetMessagescreated from DataSetsthrough aMessage Oriented Middleware. The link between the PublishedDataSet Objectand a DataSetWritershall be created when an instance of the DataSetWriterTypeis created. The DataSetWriterTypeis defined in 9.1.7.2. If a DataSetWriteris created for the PublishedDataSet, it is added to the list using the ReferenceType DataSetToWriter. The DataSetToWriter ReferenceTypeis defined in 9.1.4.2.5. If a DataSetWriterfor the PublishedDataSetis removed from a group, the Referenceto this DataSetWritershall also be removed from this list. The group model is defined in 9.1.6.

The Property ConfigurationVersionis related to configuration of the DataSetproduced by the PublishedDataSet Object. The PublishedDataSetparameters affecting the version are defined in the concrete types derived from this base type. The ConfigurationVersionDataTypeand the rules for setting the version are defined in 6.2.2.1.5.

The Property DataSetMetaDataprovides the information necessary to decode DataSetMessageson the Subscriberside if the DataSetMessagesare not self-describing. The information in this Propertyis automatically updated if the ConfigurationVersionis changed based on DataSetconfiguration change. The DataSetMetaDataTypeis defined in 6.2.2.1.2. The Namefield in the DataSetMetaDataTypeshall match the name of the PublishedDataSetType Objectif the DataSetMetaDatais not based on a DataSetClass.

The MajorVersionpart of the ConfigurationVersioncontained in the DataSetMessagemust match the ConfigurationVersionof the DataSetMetaData available on the Subscriber side.

The DataSetClassIdis the globally unique identifier for a DataSetClass. The optional Propertyshall be present if the DataSetClassIdof the DataSetMetaDatais not null. If the DataSetClassIdis set, the Publishershall reject any configuration changes that change the DataSetMetaData.

The ExtensionFields Object allows the configuration of fields with values to be included in the DataSetin case the existing AddressSpaceof the Publisherdoes not provide the necessary information. The extension fields are added as Propertiesto the ExtensionFields Object.For PublishedDataItemsTypebase PublishedDataSets, an extension field is included as a Variablein the published DataSet. For PublishedEventsTypebase PublishedDataSets, an extension field is included into the SelectedFieldsfor the DataSet.

The ExtensionFieldsTypeis formally defined in Table 106. It allows the configuration of fields with values to be included in the DataSetin case the existing AddressSpaceof the Publisherdoes not provide the necessary information.

Table 106– ExtensionFieldsType Definition

Attribute

Value

BrowseName

ExtensionFieldsType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in OPC 10000-5.

HasProperty

Variable

<ExtensionFieldName>

BaseDataType

PropertyType

OptionalPlaceholder

HasComponent

Method

AddExtensionField

Defined in 9.1.4.2.3.

Mandatory

HasComponent

Method

RemoveExtensionField

Defined in 9.1.4.2.4.

Mandatory

The ExtensionFieldsType ObjectTypeis a concrete type and can be used directly.

The configured list of extension fields is exposed through Propertiesand managed through the Methods AddExtensionFieldand RemoveExtensionField. An ExtensionFieldis not automatically included in the DataSet. The ExtensionFieldmust be added to the DataSetafter creation.

Metadata that normally appear in message headers can be included to the body by adding extension fields with well-known QualifiedNames. These well-known QualifiedNamesare shown in Table 107. The qualifying namespace is the OPC UA namespace.

Table 107– Well-Known Extension Field Names

Name

Type

Description

PublisherId

BaseDataType

The PublisherIdfrom the Connection Object.

DataSetName

String

The Namefrom the DataSetMetaData.

DataSetClassId

Guid

The DataSetClassIdfrom the DataSetMetaData.

MajorVersion

UInt32

The MajorVersion from the ConfigurationVersion

MinorVersion

UInt32

The MinorVersion from the ConfigurationVersion

DataSetWriterId

BaseDataType

The DataSetWriterIdfrom the DataSetWriterTransport Object.

MessageSequenceNumber

UInt16

The sequence number from the DataSetMessage.

If a well-known name is used the value placed in the message body is dynamically generated from the current settings. The value set in the AddExtensionField Methodis ignored. Subtypes of DataSetWriterTransportTypemay extend this list.

This Methodis used to add a Propertyto the Object ExtensionFields.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddExtensionField(

[in]QualifiedNameFieldName

[in]BaseDataTypeFieldValue

[out]NodeId FieldId

);

Argument

Description

FieldName

Name of the field to add.

FieldValue

The value of the field to add.

FieldId

The NodeIdof the added field Property.

Method Result Codes

ResultCode

Description

Bad_NodeIdExists

A field with the name already exists.

Bad_InvalidArgument

The Serveris not able to apply the Name. The Namemay be too long or may contain invalid characters.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

This Methodis used to remove a Propertyfrom the Object ExtensionFields.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveExtensionField(

[in]NodeId FieldId

);

Argument

Description

FieldId

The NodeIdfield Propertyto remove.

Method Result Codes

ResultCode

Description

Bad_NodeIdUnknown

A field with the NodeIddoes not exist.

Bad_NodeIdInvalid

The FieldIdis not a NodeIdof a Propertyof the ExtensionFieldsType Object.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

The DataSetToWriter ReferenceTypeis a concrete ReferenceTypethat can be used directly. It is a subtype of the HierarchicalReferences ReferenceType.

The SourceNodeof Referencesof this type shall be an Objectof ObjectType PublishedDataSetTypeor an ObjectTypethat is a subtype of PublishedDataSetTypedefined in 9.1.4.2.1.

The TargetNodeof this ReferenceType shall be an Objectof the ObjectType DataSetWriterTypedefined in 9.1.7.1.

Each DataSetWriter Objectshall be the TargetNodeof exactly one DataSetToWriter Reference.

Serversshall provide the inverse Referencethat relates a DataSetWriter Objectback to a PublishedDataSetTypeObject.

The representation of the DataSetToWriter ReferenceTypein the AddressSpaceis specified in Table 108.

Table 108– DataSetToWriter ReferenceType

Attributes

Value

BrowseName

DataSetToWriter

InverseName

WriterToDataSet

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Subtype of HierarchicalReferences defined in OPC 10000-5.

The PublishedDataItemsTypeis used to select a list of OPC UA Variablesas the source for the creation of DataSetssent through one or more DataSetWriters.

The PublishedDataItemsTypeis formally defined Table 109.

Table 109– PublishedDataItemsType Definition

Attribute

Value

BrowseName

PublishedDataItemsType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of PublishedDataSetType defined in 9.1.4.2.

HasProperty

Variable

PublishedData

PublishedVariable‌DataType[]

PropertyType

Mandatory

HasComponent

Method

AddVariables

Defined in 9.1.4.3.2.

Optional

HasComponent

Method

RemoveVariables

Defined in 9.1.4.3.3.

Optional

The PublishedDataItemsType ObjectTypeis a concrete type and can be used directly.

The PublishedDatais defined in 6.2.2.6.1. Existing entries in the array can be changed by writing the new settings to the Variable Value. A new Valueshall be rejected with Bad_OutOfRange if the array size would be changed. Entries in the array can be added and removed with the Methods AddVariablesand RemoveVariables.

The index into the list of entries in the PublishedDatahas an important role for Subscribersand for configuration tools. It is used as a handle to reference the entry in configuration actions like RemoveVariableor the Valuein 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.

This Methodis used to add Variablesto the PublishedData Property. The PublishedDatacontains a list of published Variablesof a PublishedDataItemsType Object. The information provided in the input Arguments and information available for the added Variables is also used to create the content of the DataSetMetaData Property. The mapping to the DataSetMetaDatais described for the input Arguments.

Variablesshall be added at the end of the list in PublishedData. This ensures that Subscribersare only affected by the change if they are interested in the added Variables.

If at least one Variablewas added to the PublishedData, the MinorVersionof the ConfigurationVersionshall be updated. The ConfigurationVersionDataTypeand the rules for setting the version are defined in 6.2.2.1.5.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddVariables(

[in]ConfigurationVersionDataType ConfigurationVersion

[in]String[] FieldNameAliases

[in]Boolean[] PromotedFields

[in]PublishedVariableDataType[] VariablesToAdd

[out]ConfigurationVersionDataType NewConfigurationVersion

[out] StatusCode[] AddResults

);

Argument

Description

ConfigurationVersion

Configuration version of the DataSet. The configuration version must match the entire current configuration version of the Objectwhen the Methodcall is processed. If it does not match, the result Bad_InvalidState shall be returned.

The ConfigurationVersionDataTypeis defined in 6.2.2.1.5.

FieldNameAliases

The names assigned to the selected Variablesfor the fields in the DataSetMetaDataand in the DataSetMessagesfor tagged message encoding. The size and the order of the array shall match the VariablesToAdd.

The string shall be used to set the name field in the FieldMetaDatathat is part of the DataSetMetaData.

PromotedFields

The flags indicating if the corresponding field is promoted to the DataSetMessageheader. The size and the order of the array shall match the VariablesToAdd.

The flag is used to set the PromotedFieldflag in the fieldFlagsparameter in the FieldMetaData.

VariablesToAdd

Array of Variablesto add to PublishedDataand the related configuration settings. Successfully added variables are appended to the end of the list of published variables configured in the PublishedData Property. Failed variables are not added to the list.

The PublishedVariableDataTypeis defined in 6.2.2.6.1.

The parameters builtInType, dataType, valueRankand arrayDimensionsof the FieldMetaDataare filled from corresponding Variable Attributes.

NewConfigurationVersion

Returns the new configuration version of the PublishedDataSet.

AddResults

The result codes for the variables to add.

Variables exceeding the maximum number of items in the Objectare rejected with Bad_TooManyVariables.

Method Result Codes

ResultCode

Description

Bad_NothingToDo

An empty list of variables was passed in.

Bad_InvalidState

The configuration version did not match the current state of the object.

Bad_NotWritable

The DataSetis based on a DataSetClassand the size of the PublishedDataarray cannot be changed.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the object.

Operation Result Codes

ResultCode

Description

Bad_NodeIdInvalid

See OPC 10000-4for the description of this result code.

Bad_NodeIdUnknown

See OPC 10000-4for the description of this result code.

Bad_IndexRangeInvalid

See OPC 10000-4for the description of this result code.

Bad_IndexRangeNoData

See OPC 10000-4for the description of this result code.

If the ArrayDimensionshave a fixed length that cannot change and no data exists within the range of indexes specified, Bad_IndexRangeNoData is returned in AddVariables. Otherwise, if the length of the array is dynamic, the Publishershall insert this status in a DataSetif no data exists within the range.

Bad_TooManyVariables

The Publisherhas reached its maximum number of items for the PublishedDataItemsTypeobject.

This Methodis used to remove Variablesfrom the PublishedDatalist. It contains the list of published Variablesof a PublishedDataItemsType Object.

A caller shall read the current Values of PublishedDataand ConfigurationVersionprior to calling this Method, to ensure the use of the correct index of the Variablesthat are being removed.

If at least one Variablewas successfully removed from the PublishedData, the MajorVersionof the ConfigurationVersionshall be updated. The ConfigurationVersionDataTypeand the rules for setting the version are defined in 6.2.2.1.5.

The order of the remaining Variablesin the PublishedDatashall be preserved.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveVariables(

[in]ConfigurationVersionDataType ConfigurationVersion

[in]UInt32[] VariablesToRemove

[out]ConfigurationVersionDataType NewConfigurationVersion

[out] StatusCode[] RemoveResults

);

Argument

Description

ConfigurationVersion

Configuration version of the DataSet. The configuration version and the indices passed in through VariablesToRemovemust match the entire current configuration version of the Objectwhen the Methodcall is processed. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataTypeis defined in 6.2.2.1.5.

VariablesToRemove

Array of indices of Variables to remove from the list of Variablesconfigured in PublishedDataof the PublishedDataItemsType. This matches the list of fields configured in the DataSetMetaDataof the PublishedDataSetType.

NewConfigurationVersion

Returns the new configuration version of the DataSet.

RemoveResults

The result codes for each of the variables to remove.

Method Result Codes

ResultCode

Description

Bad_NothingToDo

An empty list of variables was passed in.

Bad_InvalidState

The configuration version did not match the current state of the Object.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Operation Result Codes

ResultCode

Description

Bad_InvalidArgument

The passed index was invalid.

This PublishedDataSetTypeis used to configure the collection of OPC UA Events.

The PublishedEventsTypeis formally defined in Table 110.

Table 110– PublishedEventsType Definition

Attribute

Value

BrowseName

PublishedEventsType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of PublishedDataSetType defined in 9.1.4.2.1.

HasProperty

Variable

EventNotifier

NodeId

PropertyType

Mandatory

HasProperty

Variable

SelectedFields

SimpleAttributeOperand[]

PropertyType

Mandatory

HasProperty

Variable

Filter

ContentFilter

PropertyType

Mandatory

HasComponent

Method

ModifyFieldSelection

Defined in 9.1.4.4.2.

Optional

The PublishedEventsType ObjectTypeis a concrete type and can be used directly.

The EventNotifieris defined in 6.2.2.7.1.

The SelectedFieldsis defined in 6.2.2.7.2.

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 SelectedFields adds additional fields, the MinorVersionof the ConfigurationVersionshall be updated. If a change of the SelectedFieldsremoves fields, the MajorVersionof the ConfigurationVersionshall be updated. The Property ConfigurationVersionis defined in the base ObjectType PublishedDataSetType.

The Filteris defined in 6.2.2.7.3. A change of the Filterdoes not affect the ConfigurationVersionsince the content of the DataSetdoes not change.

This Methodis used to modify the event field selection of a PublishedEventsType Object.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

ModifyFieldSelection(

[in]ConfigurationVersionDataType ConfigurationVersion

[in]String[] FieldNameAliases

[in]Boolean[] PromotedFields

[in]SimpleAttributeOperand[] SelectedFields

[out]ConfigurationVersionDataType NewConfigurationVersion

);

Argument

Description

ConfigurationVersion

Configuration version of the DataSet. The configuration version must match the entire current configuration version of the Objectwhen the Methodcall is processed. If it does not match, the result Bad_InvalidState shall be returned.

The ConfigurationVersionDataTypeis defined in 6.2.2.1.5.

FieldNameAliases

The names assigned to the selected fields in the DataSetMetaDataand in the DataSetMessagesfor tagged message encoding. The size and the order of the array must match the SelectedFields.

The string is used to set the name field in the FieldMetaDatathat is part of the DataSetMetaData.

PromotedFields

The flags indicating if the corresponding field is promoted to the DataSetMessageheader. The size and the order of the array shall match the SelectedFields.

The flag is used to set the corresponding field in the FieldMetaDatathat is part of the DataSetMetaData.

SelectedFields

The selection of Eventfields contained in the DataSetgenerated for an Eventand sent through the DataSetWriter. The SimpleAttributeOperand DataTypeis defined in OPC 10000-4.

A change to the selected fields requires a change of the ConfigurationVersion.

NewConfigurationVersion

Return the new configuration version of the DataSet.

Method Result Codes

ResultCode

Description

Bad_InvalidState

The configuration version did not match the current state of the Object.

Bad_EventFilterInvalid

The event filter is not valid.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

The DataSetFolderType is formally defined Table 111.

Table 111– DataSetFolderType Definition

Attribute

Value

BrowseName

DataSetFolderType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of FolderType defined in OPC 10000-5.

Organizes

Object

<DataSetFolderName>

DataSetFolderType

OptionalPlaceholder

HasComponent

Object

<PublishedDataSetName>

PublishedDataSetType

OptionalPlaceholder

HasComponent

Method

AddPublishedDataItems

Defined in 9.1.4.5.2.

Optional

HasComponent

Method

AddPublishedEvents

Defined in 9.1.4.5.3.

Optional

HasComponent

Method

AddPublishedDataItemsTemplate

Defined in 9.1.4.5.4.

Optional

HasComponent

Method

AddPublishedEventsTemplate

Defined in 9.1.4.5.5.

Optional

HasComponent

Method

RemovePublishedDataSet

Defined in 9.1.4.5.6.

Optional

HasComponent

Method

AddDataSetFolder

Defined in 9.1.4.5.7.

Optional

HasComponent

Method

RemoveDataSetFolder

Defined in 9.1.4.5.8.

Optional

The DataSetFolderType ObjectTypeis a concrete type and can be used directly.

Instances of the DataSetFolderTypecan contain PublishedDataSetsor other instances of the DataSetFolderType. This can be used to build a tree of Folder Objectsused to group the configured PublishedDataSets.

The PublishedDataSetType Objectsare added as components to the instance of the DataSetFolderType. An instance of a PublishedDataSetTypeis referenced only from one DataSetFolder. If the DataSetFolderis deleted, all referenced PublishedDataSetType Objectsare deleted with the folder.

PublishedDataSetType Objectsmay be configured with product specific configuration tools or added and removed through the Methods AddPublishedDataItems, AddPublishedEventsand RemovePublishedDataSet. The PublishedDataSetType is defined in 9.1.4.2.1.

This Methodis used to create a PublishedDataSets Objectof type PublishedDataItemsType and to add it to the DataSetFolderType Object. The configuration parameters passed in with this Methodare further described in the PublishedDataItemsTypedefined in 9.1.4.3.1and the PublishedDataSetTypedefined in 9.1.4.2.

The settings in the VariablesToAddare used to configure the data acquisition for the DataSetand are used to initialize the PublishedData Propertyof the PublishedDataItemsType.

The DataSetMetaDataof the PublishedDataSetTypeis created from meta-data of the Variablesreferenced inVariablesToAddand the settings in FieldNameAliasesand FieldFlags.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddPublishedDataItems (

[in]String Name

[in]String[] FieldNameAliases

[in]DataSetFieldFlags[] FieldFlags

[in]PublishedVariableDataType[] VariablesToAdd

[out] NodeId DataSetNodeId

[out]ConfigurationVersionDataType ConfigurationVersion

[out] StatusCode[] AddResults

);

Argument

Description

Name

Name of the Objectto create.

FieldNameAliases

The names assigned to the selected Variablesfor the fields in the DataSetMetaDataand in the DataSetMessagesfor tagged message encoding. The size and the order of the array shall match the VariablesToAdd.

The string shall be used to set the name field in the FieldMetaDatathat is part of the DataSetMetaData.

The name shall be unique in the DataSet.

FieldFlags

The field flags assigned to the selected Variables for the fields in the DataSetMetaData. The size and the order of the array shall match the VariablesToAdd.

The flag is used to set the corresponding field in the FieldMetaDatathat is part of the DataSetMetaData.

VariablesToAdd

Array of Variables to add to PublishedData and the related configuration settings. Successfully added variables are appended to the end of the list of published variables configured in the PublishedData Property. Failed variables are not added to the list.

The PublishedVariableDataTypeis defined in 6.2.2.6.1.

DataSetNodeId

NodeIdof the created PublishedDataSets Object.

ConfigurationVersion

Returns the initial configuration version of the DataSet.

AddResults

The result codes for the variables to add.

Variables exceeding the maximum number of items in the Objectare rejected with Bad_TooManyMonitoredItems.

Method Result Codes

ResultCode

Description

Bad_InvalidState

The current state of the Objectdoes not allow a configuration change.

Bad_BrowseNameDuplicated

A data set Objectwith the name already exists.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Bad_InvalidArgument

The Serveris not able to apply the Name. The Namemay be too long or may contain invalid characters.

Operation Result Codes

ResultCode

Description

Bad_NodeIdInvalid

See OPC 10000-4for the description of this result code.

Bad_NodeIdUnknown

See OPC 10000-4for the description of this result code.

Bad_IndexRangeInvalid

See OPC 10000-4for the description of this result code.

Bad_IndexRangeNoData

See OPC 10000-4for the description of this result code.

If the ArrayDimensionshave a fixed length that cannot change and no data exists within the range of indexes specified, Bad_IndexRangeNoData is returned in AddVariables. Otherwise if the length of the array is dynamic, the Publishershall insert this status in a DataSetif no data exists within the range.

Bad_TooManyMonitoredItems

The Serverhas reached its maximum number of items for the PublishedDataItemsType object.

Bad_DuplicateName

The passed field name alias already exists.

This Methodis used to add a PublishedEventsType Objectto the DataSetFolderType Object. The configuration parameters passed in with this Methodare further described in the PublishedEventsTypedefined in 9.1.4.4.1and the PublishedDataSetTypedefined in 9.1.4.2.

The settings in the EventNotifier, SelectedFields andFilterare used to configure the data acquisition for the DataSetand are used to initialize the correspondingPropertiesof the PublishedEventsType.

The DataSetMetaDataof the PublishedDataSetTypeis created from meta-data of the selected Eventfields and the settings in FieldNameAliasesand FieldFlags.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddPublishedEvents(

[in]String Name

[in]NodeId EventNotifier

[in]String[] FieldNameAliases

[in]DataSetFieldFlags[] FieldFlags

[in]SimpleAttributeOperand[]SelectedFields

[in]ContentFilter Filter

[out]ConfigurationVersionDataTypeConfigurationVersion

[out] NodeId DataSetNodeId

);

Argument

Description

Name

Name of the DataSet Objectto create.

EventNotifier

The NodeIdof the Objectin the event notifier tree of the OPC UA Serverthat is used to collect Eventsfrom.

FieldNameAliases

The names assigned to the selected fields in the DataSetMetaDataand in the DataSetMessagesfor tagged message encoding. The size and the order of the array shall match the SelectedFields.

The string is used to set the name field in the FieldMetaDatathat is part of the DataSetMetaData.

FieldFlags

The field flags assigned to the selected fields in the DataSetMetaData. The size and the order of the array shall match the SelectedFields.

The flag is used to set the corresponding field in the FieldMetaDatathat is part of the DataSetMetaData.

SelectedFields

The selection of Event Fields contained in the DataSetgenerated for an Eventand sent through the DataSetWriter. The SimpleAttributeOperand DataTypeis defined in OPC 10000-4.

Filter

The filter applied to the Events. It allows the reduction of the DataSetsgenerated from Eventsthrough a filter like filtering for a certain EventType. The ContentFilter DataTypeis defined in OPC 10000-4.

ConfigurationVersion

Returns the initial configuration version of the PublishedDataSets.

DataSetNodeId

NodeIdof the created PublishedDataSets Object.

Method Result Codes

ResultCode

Description

Bad_InvalidState

The current state of the Objectdoes not allow a configuration change.

Bad_NodeIdExists

A data set Objectwith the name already exists.

Bad_NodeIdUnknown

The Eventnotifier node is not known in the Server.

Bad_EventFilterInvalid

The Eventfilter is not valid.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Bad_InvalidArgument

The Serveris not able to apply the Name. The Namemay be too long or may contain invalid characters.

This Methodis used to create a PublishedDataSets Objectof type PublishedDataItemsType and to add it to the DataSetFolderType Object. The configuration parameters passed in with this Methodare further described in the PublishedDataItemsTypedefined in 9.1.4.3.1and the PublishedDataSetTypedefined in 9.1.4.2.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddPublishedDataItemsTemplate (

[in]String Name

[in]DataSetMetaDataType DataSetMetaData

[in]PublishedVariableDataType[] VariablesToAdd

[out] NodeId DataSetNodeId

[out] StatusCode[] AddResults

);

Argument

Description

Name

Name of the Objectto create.

DataSetMetaData

The DataSetMetaDatapredefined by the caller. The initial setting shall not be changed by the Publisher. If the dataSetClassIdof the DataSetMetaDatais not null, the DataSetClassId Propertyof the PublishedDataSetTypeshall be created and initialized with the dataSetClassId value.

The name of the PublishedDataSet Objectis defined by the name in the DataSetMetaData.

VariablesToAdd

Array of variable settings for the data acquisition for the fields in the DataSetMetaData.

The size of the array shall match the size of the fieldsarray in the DataSetMetaData.

The substituteValuein the VariablesToAddentries shall be configured.

For failed variables the publishedVariablefield of entry in the resulting PublishedData Propertyshall be set to a null NodeId.

If there is no Variableavailable for a field in the DataSetMetaDatathe publishedVariablefield for the entry shall be set to a null NodeId.

The PublishedVariableDataTypeis defined in 6.2.2.6.1.

DataSetNodeId

NodeIdof the created PublishedDataSets Object.

AddResults

The result codes for the variables to add.

Method Result Codes

ResultCode

Description

Bad_InvalidState

The current state of the Objectdoes not allow a configuration change.

Bad_BrowseNameDuplicated

A data set Objectwith the name already exists.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Bad_InvalidArgument

The VariablesToAddparameter does not match the array size of the fields in the DataSetMetaDataor the configuration of the VariablesToAddcontains invalid settings.

Bad_TooManyMonitoredItems

The Objectcannot be created since the number of items in the PublishedDataSetexceeds the capabilities of the Publisher.

Operation Result Codes

ResultCode

Description

Bad_NodeIdInvalid

See OPC 10000-4for the description of this result code.

Bad_NodeIdUnknown

See OPC 10000-4for the description of this result code.

Bad_IndexRangeInvalid

See OPC 10000-4for the description of this result code.

Bad_IndexRangeNoData

See OPC 10000-4for the description of this result code.

If the ArrayDimensionshave a fixed length that cannot change and no data exists within the range of indexes specified, Bad_IndexRangeNoData is returned in AddVariables. Otherwise if the length of the array is dynamic, the Publishershall insert this status in a DataSetif no data exists within the range.

Bad_TooManyMonitoredItems

The Serverhas reached its maximum number of items for the PublishedDataItemsType Object.

Bad_DuplicateName

The passed field name alias already exists.

This Methodis used to add a PublishedEventsType Objectto the DataSetFolderType Object. The configuration parameters passed in with this Methodare further described in the PublishedEventsTypedefined in 9.1.4.4.1and the PublishedDataSetTypedefined in 9.1.4.2.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddPublishedEventsTemplate(

[in]String Name

[in]DataSetMetaDataType DataSetMetaData

[in]NodeId EventNotifier

[in]SimpleAttributeOperand[]SelectedFields

[in]ContentFilter Filter

[out] NodeId DataSetNodeId

);

Argument

Description

Name

Name of the Objectto create.

DataSetMetaData

The DataSetMetaDatapredefined by the caller. The initial setting shall not be changed by the Publisher. If the dataSetClassIdof the DataSetMetaDatais not null, the DataSetClassId Propertyof the PublishedDataSetTypeshall be created and initialized with the dataSetClassId value.

The name of the PublishedDataSet Objectis defined by the name in the DataSetMetaData.

EventNotifier

The NodeIdof the Objectin the event notifier tree of the OPC UA Serverthat is used to collect Eventsfrom.

SelectedFields

The selection of Event Fields contained in the DataSetgenerated for an Eventand sent through the DataSetWriter.

The size of the array shall match the size of the fields array in the DataSetMetaData.

If there is no Eventfield available for a field in the DataSetMetaDatathe browsePathfield for the SimpleAttributeOperandentry shall be set to null.

The SimpleAttributeOperand DataTypeis defined in OPC 10000-4.

Filter

The filter applied to the Events. It allows the reduction of the DataSetsgenerated from Eventsthrough a filter like filtering for a certain EventType. The ContentFilter DataTypeis defined in OPC 10000-4.

DataSetNodeId

NodeIdof the created PublishedDataSets Object.

Method Result Codes

ResultCode

Description

Bad_InvalidState

The current state of the Objectdoes not allow a configuration change.

Bad_NodeIdExists

A DataSet Objectwith the name already exists.

Bad_NodeIdUnknown

The Eventnotifier node is not known in the Server.

Bad_EventFilterInvalid

The Eventfilter is not valid.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Bad_InvalidArgument

The Serveris not able to apply the Name. The Namemay be too long or may contain invalid characters.

This Methodis used to remove a PublishedDataSetType Objectfrom the DataSetFolderType Object.

A successful removal of the PublishedDataSetType Objectremoves all associated DataSetWriter Objects. Before the Objectsare removed, their state is changed to Disabled_0

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemovePublishedDataSet(

[in]NodeIdDataSetNodeId

);

Argument

Description

DataSetNodeId

NodeIdof the PublishedDataSets Objectto remove from the Server. The DataSetIdis either returned by the AddPublishedDataItemsor AddPublishedEvents Methodsor can be discovered by browsing the list of configured PublishedDataSetsin the PublishSubscribe Object.

Method Result Codes

ResultCode

Description

Bad_NodeIdUnknown

The DataSetNodeIdis unknown.

Bad_UserAccessDenied

The Sessionuser is not allowed to delete a PublishedDataSetType.

This Methodis used to add a DataSetFolderType Objectto a DataSetFolderType Object.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddDataSetFolder(

[in]StringName

[out]NodeIdDataSetFolderNodeId

);

Argument

Description

Name

Name of the Objectto create.

DataSetFolderNodeId

NodeIdof the created DataSetFolderType Object.

Method Result Codes

ResultCode

Description

Bad_BrowseNameDuplicated

A folder Objectwith the name already exists.

Bad_InvalidArgument

The Serveris not able to apply the Name. The Namemay be too long or may contain invalid characters.

Bad_UserAccessDenied

The Sessionuser is not allowed to add a folder.

This Methodis used to remove a DataSetFolderType Objectfrom the parent DataSetFolderType Object.

A successful removal of the DataSetFolderType Objectremovesall associated PublishedDataSetType Objectsand their associated DataSetWriter Objects. Before the Objectsare removed, their state is changed to Disabled_0

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveDataSetFolder(

[in]NodeIdDataSetFolderNodeId

);

Argument

Description

DataSetFolderNodeId

NodeIdof the DataSetFolderType Objectto remove from the Server.

Method Result Codes

ResultCode

Description

Bad_NodeIdUnknown

The DataSetFolderNodeIdis unknown.

Bad_UserAccessDenied

The Sessionuser is not allowed to delete a data set.

Figure 40depicts the ObjectTypefor the PubSubconnection model and its components and the relations to other parts of the model.

image043.png

Figure 40– PubSubConnectionType Overview

This ObjectTypeis a concrete type for Objectsrepresenting PubSubConnections. A PubSubConnectionis a combination of protocol selection, protocol settings and addressing information. The PubSubConnectionTypeis formally defined in Table 112.

Table 112– PubSubConnectionType Definition

Attribute

Value

BrowseName

PubSubConnectionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in OPC 10000-5.

HasProperty

Variable

PublisherId

BaseDataType

PropertyType

Mandatory

HasComponent

Variable

TransportProfileUri

String

SelectionListType

Mandatory

HasProperty

Variable

ConnectionProperties

KeyValuePair[]

PropertyType

Mandatory

HasComponent

Object

Address

NetworkAddressType

Mandatory

HasComponent

Object

TransportSettings

ConnectionTransportType

Optional

HasWriterGroup

Object

<WriterGroupName>

WriterGroupType

OptionalPlaceholder

HasReaderGroup

Object

<ReaderGroupName>

ReaderGroupType

OptionalPlaceholder

HasComponent

Object

Status

PubSubStatusType

Mandatory

HasComponent

Object

Diagnostics

PubSubDiagnostics‌ConnectionType

Optional

HasComponent

Method

AddWriterGroup

Defined in 9.1.5.3.

Optional

HasComponent

Method

AddReaderGroup

Defined in 9.1.5.4.

Optional

HasComponent

Method

RemoveGroup

Defined in 9.1.5.5.

Optional

The PublisherIdis defined in 6.2.6.1.

The TransportProfileUri is defined in 6.2.6.2. The Propertyis initialized with the default transport protocol for the Addressduring the creation of the connection. The SelectionValues Propertyof the SelectionListTypeshall contain the list of supported TransportProfileUris. The SelectionListTypeis defined in OPC 10000-5.

The ConnectionPropertiesis defined in 6.2.6.4.

The Address is defined in 6.2.6.3. The abstract NetworkAddressTypeis defined in A.3.1. The default type used for concrete instances is the NetworkAddressUrlTypedefined in A.3.2. It represents the Addressin the form of a URL String.

The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The ConnectionTransportTypeis defined in 9.1.5.6. The Objectshall be present if the transport protocol mapping defines specific parameters.

The configured WriterGroupand ReaderGroup Objectsare added as components to the instance of the PubSubConnectionType. PubSubGroup Objectsmay be configured with productspecific configuration tools or added and removed through the OPC UA Methods AddWriterGroup, AddReaderGroupand RemoveGroup.

The Status Objectprovides the current operational status of the connection. The PubSubStatusTypeis defined in 9.1.10. The state machine for the status and the relation to other PubSub Objectslike PublishSubscribe, PubSubGroup, DataSetWriterand DataSetReaderare defined in 6.2.1.

The Diagnostics Object provides the current diagnostic information for a PubSubConnectionType Object. The PubSubDiagnosticsConnectionTypeis defined in 9.1.11.8.

This Methodis used to add a new WriterGroup Objectto an instance of the PubSubConnection.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddWriterGroup(

[in]WriterGroupDataType Configuration

[out]NodeId GroupId

);

Argument

Description

Configuration

Configuration parameters for the WriterGroup. The parameters and the WriterGroupDataTypeare defined in 6.2.5.

GroupId

The NodeIdof the new WriterGroup Object.

Method Result Codes

ResultCode

Description

Bad_InvalidArgument

The Serveris not able to apply the GroupName. The name may be too long or may contain invalid character.

Bad_BrowseNameDuplicated

An Objectwith the name already exists in the connection.

Bad_ResourceUnavailable

The Serverdoes not have enough resources to add the group.

Bad_UserAccessDenied

The Sessionuser does not have rights to create the group.

This Methodis used to add a new ReaderGroup Objectto an instance of the PubSubConnection.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddReaderGroup(

[in]ReaderGroupDataType Configuration

[out]NodeId GroupId

);

Argument

Description

Configuration

Configuration parameters for the ReaderGroup. The parameters and the ReaderGroupDataTypeare defined in 6.2.7.

GroupId

The NodeIdof the new ReaderGroup Object.

Method Result Codes

ResultCode

Description

Bad_InvalidArgument

The Serveris not able to apply the GroupName. The name may be too long or may contain invalid character.

Bad_BrowseNameDuplicated

An Objectwith the name already exists in the connection.

Bad_ResourceUnavailable

The Serverdoes not have enough resources to add the group.

Bad_UserAccessDenied

The Sessionuser does not have rights to create the group.

This Methodis used to remove a PubSubGroup Objectfrom the connection.

A successful removal of the PubSubGroup Objectremoves all associated DataSetWriteror DataSetReader Objects. Before the Objectsare removed, their state is set to Disabled_0.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveGroup(

[in]NodeIdGroupId

);

Argument

Description

GroupId

NodeIdof the group to remove from the connection

Method Result Codes

ResultCode

Description

Bad_NodeIdUnknown

The GroupIdis unknown.

Bad_UserAccessDenied

The Sessionuser does not have rights to delete the group.

This ObjectTypeis the abstract base type for Objectsrepresenting transport protocol mapping specific settingsforPubSubConnections. The ConnectionTransportTypeis formally defined in Table 113.

Table 113– ConnectionTransportType Definition

Attribute

Value

BrowseName

ConnectionTransportType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType

Figure 41depicts the ObjectTypefor the PubSubgroup model and its components and the relations to other parts of the model.

image044.png

Figure 41– PubSubGroupType Overview

This ObjectTypeis the abstract base type for Objectsrepresenting communication groupingsforPubSub connections. The PubSubGroupTypeis formally defined in Table 114.

Table 114– PubSubGroupType Definition

Attribute

Value

BrowseName

PubSubGroupType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in OPC 10000-5.

HasProperty

Variable

SecurityMode

MessageSecurityMode

PropertyType

Mandatory

HasProperty

Variable

SecurityGroupId

String

PropertyType

Optional

HasProperty

Variable

SecurityKeyServices

EndpointDescription[]

PropertyType

Optional

HasProperty

Variable

MaxNetworkMessageSize

UInt32

PropertyType

Mandatory

HasProperty

Variable

GroupProperties

KeyValuePair[]

PropertyType

Mandatory

HasComponent

Object

Status

PubSubStatusType

Mandatory

The SecurityModeis defined in 6.2.4.2.

The SecurityGroupIdis defined in 6.2.4.3. If the SecurityModeis not NONE_1, the Propertyshall provide the SecurityGroupId. The value of the Propertyis null or the Propertyis not present if the SecurityModeis NONE_1.

The SecurityKeyServicesparameter is defined in 6.2.4.4. If the SecurityModeis not NONE_1, the Propertyshall provide the list of Security Key Servicesfor the SecurityGroupId.

The MaxNetworkMessageSizeis defined in 6.2.4.5.

The GroupPropertiesis defined in 6.2.4.6.

The Status Objectprovides the current operational status of the group. The PubSubStatusTypeis defined in 9.1.10. The state machine for the status and the relation to other PubSub Objectslike PubSubConnection, DataSetWriterand DataSetReaderare defined in 6.2.1.

Instances of WriterGroupTypecontain settings for a group of DataSetWriters. The WriterGroupTypeis formally defined in Table 115.

Table 115– WriterGroupType Definition

Attribute

Value

BrowseName

WriterGroupType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of PubSubGroupType defined in 9.1.6.2

HasProperty

Variable

WriterGroupId

UInt16

PropertyType

Mandatory

HasProperty

Variable

PublishingInterval

Duration

PropertyType

Mandatory

HasProperty

Variable

KeepAliveTime

Duration

PropertyType

Mandatory

HasProperty

Variable

Priority

Byte

PropertyType

Mandatory

HasProperty

Variable

LocaleIds

LocaleId[]

PropertyType

Mandatory

HasProperty

Variable

HeaderLayoutUri

String

PropertyType

Mandatory

HasComponent

Object

TransportSettings

WriterGroupTransportType

Optional

HasComponent

Object

MessageSettings

WriterGroupMessageType

Optional

HasDataSetWriter

Object

<DataSetWriterName>

DataSetWriterType

OptionalPlaceholder

HasComponent

Object

Diagnostics

PubSubDiagnostics‌WriterGroupType

Optional

HasComponent

Method

AddDataSetWriter

Defined in 9.1.6.4.

Optional

HasComponent

Method

RemoveDataSetWriter

Defined in 9.1.6.5.

Optional

The WriterGroupIdis defined in 6.2.5.1.

The PublishingIntervalis defined in 6.2.5.2.

The KeepAliveTimeis defined in 6.2.5.3.

The Priorityis defined in 6.2.5.4.

The LocaleIdsparameter is defined in 6.2.5.5.

The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The WriterGroupTransportTypeis defined in 9.1.6.7. The Objectshall be present if the transport protocol mapping requires specific settings.

The message mapping specific setting settings are provided in the optional Object MessageSettings. The WriterGroupMessageTypeis defined in 9.1.6.8. The Objectshall be present if the message mapping defines specific parameters.

The configured DataSetWriterType Objectsare added as components to the instance of the group. DataSetWriterType Objectsmay be configured with productspecific configuration tools or through OPC UA Methods AddDataSetWriterand RemoveDataSetWriter. The DataSetWriterTypeis defined in 9.1.7.1. The ReferenceType HasDataSetWriteris defined in 9.1.6.6.

The Diagnostics Object provides the current diagnostic information for a WriterGroupType Object. The PubSubDiagnosticsWriterGroupTypeis defined in 9.1.11.9.

This Methodis used to add a new DataSetWriterType Objectto an instance of the WriterGroup. A successful creation of the DataSetWritershall also create a Referencefrom the related PublishedDataSet Objectto the created DataSetWriter.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddDataSetWriter(

[in]DataSetWriterDataType Configuration

[out]NodeId DataSetWriterNodeId

);

Argument

Description

Configuration

Configuration parameters for the DataSetWriter. The parameters and the DataSetWriterDataTypeare defined in 6.2.3.

DataSetWriterNodeId

The NodeIdof the new DataSetWriter Object.

Method Result Codes

ResultCode

Description

Bad_InvalidArgument

The Serveris not able to apply the name. The name may be too long or may contain invalid character.

Bad_DataSetIdInvalid

The DataSetspecified for the DataSetWritercreation is invalid.

Bad_BrowseNameDuplicated

An Objectwith the name already exists in the group.

Bad_ResourceUnavailable

The Serverhas not enough resources to add the DataSetWriter.

Bad_UserAccessDenied

The Sessionuser does not have rights to create the DataSetWriter.

This Methodis used to remove a DataSetWriter Objectfrom the group. The state of the DataSetWriteris set to Disabled_0 before removing the Object. A successful removal of the DataSetWritershall also delete the Referencefrom the related PublishedDataSetType Objectto the removed DataSetWriter.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveDataSetWriter(

[in]NodeIdDataSetWriterNodeId

);

Argument

Description

DataSetWriterNodeId

NodeIdof the DataSetWriter to remove from the group.

Method Result Codes

ResultCode

Description

Bad_NodeIdUnknown

The DataSetWriterNodeIdis unknown.

Bad_NodeIdInvalid

The DataSetWriterNodeIdis not a NodeIdof a DataSetWriter.

Bad_UserAccessDenied

The Sessionuser is not allowed to delete a DataSetWriter.

The HasDataSetWriter ReferenceTypeis a concrete ReferenceTypethat can be used directly. It is a subtype of the HasComponent ReferenceType.

The SourceNodeof Referencesof this type shall be an instance of the WriterGroupTypedefined in 9.1.6.3.

The TargetNodeof this ReferenceType shall be an instance of the DataSetWriterTypedefined in 9.1.7.1.

The representation of the HasDataSetWriter ReferenceTypein the AddressSpaceis specified in Table 116.

Table 116– HasDataSetWriter ReferenceType

Attributes

Value

BrowseName

HasDataSetWriter

InverseName

IsWriterInGroup

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Subtype of HasComponent defined in OPC 10000-5.

This ObjectTypeis the abstract base type for Objectsrepresenting transport protocol mapping specific settingsforWriterGroups. The WriterGroupTransportTypeis formally defined in Table 117.

Table 117– WriterGroupTransportType Definition

Attribute

Value

BrowseName

WriterGroupTransportType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType

HasSubtype

ObjectType

DatagramWriterGroupTransportType

Defined in 9.3.1.2.

HasSubtype

ObjectType

BrokerWriterGroupTransportType

Defined in 9.3.2.2.

This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforWriterGroups. The WriterGroupMessageTypeis formally defined in Table 118.

Table 118– WriterGroupMessageType Definition

Attribute

Value

BrowseName

WriterGroupMessageType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType

HasSubtype

ObjectType

UadpWriterGroupMessageType

Defined in 9.2.1.1.

HasSubtype

ObjectType

JsonWriterGroupMessageType

Defined in 9.2.2.1.

This ObjectTypeis a concrete type for Objectsrepresenting DataSetReadergroupingsforPubSub connections. The ReaderGroupTypeis formally defined in Table 114.

Table 119– ReaderGroupType Definition

Attribute

Value

BrowseName

ReaderGroupType

IsAbstract

False

References

Node Class

BrowseName

Data Type

TypeDefinition

Modelling Rule

Subtype of PubSubGroupType defined in 9.1.6.2

HasDataSetReader

Object

<DataSetReaderName>

DataSetReaderType

OptionalPlaceholder

HasComponent

Object

Diagnostics

PubSubDiagnostics‌ReaderGroupType

Optional

HasComponent

Object

TransportSettings

ReaderGroupTransportType

Optional

HasComponent

Object

MessageSettings

ReaderGroupMessageType

Optional

HasComponent

Method

AddDataSetReader

Defined in 9.1.6.10.

Optional

HasComponent

Method

RemoveDataSetReader

Defined in 9.1.6.11.

Optional

The configured DataSetReaderType Objectsare added as components to the instance of the group. DataSetReaderType Objectsmay be configured with productspecific configuration tools or through OPC UA Methods AddDataSetReaderand RemoveDataSetReader. The DataSetReaderTypeis defined in 9.1.8.1. The ReferenceType HasDataSetReaderis defined in 9.1.6.12.

The Diagnostics Object provides the current diagnostic information for a ReaderGroupType Object. The PubSubDiagnosticsReaderGroupTypeis defined in 9.1.11.10.

The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The ReaderGroupTransportTypeis defined in 9.1.6.13. The Objectshall be present if the transport protocol mapping defines specific parameters.

The message mapping specific setting settings are provided in the optional Object MessageSettings. The ReaderGroupMessageTypeis defined in 9.1.6.14. The Objectshall be present if the message mapping defines specific parameters.

This Methodis used to add a new DataSetReaderType Objectto an instance of the ReaderGroup.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddDataSetReader(

[in]DataSetReaderDataType Configuration

[out]NodeId DataSetReaderNodeId

);

Argument

Description

Configuration

Configuration parameters for the DataSetWriter. The parameters and the DataSetReaderDataTypeare defined in 6.2.8.

DataSetReaderNodeId

The NodeIdof the new DataSetReaderObject.

Method Result Codes

ResultCode

Description

Bad_InvalidArgument

The Serveris not able to apply the name. The name may be too long or may contain invalid characters.

Bad_BrowseNameDuplicated

An Objectwith the name already exists in the group.

Bad_ResourceUnavailable

The Serverdoes not have enough resources to add the DataSetReader.

Bad_UserAccessDenied

The Sessionuser does not have rights to create the DataSetReader.

This Methodis used to remove a DataSetReader Objectfrom the group. The state of the DataSetReaderis set to Disabled_0 before the Objectis removed.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveDataSetReader(

[in]NodeIdDataSetReaderNodeId

);

Argument

Description

DataSetReaderNodeId

NodeIdof the DataSetReaderto remove from the group.

Method Result Codes

ResultCode

Description

Bad_NodeIdUnknown

The DataSetReaderNodeIdis unknown.

Bad_NodeIdInvalid

The DataSetReaderNodeIdis not a NodeId of a DataSetReader.

Bad_UserAccessDenied

The Sessionuser does not have rights to delete the DataSetReader.

The HasDataSetReader ReferenceTypeis a concrete ReferenceTypethat can be used directly. It is a subtype of the HasComponent ReferenceType.

The SourceNodeof Referencesof this type shall be an instance of the ReaderGroupTypedefined in 9.1.6.6.

The TargetNodeof this ReferenceType shall be an instance of the DataSetReaderTypedefined in 9.1.8.1.

The representation of the HasDataSetReader ReferenceTypein the AddressSpaceis specified in Table 120.

Table 120– HasDataSetReader ReferenceType

Attributes

Value

BrowseName

HasDataSetReader

InverseName

IsReaderInGroup

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Subtype of HasComponent defined in OPC 10000-5.

This ObjectTypeis the abstract base type for Objectsrepresenting transport protocol mapping specific settingsforReaderGroups. The ReaderGroupTransportTypeis formally defined in Table 121.

There is currently no transport protocol mapping specific setting defined.

Table 121– ReaderGroupTransportType Definition

Attribute

Value

BrowseName

ReaderGroupTransportType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType

This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforReaderGroups. The ReaderGroupMessageTypeis formally defined in Table 122.

There is currently no message mapping specific setting defined.

Table 122– ReaderGroupMessageType Definition

Attribute

Value

BrowseName

ReaderGroupMessageType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType

Figure 42depicts the ObjectTypefor the PubSub DataSetWritermodel and its components and the relations to other parts of the model.

image045.png

Figure 42– DataSet Writer Model Overview

An instance of this ObjectTyperepresents the configuration for a DataSetWriter. The DataSetWriterTypeis formally defined Table 123.

Table 123– DataSetWriterType Definition

Attribute

Value

BrowseName

DataSetWriterType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in Part 5

HasProperty

Variable

DataSetWriterId

UInt16

PropertyType

Mandatory

HasProperty

Variable

DataSetField‌ContentMask

DataSetField ContentMask

PropertyType

Mandatory

HasProperty

Variable

KeyFrameCount

UInt32

PropertyType

Optional

HasProperty

Variable

DataSetWriterProperties

KeyValuePair[]

PropertyType

Mandatory

HasComponent

Object

TransportSettings

DataSetWriterTransportType

Optional

HasComponent

Object

MessageSettings

DataSetWriterMessageType

Optional

HasComponent

Object

Status

PubSubStatusType

Mandatory

HasComponent

Object

Diagnostics

PubSubDiagnostics‌DataSetWriterType

Optional

The DataSetWriterIdis defined in 6.2.3.1.

The DataSetFieldContentMaskis defined in 6.2.3.2.

The KeyFrameCountis defined in 6.2.3.3. The Propertyshall be present for PublishedDataSetsthat provide cyclic updates of the DataSet.

The DataSetWriterPropertiesis defined in 6.2.3.4.

The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The DataSetWriterTransportTypeis defined in 9.1.7.3. The Objectshall be present if the transport protocol mapping defines specific parameters.

The message mapping specific setting settings are provided in the optional Object MessageSettings. The DataSetWriterMessageTypeis defined in 9.1.7.4. The Objectshall be present if the message mapping defines specific parameters.

The Status Objectprovides the current operational status of the DataSetWriter. The PubSubStatusTypeis defined in 9.1.10. The state machine for the status and the relation to other PubSub Objectslike PubSubConnectionand PubSubGroupis defined in 6.2.1.

The Diagnostics Object provides the current diagnostic information for a DataSetWriterType Object. The PubSubDiagnosticsDataSetWriterTypeis defined in 9.1.11.11.

This ObjectTypeis the abstract base type for Objectsdefining protocol specific transport settings of DataSetMessages. The DataSetWriterTransportTypeis formally defined Table 124.

Table 124– DataSetWriterTransportType Definition

Attribute

Value

BrowseName

DataSetWriterTransportType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in Part 5

HasSubtype

ObjectType

BrokerDataSetWriterTransportType

Defined in 9.3.2.3.

This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforDataSetWriters. The DataSetWriterMessageTypeis formally defined in Table 125.

Table 125– DataSetWriterMessageType Definition

Attribute

Value

BrowseName

DataSetWriterMessageType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType

HasSubtype

ObjectType

UadpDataSetWriterMessageType

Defined in 9.2.1.2.

HasSubtype

ObjectType

JsonDataSetWriterMessageType

Defined in 9.2.2.2.

Figure 43depicts the ObjectTypefor the PubSub DataSetReadermodel and its components and the relations to other parts of the model.

image046.png

Figure 43– DataSet Reader Model Overview

This ObjectTypedefines receiving behaviour of DataSetMessagesand the decoding to DataSets. The DataSetReaderTypeis formally defined in Table 105.

The SubscribedDataSetTypedefined in 9.1.9.1describes the processing of the received DataSetin a Subscriber.

Table 126– DataSetReaderType Definition

Attribute

Value

BrowseName

DataSetReaderType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in Part 5

HasProperty

Variable

PublisherId

BaseDataType

PropertyType

Mandatory

HasProperty

Variable

WriterGroupId

UInt16

PropertyType

Mandatory

HasProperty

Variable

DataSetWriterId

UInt16

PropertyType

Mandatory

HasProperty

Variable

DataSetMetaData

DataSetMetaDataType

PropertyType

Mandatory

HasProperty

Variable

DataSetFieldContentMask

DataSetFieldContentMask

PropertyType

Mandatory

HasProperty

Variable

MessageReceiveTimeout

Duration

PropertyType

Mandatory

HasProperty

Variable

KeyFrameCount

UInt32

PropertyType

Mandatory

HasProperty

Variable

HeaderLayoutUri

String

PropertyType

Mandatory

HasProperty

Variable

SecurityMode

MessageSecurityMode

PropertyType

Optional

HasProperty

Variable

SecurityGroupId

String

PropertyType

Optional

HasProperty

Variable

SecurityKeyServices

EndpointDescription[]

PropertyType

Optional

HasProperty

Variable

DataSetReaderProperties

KeyValuePair[]

PropertyType

Mandatory

HasComponent

Object

TransportSettings

DataSetReader‌TransportType

Optional

HasComponent

Object

MessageSettings

DataSetReader‌MessageType

Optional

HasComponent

Object

Status

PubSubStatusType

Mandatory

HasComponent

Object

Diagnostics

PubSubDiagnostics‌DataSetReaderType

Optional

HasComponent

Object

SubscribedDataSet

Subscribed‌DataSetType

Mandatory

HasComponent

Method

CreateTargetVariables

Defined in 9.1.8.5.

Optional

HasComponent

Method

CreateDataSetMirror

Defined in 9.1.8.6.

Optional

The Properties PublisherId, WriterGroupId, DataSetWriterIdand DataSetClassIddefine filters for received NetworkMessages. If the value of the Propertyis set, it is used as filter and all messages that do not match the filter are dropped.

The PublisherIdis defined in 6.2.8.1.

The WriterGroupId is defined in 6.2.8.2.

The DataSetWriterIdis defined in 6.2.8.3.

The DataSetMetaDatais defined in 6.2.8.4. If the DataSetReaderreceives an updated DataSetMetaData, the DataSetReadershall update the Property DataSetMetaData.

The DataSetFieldContentMaskis defined in 6.2.8.5.

The MessageReceiveTimeoutis defined in 6.2.8.6.

The SecurityModeis defined in 6.2.8.7. If present or if the value is not INVALID_0, it overwrites the settings on the group.

The SecurityGroupIdis defined in 6.2.8.8.

The SecurityKeyServicesis defined in 6.2.8.9.

The DataSetReaderPropertiesis defined in 6.2.8.10.

The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The DataSetWriterTransportTypeis defined in 9.1.8.3. The Objectshall be present if the transport protocol mapping defines specific parameters.

The message mapping specific setting settings are provided in the optional Object MessageSettings. The DataSetWriterMessageTypeis defined in 9.1.8.4. The Objectshall be present if the message mapping defines specific parameters.

The Status Objectprovides the current operational state of the DataSetReader. The PubSubStatusTypeis defined in 9.1.10. The state machine for the status and the relation to other PubSub Objectslike PubSubConnectionand PubSubGroupare defined in 6.2.1.

The Diagnostics Object provides the current diagnostic information for a DataSetReaderType Object. The PubSubDiagnosticsDataSetReaderTypeis defined in 9.1.11.12.

The SubscribedDataSet Objectcontains the metadata for the subscribed DataSetand the information for the processing of DataSetMessage. The SubscribedDataSetTypeis defined in 9.1.9.1.

This ObjectTypeis the abstract base type for Objectsdefining the transport protocol specific parameters forDataSetReaders. The DataSetReaderTransportTypeis formally defined in Table 127.

Table 127– DataSetReaderTransportType Definition

Attribute

Value

BrowseName

DataSetReaderTransportType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in Part 5

HasSubtype

ObjectType

BrokerDataSetReaderTransportType

Defined in 9.3.2.4.

This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforDataSetReaders. The DataSetReaderMessageTypeis formally defined in Table 128.

Table 128– DataSetReaderMessageType Definition

Attribute

Value

BrowseName

DataSetReaderMessageType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType

HasSubtype

ObjectType

UadpDataSetReaderMessageType

Defined in 9.2.1.3.

HasSubtype

ObjectType

JsonDataSetReaderMessageType

Defined in 9.2.2.3.

This Methodis used to initially set the SubscribedDataSetto TargetVariablesTypeand to create the list of target Variablesof a SubscribedDataSetType.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

CreateTargetVariables(

[in]ConfigurationVersionDataType ConfigurationVersion

[in]FieldTargetDataType[] TargetVariablesToAdd

[out] StatusCode[] AddResults

);

Argument

Description

ConfigurationVersion

Configuration version of the DataSet. The configuration version passed in through CreateTargetVariablesmust match the current configuration version in DataSetMetaData Property. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataTypeis defined in 6.2.2.1.5.

TargetVariablesToAdd

The list of target Variablesto write received DataSetfields to. The FieldTargetDataTypeis defined in 6.2.9.2.3. The succeeded targets are added to the TargetVariables Property.

AddResults

The result codes for the Variablesto connect.

Method Result Codes

ResultCode

Description

Bad_NothingToDo

An empty list of Variableswas passed in.

Bad_InvalidState

The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the Publisher.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Operation Result Codes

ResultCode

Description

Bad_NodeIdInvalid

See OPC 10000-4for the description of this result code.

Bad_NodeIdUnknown

See OPC 10000-4for the description of this result code.

Bad_IndexRangeInvalid

See OPC 10000-4for the description of this result code.

This status code indicates either an invalid ReceiverIndexRangeor an invalid WriterIndexRangeor if the two settings result in a different size.

Bad_IndexRangeNoData

See OPC 10000-4for the description of this result code.

If the ArrayDimensionshave a fixed length that cannot change and no data exists within the range of indexes specified, Bad_IndexRangeNoData is returned in AddDataConnections.

Bad_TooManyMonitoredItems

The Serverhas reached its maximum number of items for the DataSetReaderobject.

Bad_InvalidState

The TargetNodeId is already used by another connection.

Bad_TypeMismatch

The Servershall return a Bad_TypeMismatch error if the data type of the DataSetfield is not the same type or subtype of the target Variable DataType. Based on the DataTypehierarchy, subtypes of the Variable DataTypeshall be accepted by the Server. A ByteStringis structurally the same as a one dimensional array of Byte. A Servershall accept a ByteStringif an array of Byteis expected.

This Methodis used to set the SubscribedDataSetto SubscribedDataSetMirrorTypeused to represents the fields of the DataSetas Variablesin the Subscriber Address Space. This Methodcreates an Objectbelow the SubscribedDataSet and below this Objectit creates a Variable Nodefor every field in the DataSetMetaData.

A Variablerepresenting a field of the DataSetshall be created with the following rules

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

CreateDataSetMirror(

[in]String ParentNodeName

[in]RolePermissionType[]RolePermissions

[out]NodeId ParentNodeId

);

Argument

Description

ParentNodeName

This parameter defines the BrowseName and DisplayName of the parent Nodefor the Variablesrepresenting the fields of the subscribed DataSet.

RolePermissions

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

ParentNodeId

NodeIdof the created parent Node.

Method Result Codes

ResultCode

Description

Bad_InvalidState

The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the Publisher.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

This ObjectTypedefines the metadata for the subscribed DataSetand the information for the processing of DataSetMessages. The SubscribedDataSetTypeis formally defined in Table 129.

Table 129– SubscribedDataSetType Definition

Attribute

Value

BrowseName

SubscribedDataSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in Part 5

HasSubtype

ObjectType

TargetVariablesType

HasSubtype

ObjectType

SubscribedDataSetMirrorType

This ObjectTypedefines the metadata for the subscribed DataSetand the information for the processing of DataSetMessages. The TargetVariablesTypeis formally defined in Table 130.

Table 130– TargetVariablesType Definition

Attribute

Value

BrowseName

TargetVariablesType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of SubscribedDataSetType defined in 9.1.9.1.

HasProperty

Variable

TargetVariables

FieldTarget‌DataType[]

PropertyType

Mandatory

HasComponent

Method

AddTargetVariables

Defined in 9.1.9.3.

Optional

HasComponent

Method

RemoveTargetVariables

Defined in 9.1.9.4.

Optional

The TargetVariablesis defined in 6.2.9.2.

This Methodis used to add target Variablesto an existing list of target Variablesof a TargetVariablesType Object.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

AddTargetVariables(

[in]ConfigurationVersionDataType ConfigurationVersion

[in]FieldTargetDataType[] TargetVariablesToAdd

[out] StatusCode[] AddResults

);

Argument

Description

ConfigurationVersion

Configuration version of the DataSet. The configuration version passed in through AddDataConnectionsmust match the current configuration version in DataSetMetaData Property. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataTypeis defined in 6.2.2.1.5.

TargetVariablesToAdd

The list of target Variablesto write received DataSetfields to. The FieldTargetDataTypeis defined in 6.2.9.2.3. The succeeded connections are added to the TargetVariables Property.

AddResults

The result codes for the Variablesto connect.

Method Result Codes

ResultCode

Description

Bad_NothingToDo

An empty list of Variableswas passed in.

Bad_InvalidState

The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the Publisher.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Operation Result Codes

ResultCode

Description

Bad_NodeIdInvalid

See OPC 10000-4for the description of this result code.

Bad_NodeIdUnknown

See OPC 10000-4for the description of this result code.

Bad_IndexRangeInvalid

See OPC 10000-4for the description of this result code.

This status code indicates either an invalid ReceiverIndexRange or an invalid WriterIndexRange or if the two settings result in a different size.

Bad_IndexRangeNoData

See OPC 10000-4for the description of this result code.

If the ArrayDimensionshave a fixed length that cannot change and no data exists within the range of indexes specified, Bad_IndexRangeNoData is returned in AddDataConnections.

Bad_TooManyMonitoredItems

The Serverhas reached its maximum number of items for the DataSetReader object.

Bad_InvalidState

The TargetNodeId is already used by another target Variable.

Bad_TypeMismatch

The Servershall return a Bad_TypeMismatch error if the data type of the DataSetfield is not the same type or subtype of the target Variable DataType. Based on the DataTypehierarchy, subtypes of the Variable DataTypeshall be accepted by the Server. A ByteStringis structurally the same as a one dimensional array of Byte. A Servershall accept a ByteStringif an array of Byteis expected.

This Methodis used to remove entries from the list of target Variablesof a TargetVariablesType Object.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

RemoveTargetVariables(

[in]ConfigurationVersionDataType ConfigurationVersion

[in]UInt32[] TargetsToRemove

[out] StatusCode[] RemoveResults

);

Argument

Description

ConfigurationVersion

Configuration version of the DataSet. The configuration version passed in through RemoveDataConnectionsmust match the current configuration version in DataSetMetaData Property. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataTypeis defined in 6.2.2.1.5.

TargetsToRemove

Array of indices of connections to remove from the list of target Variables.

RemoveResults

The result codes for the connections to remove.

Method Result Codes

ResultCode

Description

Bad_NothingToDo

An empty list of Variableswas passed in.

Bad_InvalidState

The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the DataSetMetaData.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

Operation Result Codes

ResultCode

Description

Bad_InvalidArgument

The provided index is invalid.

This ObjectTypedefines the information for the processing of DataSetMessagesas mirror Variables. For each field of the DataSeta mirror Variableis created in the Subscriber AddressSpace. The SubscribedDataSetMirrorTypeis formally defined in Table 131.

Table 131– SubscribedDataSetMirrorType Definition

Attribute

Value

BrowseName

SubscribedDataSetMirrorType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of SubscribedDataSetType defined in 9.1.9.1.

An Objectof this type shall contain an Objectwith the ParentNodeNamepassed to the Method CreateDataSetMirrorused to set the SubscribedDataSetinto the mirror mode.

This ObjectTypeis used to indicate and change the status of a PubSub Objectlike PubSubConnection, DataSetWriteror DataSetReader. The PubSubStatusTypeis formally defined in Table 132.

Table 132– PubSubStatusType Definition

Attribute

Value

BrowseName

PubSubStatusType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in OPC 10000-5.

HasComponent

Variable

State

PubSubState

BaseDataVariableType

Mandatory

HasComponent

Method

Enable

Defined in 9.1.10.2.

Optional

HasComponent

Method

Disable

Defined in 9.1.10.3.

Optional

The State Variableprovides the current operational state of the PubSub Object. The default value is Disabled_0. The PubSubState Enumerationand the related state machine is defined in 6.2.1.

The Statemay be changed with product specific configuration tools or with the Methods Enableand Disable.

This Methodis used to enable a configured PubSub Object. The related state machine and the transitions triggered by a successful call to this Methodare defined in 6.2.1.

The Servershall reject Enable Methodcalls if the current Stateis not Disabled_0.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

Enable();

Method Result Codes

ResultCode

Description

Bad_InvalidState

The state of the Objectis not disabled.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

This Methodis used to disable a PubSub Object. The related state machine and the transitions triggered by a successful call to this Methodare defined in 6.2.1.

The Servershall reject Disable Methodcalls if the current Stateis Disabled_0.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

Disable();

Method Result Codes

ResultCode

Description

Bad_InvalidState

The state of the Objectis not operational.

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

PubSub ObjectTypesthat require a status Objectadd a component with the BrowseNameStatus. It is formally defined in Table 133.

Table 133– Status Object Definition

Attribute

Value

BrowseName

Status

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

HasTypeDefinition

ObjectType

PubSubStatusType

The following types are used to expose diagnostics information in the PubSubinformation model. Each level of the PubSubhierarchy shall contain its own diagnostics element in a standardized format. An overview over the proposed diagnostics architecture is given in Figure 44.

image047.png

Figure 44– PubSub Diagnostics Overview

Figure 45shows the structure of a Variablewhich holds a diagnostics counter with defined Properties. The PubSubDiagnosticsCounterType is formally defined in 9.1.11.5.

image048.png

Figure 45– PubSubDiagnosticsCounterType

The PubSubDiagnosticsTypeis the base type for the diagnostics objects and is formally defined in Table 134.

Table 134– PubSubDiagnosticsType

Attribute

Value

BrowseName

PubSubDiagnosticsType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of BaseObjectType defined in OPC 10000-5.

HasComponent

Variable

DiagnosticsLevel

DiagnosticsLevel

BaseDataVariableType

Mandatory

HasComponent

Variable

TotalInformation

UInt32

PubSubDiagnosticsCounterType

Mandatory

HasComponent

Variable

TotalError

UInt32

PubSubDiagnosticsCounterType

Mandatory

HasComponent

Method

Reset

Defined in 9.1.11.3.

Mandatory

HasComponent

Variable

SubError

Boolean

BaseDataVariableType

Mandatory

HasComponent

Object

Counters

BaseObjectType

Mandatory

HasComponent

Object

LiveValues

BaseObjectType

Mandatory

The DiagnosticsLevel Variableconfigures the current diagnostics level used for the Object. The DiagnosticsLevel DataTypeis defined in 9.1.11.4.

The TotalInformation Variableprovides the sum of all counters in this in the Objectdiagnostics counters with classification Information_0.

The TotalError Variableprovides the sum of all counters in this in the Objectdiagnostics counters with classification Error_1.

The SubError Variableindicates if any statistics Objectof the next PubSublayer Objectsshows a value > 0 in TotalError.

The Object Counterscontains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterTypedefined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsTypeare defined in Table 135.

Table 135– Counters for PubSubDiagnosticsType

BrowseName

Modelling Rule

Diagnostics

Level

Class

Description

StateError

Mandatory

Basic_0

Error_1

PubSubState state machine defined in 6.2.1changed to Error_3 state

StateOperationalByMethod

Mandatory

Basic_0

Information_0

State changed to Operational_2 state triggered by Enable Methodcall.

StateOperationalByParent

Mandatory

Basic_0

Information_0

State changed to Operational_2 state triggered by an operational parent

StateOperationalFromError

Mandatory

Basic_0

Information_0

State changed from Error_3 to Operational_2.

StatePausedByParent

Mandatory

Basic_0

Information_0

State changed to Paused_1 state triggered by a paused or disabled parent.

StateDisabledByMethod

Mandatory

Basic_0

Information_0

State changed to Disabled_0 state triggered by Disable Methodcall.

The Object LiveValuescontains all live values of the diagnostics Object. If not further specified, the live values Variablesuse the VariableType BaseDataVariableType.

The nodes in the Objects Countersand LiveValuesmay be activated/deactivated by the parameter DiagnosticsLevelin the PubSubDiangosticsType.

The value of a node in the Object Countersshall be set to 0 whenever the counter changes from inactive to active.

The Servershould dynamically remove inactive nodes from the Address Space in order to avoid confusion of the user by long lists of counters where only a few of them might be active. In case inactive nodes cannot be removed from the Address Spacethe Servershall set the StatusCodeof the Variable Valueto Bad_OutOfService.

This Methodis used to set all counters in the Objectdiagnostics counters to the initial value.

The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.

Signature

Reset();

Method Result Codes

ResultCode

Description

Bad_UserAccessDenied

The Sessionuser is not allowed to configure the Object.

PubSubdiagnostics are intended to assure users about the correct operation of a PubSubsystem and to help in the discovery of potential faults. Depending on the situation, not all diagnostic Objectsmight be needed, and on the other hand providing them requires resources. As a result, diagnostic objects are assigned to different diagnostic levels. Only diagnostic Objectsbelonging to the currently set diagnostic level or a more severe level have to be provided. This mechanism provides the user the ability to select a suitable diagnostic configuration depending on the application.

The DiagnosticsLevelis an enumeration that specifies the possible diagnostics levels. The possible enumeration values are described in Table 136.

Table 136– DiagnosticsLevel Values

Value

Description

Basic_0

Diagnostic objects from this level cannot be disabled, and thus objects from this level are the minimum diagnostic feature set that can be expected on any device that supports PubSubdiagnostics at all.

Advanced_1

Diagnostic objects related to exceptional behaviour are contained in the Advanced_1 diagnostic level.

Info_2

The Info_2 diagnostic level contains high-level diagnostic objects related to the normal operation of a PubSubsystem.

Log_3

Diagnostic objects for the detailed logging of the operation of a PubSubsystem are contained in the Log_3 diagnostic level.

Debug_4

Diagnostic objects with debug information specific to a given implementation of PubSubare contained in the Debug_4 diagnostic level. As this level is intended for implementation specific diagnostics, no such objects are specified by the standard.

The PubSubDiagnosticsCounterType is formally defined in Table 137.

Table 137– PubSubDiagnosticsCounterType

Attribute

Value

BrowseName

PubSubDiagnosticsCounterType

IsAbstract

False

ValueRank

-1 (-1 = ‘Scalar’)

DataType

UInt32

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of BaseDataVariableType defined in OPC 10000-5.

HasProperty

Variable

Active

Boolean

PropertyType

Mandatory

HasProperty

Variable

Classification

PubSubDiagnostics‌Counter‌Classification

PropertyType

Mandatory

HasProperty

Variable

DiagnosticsLevel

DiagnosticsLevel

PropertyType

Mandatory

HasProperty

Variable

TimeFirstChange

DateTime

PropertyType

Optional

The Valueshall be reset to 0 when the Method Clearof the parent PubSubDiagnosticsType Objectis called.

The Valueshall be incremented by 1 for each corresponding event.

The Valueshall not be incremented anymore when the maximum is reached (0xFFFFFFFF).

If the maximum is reached and a new event occurs, the SourceTimestampof the Valueshall be updated, even if the Valuedoes not change. The Property Activeindicates if the counter is active.

The Property Classificationindicates whether this counter counts errors or other events according to PubSubDiagnosticsCounterClassificationdefined in 9.1.11.6.

The Property DiagnosticsLevelindicates the diagnostics level the counter belongs to. The DiagnosticsLevelis defined in 9.1.11.4.

The Property TimeFirstChangecontains the Servertime when the counter value changed from 0 to 1. If the counter value is 0 the Valueis null.

The PubSubDiagnosticsCounterClassificationis an enumeration that specifies the possible diagnostics counter classifications. The possible enumeration values are described in Table 138.

Table 138– PubSubDiagnosticsCounterClassification Values

Value

Description

Information_0

The semantic of this diagnostics counter indicates expected events, which are not considered as errors.

Error_1

The semantic of this diagnostics counter indicates errors.

The PubSubDiagnosticsRootTypedefines the diagnostic information for the PublishSubscribe Objectand is formally defined in Table 139.

Table 139– PubSubDiagnosticsRootType

Attribute

Value

BrowseName

PubSubDiagnosticsRootType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of PubSubDiagnosticsType defined in 9.1.11.2.

HasComponent

Object

LiveValues

BaseObjectType

Mandatory

The Object LiveValuescontains all live values of the diagnostics Object. If not further specified, the live values Variablesuse the VariableType BaseDataVariableType. The live values Variablesof the PubSubDiagnosticsRootTypeare defined in Table 140.

Table 140– LiveValues for PubSubDiagnosticsRootType

BrowseName

Modelling Rule

Diagnostics

Level

DataType

Description

ConfiguredDataSetWriters

Mandatory

Basic_0

UInt16

Number of configured DataSetWriterson this Server

ConfiguredDataSetReaders

Mandatory

Basic_0

UInt16

Number of configured DataSetReaderson this Server

OperationalDataSetWriters

Mandatory

Basic_0

UInt16

Number of DataSetWriterswith state Operational

OperationalDataSetReaders

Mandatory

Basic_0

UInt16

Number of DataSetReaderswith state Operational

The PubSubDiagnosticsConnectionTypedefines the diagnostic information for a PubSubConnectionType Objectand is formally defined in Table 141.

Table 141– PubSubDiagnosticsConnectionType

Attribute

Value

BrowseName

PubSubDiagnosticsConnectionType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of PubSubDiagnosticsType defined in 9.1.11.2.

HasComponent

Object

LiveValues

BaseObjectType

Mandatory

The Object LiveValuescontains all live values of the diagnostics Object. If not further specified, the live values Variablesuse the VariableType BaseDataVariableType. The live values Variablesof the PubSubDiagnosticsConnectionTypeare defined in Table 142.

Table 142– LiveValues for PubSubDiagnosticsConnectionType

BrowseName

Modelling Rule

Diagnostics

Level

DataType

Description

ResolvedAddress

Mandatory

Basic_0

String

Resolved address of the connection (e.g. IP Address)

The PubSubDiagnosticsWriterGroupTypedefines the diagnostic information for a WriterGroupType Objectand is formally defined in Table 143.

Table 143– PubSubDiagnosticsWriterGroupType

Attribute

Value

BrowseName

PubSubDiagnosticsWriterGroupType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of PubSubDiagnosticsType defined in 9.1.11.2.

HasComponent

Object

Counters

BaseObjectType

Mandatory

HasComponent

Object

LiveValues

BaseObjectType

Mandatory

The Object Counterscontains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterTypedefined in 9.1.11.5. The counter Variablesof the PubSubDiagnosticsWriterGroupTypeare defined in Table 144.

Table 144– Counters for PubSubDiagnosticsWriterGroupType

BrowseName

Modelling Rule

Diagnostics

Level

Class.

Description

Inherited counters from PubSubDiagnosticsType

SentNetworkMessages

Mandatory

Basic_0

Information_0

Sent NetworkMessages

FailedTransmissions

Mandatory

Basic_0

Error_1

Error on NetworkMessagetransmission

EncryptionErrors

Optional

Advanced_1

Error_1

Error on signing or encrypting NetworkMessage

The Object LiveValuescontains all live values of the diagnostics Object. If not further specified, the live values Variablesuse the VariableType BaseDataVariableType. The live values Variablesof the PubSubDiagnosticsWriterGroupTypeare defined in Table 145.

Table 145– LiveValues for PubSubDiagnosticsWriterGroupType

BrowseName

Modelling Rule

Diagnostics

Level

DataType

Description

ConfiguredDataSetWriters

Mandatory

Basic_0

UInt16

Number of configured DataSetWriters in this group

OperationalDataSetWriters

Mandatory

Basic_0

UInt16

Number of DataSetWriters with state Operational

SecurityTokenID

Optional

Info_2

UInt32

Currently used SecurityTokenID

TimeToNextTokenID

Optional

Info_2

Duration

Time until the next key change is expected

The PubSubDiagnosticsReaderGroupTypedefines the diagnostic information for a ReaderGroupType Objectand is formally defined in Table 146.

Table 146– PubSubDiagnosticsReaderGroupType

Attribute

Value

BrowseName

PubSubDiagnosticsReaderGroupType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of PubSubDiagnosticsType defined in 9.1.11.2.

HasComponent

Object

Counters

BaseObjectType

Mandatory

HasComponent

Object

LiveValues

BaseObjectType

Mandatory

The Object Counterscontains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterTypedefined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsReaderGroupTypeare defined in Table 147.

Table 147– Counters for PubSubDiagnosticsReaderGroupType

BrowseName

Modelling Rule

Diagnostics

Level

Class

Description

Inherited counters from PubSubDiagnosticsType

ReceivedNetworkMessages

Mandatory

Basic_0

Information_0

Received and processed NetworkMessages

ReceivedInvalidNetwork‌Messages

Optional

Advanced_1

Error_1

Invalid format of NetworkMessageHeader

DecryptionErrors

Optional

Advanced_1

Error_1

Decryption or signature check errors

The Object LiveValuescontains all live values of the diagnostics Object. If not further specified, the live values Variablesuse the VariableType BaseDataVariableType. The live values Variablesof the PubSubDiagnosticsReaderGroupTypeare defined in Table 148.

Table 148– LiveValues for PubSubDiagnosticsReaderGroupType

BrowseName

Modelling Rule

Diagnostics

Level

DataType

Description

ConfiguredDataSetReaders

Mandatory

Basic_0

UInt16

Number of configured DataSetReaders in this group

OperationalDataSetReaders

Mandatory

Basic_0

UInt16

Number of DataSetReaders with state Operational

The PubSubDiagnosticsDataSetWriterTypedefines the diagnostic information for a PubSubDataSetWriterType Objectand is formally defined in Table 149.

Table 149– PubSubDiagnosticsDataSetWriterType

Attribute

Value

BrowseName

PubSubDiagnosticsDataSetWriterType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of PubSubDiagnosticsType defined in 9.1.11.2.

HasComponent

Object

Counters

BaseObjectType

Mandatory

HasComponent

Object

LiveValues

BaseObjectType

Mandatory

The Object Counterscontains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterTypedefined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsDataSetWriterTypeare defined in Table 150.

Table 150– Counters for PubSubDiagnosticsDataSetWriterType

BrowseName

Modelling Rule

Diagnostics

Level

Class.

Description

Inherited counters from PubSubDiagnosticsType

FailedDataSetMessages

Mandatory

Basic_0

Error_1

Number of failed DataSetMessages

The Object LiveValuescontains all live values of the diagnostics Object. If not further specified, the live values Variablesuse the VariableType BaseDataVariableType. The live values Variablesof the PubSubDiagnosticsDataSetWriterTypeare defined in Table 151.

Table 151– LiveValues for PubSubDiagnosticsDataSetWriterType

BrowseName

Modelling Rule

Diagnostics

Level

DataType

Description

MessageSequenceNumber

Optional

Info_2

UInt16

Sequence number of last DataSetMessage

StatusCode

Optional

Info_2

StatusCode

Status of last DataSetMessage

MajorVersion

Optional

Info_2

UInt32

MajorVersionused for DataSet

MinorVersion

Optional

Info_2

UInt32

MinorVersionused for DataSet

The PubSubDiagnosticsDataSetReaderTypedefines the diagnostic information for a PubSubDataSetReaderType Objectand is formally defined in Table 152.

Table 152– PubSubDiagnosticsDataSetReaderType

Attribute

Value

BrowseName

PubSubDiagnosticsDataSetReaderType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of PubSubDiagnosticsType defined in 9.1.11.2.

HasComponent

Object

Counters

BaseObjectType

Mandatory

HasComponent

Object

LiveValues

BaseObjectType

Mandatory

The Object Counterscontains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterTypedefined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsDataSetReaderTypeare defined in Table 153.

Table 153– Counters for PubSubDiagnosticsDataSetReaderType

BrowseName

Modelling Rule

Diagnostics

Level

Class.

Description

Inherited counters from PubSubDiagnosticsType

FailedDataSetMessages

Mandatory

Basic_0

Error_1

e.g. because of unknown MajorVersion

DecryptionErrors

Optional

Advanced_1

Error_1

The Object LiveValuescontains all live values of the diagnostics Object. If not further specified, the live values Variablesuse the VariableType BaseDataVariableType. The live values Variablesof the PubSubDiagnosticsDataSetReaderTypeare defined in Table 154.

Table 154– LiveValues for PubSubDiagnosticsDataSetReaderType

BrowseName

Modelling Rule

Diagnostics

Level

DataType

Description

MessageSequenceNumber

Optional

Info_2

UInt16

SequenceNumber of last DataSetMessage

StatusCode

Optional

Info_2

StatusCode

Status of last DataSetMessage

MajorVersion

Optional

Info_2

UInt32

MajorVersionof available DataSetMetaData

MinorVersion

Optional

Info_2

UInt32

MinorVersionof available DataSetMetaData

SecurityTokenID

Optional

Info_2

UInt32

Currently used SecurityTokenID

TimeToNextTokenID

Optional

Info_2

Duration

Time until the next key change is expected

This EventTypeis a base type for events which indicate an error or status change associated with a PubSubConnectionType, PubSubGroupType, DataSetWriterType or DataSetReaderType Object. The PubSubStatusEventTypeis formally defined in Table 155.

Table 155– PubSubStatusEventType Definition

Attribute

Value

BrowseName

PubSubStatusEventType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of SystemEventType defined in OPC 10000-5.

HasProperty

Variable

ConnectionId

NodeId

PropertyType

Mandatory

HasProperty

Variable

GroupId

NodeId

PropertyType

Mandatory

HasProperty

Variable

State

PubSubState

PropertyType

Mandatory

This EventType inherits all Properties of the SystemEventType. Their semantic is defined in OPC 10000-5.

The SourceNode is the NodeIdof the PubSubConnectionType, PubSubGroupType, DataSetWriterType or DataSetReaderType Objectassociated with the Event.

The SourceName is the BrowseNameof the SourceNode.

The ConnectionId Property is the NodeIdof the PubSubConnectionType Objectassociated with the source of the status Event.

The GroupId Property is the NodeIdof the PubSubGroupType Objectassociated with the source of the status Event. The GroupIdis Null if a PubSubConnectionis the source of the Event.

The State Propertyis the current state of the PubSubStatus Objectassociated with the source of the status Event.

This EventTypeindicates that a NetworkMessagecould not be published because it exceeds the limits of transport. The PubSubTransportLimitsExceedEventType is formally defined in Table 156.

Table 156– PubSubTransportLimitsExceedEventTypeDefinition

Attribute

Value

BrowseName

PubSubTransportLimitsExceedEventType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of PubSubStatusEventTypedefined in 9.1.12.2.

HasProperty

Variable

Actual

UInt32

PropertyType

Mandatory

HasProperty

Variable

Maximum

UInt32

PropertyType

Mandatory

This EventType inherits all Properties of the PubSubStatusEventType.

The Actual Propertyhas the size in bytes of the actual NetworkMessage.

The Maximum Propertyhas the maximum size of NetworkMessagesin bytes allowed by the transport.

This EventTypeindicates that a NetworkMessagecould not be published because of a communication failure. The PubSubCommunicationFailureEventType is formally defined in Table 157.

Table 157– PubSubCommunicationFailureEventTypeDefinition

Attribute

Value

BrowseName

PubSubCommunicationFailureEventType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of PubSubStatusEventTypedefined in 9.1.12.2.

HasProperty

Variable

Error

StatusCode

PropertyType

Mandatory

This EventType inherits all Properties of the PubSubStatusEventType.

The Message Eventfield inherited from BaseEventTypehas a localized description of the error.

The Error Propertyhas the StatusCodeassociated with the error.