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.