A PublishedDataSetdefines the content of a DataSetMessageand the configuration of the information source for a DataSet. See 5.2for the introduction to DataSets, 5.3for the introduction to DataSetMessagesand 5.4.1.2for an introduction to the different source options and the parameters for sending of DataSetMessages.

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

image044.png

Figure 41– 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 PublishedEventsTypedefine how to collect the DataSetto be published. For PublishedDataItemsTypethis is a list of monitored Variablesused to create cyclic DataSets. For PublishedEventsTypethis is an Eventselection used to create acyclic DataSets. 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 custom PublishedDataSetin the AddressSpaceof the Publisher. If the Variable CyclicDataSetis not present, the custom PublishedDataSetshall create cyclic DataSets.

The PublishedDataSetTypeis formally defined in Table 207.

Table 207– PublishedDataSetType definition

Attribute

Value

BrowseName

PublishedDataSetType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

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

HasProperty

Variable

CyclicDataSet

Boolean

PropertyType

Optional

HasComponent

Object

ExtensionFields

ExtensionFieldsType

Optional

Conformance Units

PubSub Model Base

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 Propertyvalue shall match the ConfigurationVersionin the DataSetMetaData Property.The ConfigurationVersionDataTypeand the rules for setting the version are defined in 6.2.3.2.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.3.2.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 DataSetMessageneeds to 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 not null, the Publishershall reject any configuration changes that change the DataSetMetaData. The Propertyvalue shall match the DataSetClassIdin the DataSetMetaData Property.

The Property CyclicDataSetprovides the information if the DataSetscreated by the PublishedDataSetare cyclic or acyclic. If the Propertyis provided by an instance of PublishedDataSetType, the Valueshall be true. If the Propertyis provided by an instance of PublishedEventsType, the Valueshall be false.

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 208. 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 208– ExtensionFieldsType definition

Attribute

Value

BrowseName

ExtensionFieldsType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

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

Conformance Units

PubSub Model Base

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 ExtensionFieldcan be added to the DataSetafter creation.

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

Table 209– 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.

Table 210specifies the AddressSpacerepresentation for the AddExtensionField Method.

Table 210– AddExtensionField Method AddressSpace definition

Attribute

Value

BrowseName

AddExtensionField

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model Base

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.

Table 211specifies the AddressSpacerepresentation for the RemoveExtensionField Method.

Table 211– RemoveExtensionField Method AddressSpace definition

Attribute

Value

BrowseName

RemoveExtensionField

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model Base

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

Table 212– DataSetToWriter ReferenceType

Attributes

Value

BrowseName

DataSetToWriter

InverseName

WriterToDataSet

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Subtype of HierarchicalReferences defined in OPC 10000-5.

Conformance Units

PubSub Model Base

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

Table 213– PublishedDataItemsType definition

Attribute

Value

BrowseName

PublishedDataItemsType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

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

Conformance Units

PubSub Model PublishedDataSet

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

The PublishedDatais defined in 6.2.3.7.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 RemoveVariablesor 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.3.2.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 shall 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.3.2.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.3.7.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 provided.

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.

Table 214specifies the AddressSpacerepresentation for the AddVariables Method.

Table 214– AddVariables Method AddressSpace definition

Attribute

Value

BrowseName

AddVariables

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet

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.3.2.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 through VariablesToRemoveshall 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.3.2.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 provided.

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.

Table 215specifies the AddressSpacerepresentation for the RemoveVariables Method.

Table 215– RemoveVariables Method AddressSpace definition

Attribute

Value

BrowseName

RemoveVariables

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet

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

The PublishedEventsTypeis formally defined in Table 216.

Table 216– PublishedEventsType definition

Attribute

Value

BrowseName

PublishedEventsType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

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

Conformance Units

PubSub Model PublishedDataSet Events

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

The EventNotifieris defined in 6.2.3.8.1.

The SelectedFieldsis defined in 6.2.3.8.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.3.8.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 shall 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.3.2.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 shall 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.

Table 217specifies the AddressSpacerepresentation for the ModifyFieldSelection Method.

Table 217– ModifyFieldSelection Method AddressSpace definition

Attribute

Value

BrowseName

ModifyFieldSelection

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet Events

The DataSetFolderType is formally defined in Table 218.

Table 218– DataSetFolderType definition

Attribute

Value

BrowseName

DataSetFolderType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

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

Conformance Units

PubSub Model Base

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

Table 219specifies the AddressSpacerepresentation for the AddPublishedDataItems Method.

Table 219– AddPublishedDataItems Method AddressSpace definition

Attribute

Value

BrowseName

AddPublishedDataItems

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet

This Methodis used to add a PublishedEventsType Objectto the DataSetFolderType Object. The configuration parameters provided 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 metadata 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 Serverfrom which Eventsare collected.

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.

Table 220specifies the AddressSpacerepresentation for the AddPublishedEvents Method.

Table 220– AddPublishedEvents Method AddressSpace definition

Attribute

Value

BrowseName

AddPublishedEvents

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet Events

This Methodis used to create a PublishedDataSets Objectof type PublishedDataItemsType and to add it to the DataSetFolderType Object. The configuration parameters provided 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.3.7.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.

Table 221specifies the AddressSpacerepresentation for the AddPublishedDataItemsTemplate Method.

Table 221– AddPublishedDataItemsTemplate Method AddressSpace definition

Attribute

Value

BrowseName

AddPublishedDataItemsTemplate

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet

This Methodis used to add a PublishedEventsType Objectto the DataSetFolderType Object. The configuration parameters provided 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 Serverfrom which Eventsare collected.

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.

Table 222specifies the AddressSpacerepresentation for the AddPublishedEventsTemplate Method.

Table 222– AddPublishedEventsTemplate Method AddressSpace definition

Attribute

Value

BrowseName

AddPublishedEventsTemplate

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet Events

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.

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_NodeIdInvalid

The DataSetNodeIdis not a NodeId of apublished DataSet.

Bad_UserAccessDenied

The Sessionuser is not allowed to delete a PublishedDataSetType.

Table 223specifies the AddressSpacerepresentation for the RemovePublishedDataSet Method.

Table 223– RemovePublishedDataSet Method AddressSpace definition

Attribute

Value

BrowseName

RemovePublishedDataSet

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet

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.

Table 224specifies the AddressSpacerepresentation for the AddDataSetFolder Method.

Table 224– AddDataSetFolder Method AddressSpace definition

Attribute

Value

BrowseName

AddDataSetFolder

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet

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.

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.

Table 225specifies the AddressSpacerepresentation for the RemoveDataSetFolder Method.

Table 225– RemoveDataSetFolder Method AddressSpace definition

Attribute

Value

BrowseName

RemoveDataSetFolder

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

ConformanceUnits

PubSub Model PublishedDataSet