Figure 37depicts the ObjectTypesof the message and transport protocol mapping independent part of the PubSubconfiguration model, their main components and their relations.
Figure 37– 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 38shows an example configuration with the root Object PublishSubscribethat is a component of the Server Object.
Figure 38– PubSub example Objects
The example defines two PublishedDataSetspublished through one connection and one group and one DataSetReaderused to subscribe one DataSet.
Figure 39depicts 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.
Figure 39– 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 document.
Publishersand Subscribersmay be configurable through vendor-specific engineering tools or with the configuration Methodsand parameters described in this document. This allows a standard OPC UA Client based configuration tool to configure an OPC UA Serverthat is a Publisherand/or Subscriber.
The latest configuration shall be persisted by the OPC UA Serverand shall be available after a restart of the OPC UA Server. PubSubcomponents are not persisted, if the component has the optional NotPersistedproperty set with a value of true. The PubSubconfiguration properties are defined in 6.2.2.
Configuration parameters are exposed as Variablesof the configurable Objects. Methodsfor creation of Objectshave input arguments for mandatoryVariables. 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. The Status newly created Objectsdepend on the enabled flag in the configuration Structuresif 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 through parameter write only when the related Objecthas the Status Disabledand to apply the new configuration settings when the Statusis changed toOperational. Therefore write operations to configuration parameters shall be rejected with Bad_InvalidStateif the Statusis notDisabled.
Configuration changes based on Methodcalls can be applied in Status Operationalsince the Methodsprovide batch operations. If configuration changes require different Methodcalls, it is recommended to disable the affected Objectsto apply the changes in a batch.
Add, modify and remove operations for all PubSub configuration elements including DataSetsand security key exchange configuration can be executed in one atomic write operation through the PubSubConfiguration Object. It allows also read access to the complete PubSub configuration. Both read and write access are handled through FileTypefunctionality. The related functionality is defined in 9.1.3.7.
Modifications of the PubSubconfiguration can happen through different mechanisms like FileTypeaccess or sequences of Methodcalls. The PubSubapplication should ensure that all mechanisms coordinate access to the configuration. The coordination should not immediately fail parallel access. It should delay access in the range of timeout settings for Methodcalls.
Figure 40depicts the PublishSubscribeTypeand the components used to represent the PublishSubscribeObject.
Figure 40– 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.3.2. The ObjectTypeis formally defined in Table 192.
Table 192– PublishSubscribeType definition
Attribute |
Value |
||||
BrowseName |
PublishSubscribeType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of PubSubKeyServiceType defined in 8.2. |
|||||
|
|
|
|
|
|
HasPubSubConnection |
Object |
<ConnectionName> |
|
PubSubConnectionType |
OptionalPlaceholder |
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 |
SubscribedDataSets |
|
SubscribedDataSetFolderType |
Optional |
HasComponent |
Object |
PubSubConfiguration |
|
PubSubConfigurationType |
Optional |
HasComponent |
Object |
Status |
|
PubSubStatusType |
Mandatory |
HasComponent |
Object |
Diagnostics |
|
PubSubDiagnosticsRootType |
Optional |
HasComponent |
Object |
PubSubCapablities |
|
PubSubCapabilitiesType |
Optional |
HasComponent |
Object |
DataSetClasses |
|
FolderType |
Optional |
HasProperty |
Variable |
SupportedTransportProfiles |
String[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
DefaultDatagramPublisherId |
UInt64 |
PropertyType |
Optional |
HasProperty |
Variable |
ConfigurationVersion |
VersionTime |
PropertyType |
Optional |
HasProperty |
Variable |
DefaultSecurityKeyServices |
EndpointDescription[] |
PropertyType |
Optional |
HasProperty |
Variable |
ConfigurationProperties |
KeyValuePair [] |
PropertyType |
Optional |
Conformance Units |
|||||
PubSub Model Base |
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 AddConnectionand 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 SubscribedDataSets Objectcontains the configured SubscribedDataSets. The SubscribedDataSetFolderTypeis defined in 9.1.9.4. The SubscribedDataSetFolderTypecan be used to build a tree of SubscribedDataSetFolders.
The PubSubConfiguration Objectprovides read and write access to the PubSub configuration through a PubSubConfigurationTypewith is a subtype of FileType. The read access is to the complete configuration. The write access allows add, modify and delete operations to the existing PubSub configuration. The PubSubConfigurationTypeand the related DataTypes are defined in 9.1.3.7.
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 TransportProfileUrisare defined in OPC 10000-7.
The default unique PublisherIdfor datagram transport protocols is provided through the Property DefaultDatagramPublisherId. Further details for the PublisherIdare defined in 6.2.7.1.
The ConfigurationVersionrepresents the time of the last configuration change.
The DefaultSecurityKeyServicesprovide the default SecurityKeyServicesused for the PubSubconfiguration. The value is used as default if not overwritten in the groups or DataSetReaders. The general definition for the SecurityKeyServicesparameter is in 6.2.5.4.
The ConfigurationPropertiesis an array of DataType KeyValuePairthat specifies additional properties for the PubSubconfiguration. The KeyValuePairtype is defined in OPC 10000-5and consists of a QualifiedNameand a value of BaseDataType. The mapping of the namespace, name, and value to concrete functionality may be defined by transport protocol mappings, future versions of this document or vendor-specific extensions.
The PubSubCapabilities Objectsprovides the PubSub capablitiy information. The PubSubCapabilitiesType ObjectTypeis defined in 9.1.12.
The DataSetClasses Folderallows a Server to expose DataSetClassessupported. These DataSetClassescan be used to create PublishedDataSets. The Folderwould also be used by standard information models to include standardized DataSetClassesinto their namespace.
The DataSetClasses Folderreferences a list of Variableswhere the Valueof a Variablerepresents a DataSetClass. For each Variable, the Namefield of the BrowseNameequals the Namein the DataSetMetaData. The Objectis formally defined in Table 193.
Table 193– PublishSubscribeType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
DataSetClasses |
HasComponent |
Variable |
<DataSetName> |
DataSetMetaDataType |
BaseDataVariableType |
OptionalPlaceholder |
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.
The OPC UA Clientcalling this Methodshall be the SKS application with the ApplicationUrithat matches the ApplicationUriin the SecurityKeyServicesparameter of the WriterGroup, ReaderGroupor DataSetReaderobjects using the SecurityGroupId.
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 at 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 an 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 Subscriberexpects that the Publishersuse the next key. Due to network latency, out of order delivery and the use of keys for several Publishers, a Subscriberneeds to 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 Subscribershall 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. |
Table 194specifies the AddressSpacerepresentation for the SetSecurityKeys Method.
Table 194– SetSecurityKeys Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
SetSecurityKeys |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
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.7. |
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 characters. |
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. |
Table 195specifies the AddressSpacerepresentation for the AddConnection Method.
Table 195– AddConnection Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddConnection |
||||
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 PubSubConnection Objectfrom the PublishSubscribe Object.
A successful removal of the PubSubConnection Objectremoves all associated groups, DataSetWriterand DataSetReader Objects. Before the Objectsare removed, their state is set to Disabled.
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. |
Table 196specifies the AddressSpacerepresentation for the RemoveConnection Method.
Table 196– RemoveConnection Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveConnection |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
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.3.2.
The TargetNodeof this ReferenceType shall be an Objectof type PubSubConnectionTypedefined in 9.1.5.2.
Serversshall provide the inverse Referencethat relates a PubSubConnection Objectback to the PublishSubscribeObject.
The representation of the HasPubSubConnection ReferenceTypein the AddressSpaceis specified in Table 197.
Table 197– HasPubSubConnection ReferenceType
Attributes |
Value |
||
BrowseName |
HasPubSubConnection |
||
InverseName |
PubSubConnectionOf |
||
Symmetric |
False |
||
IsAbstract |
False |
||
References |
NodeClass |
BrowseName |
Comment |
Subtype of HasComponent defined in OPC 10000-5. |
|||
Conformance Units |
|||
PubSub Model Base |
This ObjectTyperepresents a FileTypethe can be used to access a PubSub configuration. The PubSubConfigurationType is formally defined in Table 198.
The PubSubConfigurationTypefile is a UA Binary encoded stream containing an instance of UABinaryFileDataTypethat contains a PubSubConfiguration2DataTypeor subtype as Body. The UABinaryFileDataTypeis defined in OPC 10000-5. The PubSubConfiguration2DataTypeis defined in 6.2.12.4.
The FileTypefunctionality is used instead of passing the PubSubConfiguration2DataTypeto read and write Methodsto overcome potential limitations of communication buffers for OPC UA Servicecalls. It is expected that the PubSubConfiguration2DataTypeis used internally in Clientand Serverand that the FileTypeis only used to be able to transfer large configurations.
The Open Methodshall not support modes other than Read(0x01), Write+ EraseExisting(0x06) and Read+ Write(0x03).
When a Clientopens the file for writing the Serverwill not actually update the PubSub configuration until the CloseAndUpdate Methodis called. Simply calling Closewill discard the updates.
When a Clientopens the file for reading and writing, the Client shall follow the following steps.
- Read the existing configuration with the FileType Read Method.
- Set the position to the beginning of the file with the FileType SetPosition Method.
- Write the changes with the FileType Write Method.
- Apply the changes with the CloseAndUpdate Method.
Access to the PubSubconfiguration may be used by multiple Clientsin parallel. Read access can be done in parallel but open with the Writeflag set requires exclusive access. Therefore Clientsthat have the file open should minimize the time the file is open to the currently required actions. The Clientshall close the file as soon as it completes the sequence of actions needed to read or write the file. Clientswith a user interface shall not keep the file open for user configuration. Such Clientsshould read and close the file to initialize the user interface. If the user changes should be written to the PubSubconfiguration, the Clientshould open the file with Read+ Write(0x03), read the file, compare the version information and then write the changes if the version matches the version from the intial read.
Table 198– PubSubConfigurationType definition
Attribute |
Value |
||||
BrowseName |
PubSubConfigurationType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of FileType defined in OPC 10000-20. |
|||||
HasComponent |
Method |
ReserveIds |
Defined in 9.1.3.7.5. |
Mandatory |
|
HasComponent |
Method |
CloseAndUpdate |
Defined in 9.1.3.7.6. |
Mandatory |
|
Conformance Units |
|||||
PubSub Model Base |
This OptionSet defines flags indicating the PubSubConfigurationRefDataTypeoptions.The value of the mask is null, if none of the bits is set.
The PubSubConfigurationRefDataTypeis used to reference a configuration element in a PubSubConfiguration2DataTypestructure. The PubSubConfigurationRefDataTypeindicates the element type referenced and defines the operation to be executed for the referenced configuration element. The possible element operations are ElementAdd, ElementMatch, ElementModifyand ElementRemove.
Only one of the reference bits shall be set. If more than one of these bits are set, the operation shall fail.
The PubSubConfigurationRefMaskvalues are formally defined in Table 199.
Table 199– PubSubConfigurationRefMask values
Value |
Bit No. |
Description |
ElementAdd |
0 |
If this bit is set, the referenced elements is added to the PubSub configuration. If the name of the element is null or empty a name is assigned. If PublisherId, WriterGroupIdor DataSetWriterIdare null, unique IDs are assigned. If this bit is set, the ElementModifyand ElementRemovebits shall be false. If more than one of these bits are set, the operation shall fail. |
ElementMatch |
1 |
If this bit is set, the Id and name shall be null and a matching element is searched. This is used to add children to an existing parent configuration object. This flag can be combined with the ElementAddflag to either use an existing element or to add the element if it does not exist. Match shall only be applied for ReferenceConnection, ReferenceWriterGroupand ReferenceReaderGroup. For all other references the match shall fail with Bad_InvalidArgument. For the PubSubConnectionDataType, the following structure fields are used for the match, the others are ignored. For the WriterGroupDataType, the following structure fields are used for the match, the others are ignored.
For the ReaderGroupDataType, the following structure fields are used for the match, the others are ignored.
For the ConnectionPropertiesand GroupPropertiesonly the entries are compared for the match that are provided in the element to match. Additional properties contained in the existing configuration are ignored. |
ElementModify |
2 |
If this bit is set, the referenced element will be modified. The related element in the current PubSub configuration is referenced with matching the name of the elements. If no matching name is found, the element operation shall fail. |
ElementRemove |
3 |
If this bit is set, the referenced element will be removed. The related element in the current PubSub configuration is referenced with matching the name of the elements. If no matching name is found, the element operation shall fail. A successful removal of the referenced element shall include the removal of all associated child elements. |
ReferenceWriter |
4 |
The element operation is applied to the referenced DataSetWriter. |
ReferenceReader |
5 |
The element operation is applied to the referenced DataSetReader. |
ReferenceWriterGroup |
6 |
The element operation is applied to the referenced WriterGroup. |
ReferenceReaderGroup |
7 |
The element operation is applied to the referenced ReaderGroup. |
ReferenceConnection |
8 |
The element operation is applied to the referenced PubSubConnection. |
ReferencePubDataset |
9 |
The element operation is applied to the referenced PublishedDataSet. |
ReferenceSubDataset |
10 |
The element operation is applied to the referenced SubscribedDataSet. |
ReferenceSecurityGroup |
11 |
The element operation is applied to the referenced SecurityGroup. The access to the security groups may require different user credentials than access to the communication configuration elements. |
ReferencePushTarget |
12 |
The element operation is applied to the referenced PubSubKeyServerPushTarget. The access to the push target configuration may require different user credentials than access to the communication configuration elements. |
The PubSubConfigurationRefMaskrepresentation in the AddressSpaceis formally defined in Table 200.
Table 200– PubSubConfigurationRefMask definition
Attribute |
Value |
|||||
BrowseName |
PubSubConfigurationRefMask |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the UInt32 type defined in OPC 10000-5. |
||||||
0:HasProperty |
Variable |
OptionSetValues |
LocalizedText[] |
PropertyType |
|
|
ConformanceUnits |
||||||
PubSub Model Base |
The PubSubConfigurationRefDataType allows to reference an element contained in the PubSubConfiguration2DataType Structure.
The PubSubConfigurationRefDataTypeis formally defined in Table 201.
Table 201– PubSubConfigurationRefDataType structure
Name |
Type |
Description |
PubSubConfigurationRefDataType |
Structure |
|
ConfigurationMask |
PubSubConfigurationRefMask |
Specifies the add, match, modify or remove element operation and the type of configuration element that is referenced. |
ElementIndex |
UInt16 |
Specifies the index into the DataSetWriters, DataSetReaders, PublishedDataSets, SubscribedDataSets, SecurityGroupsor PubSubKeyPushTargetsarray of the PubSubConfigurationdepending on the bits ReferenceWriter, ReferenceReader, ReferencePubDataset, ReferenceSubDataset, ReferenceSecurityGroupor ReferencePushTarget. If this index is not used for referencing, it shall be set to 0. |
ConnectionIndex |
UInt16 |
Specifies the index within the Connections array of the PubSubConfigurationif the connection, group, reader or writer bits is set. If ReferenceConnectionis true, the add, modify or remove element operation is applied. If ReferenceConnectionis false, the name of the connection is used to identify the matching connection in the current PubSub configuration. If this index is not used for referencing, it shall be set to 0. |
GroupIndex |
UInt16 |
If the ReferenceReaderGroupand/or ReferenceReaderbits are true, it speficies the index within the ReaderGroups array of the related connection. If ReferenceReaderGroupis true, the add, modify or remove element operation is applied. If ReferenceReaderGroupis false, the name of the ReaderGroupis used to identify the matching group in the current PubSub configuration. If the ReferenceWriterGroupand/or ReferenceWriterbits are true, it specifies the index within the WriterGroups array of the related connection. If ReferenceWriterGroupis true, the add, modify or delete bit is applied. If ReferenceReaderGroupis false, the name of the ReaderGroupis used to identify the matching group in the current PubSub configuration. If this index is not used for referencing, it shall be set to 0. |
The PubSubConfigurationRefDataTyperepresentation in the AddressSpaceis formally defined in Table 202.
Table 202– PubSubConfigurationRefDataType definition
Attribute |
Value |
|||||
BrowseName |
PubSubConfigurationRefDataType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of Structuredefined in OPC 10000-5. |
||||||
ConformanceUnits |
||||||
PubSub Model Base |
The PubSubConfigurationValueDataType allows to indicate specific values contained in PubSubConfiguration elements.
The PubSubConfigurationValueDataTypeis formally defined in Table 203.
Table 203– PubSubConfigurationValueDataType structure
Name |
Type |
Description |
PubSubConfigurationValueDataType |
Structure |
|
ConfigurationElement |
PubSubConfigurationRefDataType |
Refers to a configuration element in the related PubSubConfiguration2DataType Structure. |
Name |
String |
The name of the referenced PubSub configuration element. |
Identifier |
BaseDataType |
The identifier value used for the referenced element in the PubSub NetworkMessages. The value is only provided if the element is a PubSubConneciton, WriterGroupor DataSetWriter. The value is null otherwise. If ConfigurationElement references a PubSubConnection, Identifier will contain the value of the PublisherId. If ConfigurationElement references a WriterGroup, Identifier will contain the value of the WriterGroupId. If ConfigurationElement references a DataSetWriter, Identifier will contain the value of the DataSetWriterId. |
The PubSubConfigurationValueDataTyperepresentation in the AddressSpaceis formally defined in Table 204.
Table 204– PubSubConfigurationValueDataType definition
Attribute |
Value |
|||||
BrowseName |
PubSubConfigurationValueDataType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of Structuredefined in OPC 10000-5. |
||||||
ConformanceUnits |
||||||
PubSub Model Base |
This Methodreserves unique WriterGroupIdsand DataSetWriterIdsto allow PubSubconfiguration applications to apply unique Ids to new PubSubconfiguration elements when preparing a update to the PubSubconfiguration. It also returns the related default PublisherId. See 6.2.7.1for more details on PublisherIdand default values.
The ID shall be returned from the range 0x8000 - 0xFFFF for internal assignment. The Server shall ensure that the IDs returned are not used in the current PubSubconfiguration or are not reserved yet.
When a Clientreserves IDs, these reservations are valid while the Sessionis open. The reserved IDs can only be used for configuration modifications through the same Session. The reservation is only valid until the ID is used in the configuration or until the Sessionis closed. The IDs can be re-used if a PubSubcomponent that uses the ID is deleted.
The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.
Signature
ReserveIds(
[in]String TransportProfileUri,
[in]UInt16 NumReqWriterGroupIds,
[in]UInt16 NumReqDataSetWriterIds,
[out]BaseDataTypeDefaultPublisherId,
[out]UInt16[] WriterGroupIds,
[out]UInt16[] DataSetWriterIds
);
Argument |
Description |
TransportProfileUri |
Transport protocol and message mapping profile scope for the ID request. |
NumReqWriterGroupIds |
The number of requested Ids for WriterGroups. |
NumReqDataSetWriterIds |
The number of requested Ids for DataSetWriters. |
DefaultPublisherId |
The default PublisherIdof the Server for the requested TransportProfileUri. |
WriterGroupIds |
The reserved Ids for WriterGroups for the requested TransportProfileUri. |
DataSetWriterIds |
The reserved Ids for DataSetWritersfor the requested TransportProfileUri |
Method Result Codes
ResultCode |
Description |
Bad_UserAccessDenied |
The Sessionuser is not allowed to modify the PubSub configuration. |
Table 205specifies the AddressSpacerepresentation for the ReserveIds Method.
Table 205– ReserveIds Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
ReserveIds |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
This Methodcloses the file and applies the changes to the PubSub configuration as defined in the ConfigurationReferencesargument. It can only be called if the file was opened for writing. If the Close Methodis called any cached data is discarded and the PubSub configuration is not changed.
The file content shall be a UABinaryFileDataTypewith a PubSubConfiguration2DataTypeas Body. The ConfigurationReferencesargument specifies the configuration elements to add, modify or remove. Configuration elements in PubSubConfiguration2DataTypethat are not referenced by ConfigurationReferencesmay be used indirectly as parent elements for referencing. In this case only the name of the element is relevant and all other fields of the element are ignored. Configuration elements in PubSubConfiguration2DataTypenot referenced and not used as parent elements are ignored.
Remove element operations shall be processed before any other operations are processed. The PubSubConfiguration2DataTypemay contain duplicate names for cases where elements are removed and added with the same name.
The top-level fields in the PubSubConfiguration2DataTypeare not referenced in ConfigurationReferencesargument. Most of them are only relevant for the read case.
- The Enablefield is ignored.
- The DataSetClassesfield is ignored.
- The DefaultSecurityKeyServicesfield is ignored if the array is null or empty. If the array contains entries, the existing DefaultSecurityKeyServicesare replaced with the new configuration.
- The ConfigurationVersionfield is ignored. The ConfigurationVersionis updated to the current time after successful execution of CloseAndUpdate.
- The ConfigurationPropertiesfield is merged with the existing ConfigurationProperties. If a key is provided with a value, the key is either inserted or it replaces the value of an existing key. If a key is provided with a null value, the key is deleted if it exists.
The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.
Signature
CloseAndUpdate(
[in]UInt32 FileHandle,
[in]Boolean RequireCompleteUpdate,
[in]PubSubConfigurationRefDataType[]ConfigurationReferences,
[out]Boolean ChangesApplied,
[out]StatusCode[] ReferencesResults,
[out]PubSubConfigurationValueDataType[] ConfigurationValues,
[out]NodeId[] ConfigurationObjects
);
Argument |
Description |
FileHandle |
The handle of the previously opened file. |
RequireCompleteUpdate |
If true, the modification is only applied if the all changes can be applied to all objects. |
ConfigurationReferences |
References to the PubSub configuration elements in the written file that should be added, modified or removed. |
ChangesApplied |
If true, one or more changes were applied. If RequireCompleteUpdatewas set to false, the ReferencesResultsargument indicates if referenced configuration elements failed. If false, no changes were applied. The detailed errors are provided in the ReferencesResultsargument. |
ReferencesResults |
Results of the add, modify, match or remove operation for the referenced element. The length and order of the array shall match the ConfigurationReferencesarray. |
ConfigurationValues |
The assigned names and identifiers for the elements where empty names or null identifiers where provided in the elements. The values are only provided for elements with the bits ElementAddor ElementMatchset and where a name and identifier was assigned. |
ConfigurationObjects |
NodeIds of the related Objectsto referenced If NodeIds are returned, the length and order of the array shall match the ConfigurationReferencesarray. If the Server does not support the creation of NodeIds, the array is null or empty. |
Method Result Codes
ResultCode |
Description |
Bad_TypeMismatch |
The file content is not a UABinaryFileDataTypewith a PubSubConfiguration2DataTypeas Body. |
Bad_InvalidArgument |
The file handle is not valid. |
Bad_InvalidState |
The file was not opened for writer access. |
Bad_UserAccessDenied |
The Sessionuser is not allowed to modify the PubSub configuration. |
Bad_NothingToDo |
The ConfigurationReferences array is null or empty. |
Element Result Codes
ResultCode |
Description |
Bad_BrowseNameDuplicated |
An element with the name already exists. The element cannot be added. |
Bad_NoMatch |
An element with the name does not exist or there is no element with matching parameters. The element cannot be matched, modified or removed. |
Bad_NotFound |
One of the parent elements does not exist or was not added or matched. The element cannot be processed. |
Bad_InvalidArgument |
The element reference is invalid or has invalid index entries. |
Bad_UserAccessDenied |
The user has not the rights to access the element. |
Table 206specifies the AddressSpacerepresentation for the CloseAndUpdate Method.
Table 206– CloseAndUpdate Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
CloseAndUpdate |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
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.
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 |
OptionalPlaceholder |
HasProperty |
Variable |
ConfigurationVersion |
ConfigurationVersionDataType |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetMetaData |
DataSetMetaDataType |
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 |
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 |
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 |
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 |
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 |
PublishedVariableDataType[] |
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 |
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 |
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 |
|
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 |
|
Bad_EventFilterInvalid |
The Eventfilter is not valid. |
Bad_UserAccessDenied |
|
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 |
|
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 |
|
Bad_NodeIdUnknown |
|
Bad_EventFilterInvalid |
The Eventfilter is not valid. |
Bad_UserAccessDenied |
|
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 |
Figure 42depicts the ObjectTypefor the PubSubconnection model and its components and the relations to other parts of the model.
Figure 42– 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 226.
Table 226– PubSubConnectionType definition
Attribute |
Value |
||||
BrowseName |
PubSubConnectionType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
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 |
|
PubSubDiagnosticsConnectionType |
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 |
|
Conformance Units |
|||||
PubSub Model Base |
The PublisherIdis defined in 6.2.7.1.
The TransportProfileUri is defined in 6.2.7.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.7.4.
The Address is defined in 6.2.7.3. The abstract NetworkAddressTypeis defined in 9.1.5.6. The default type used for concrete instances is the NetworkAddressUrlTypedefined in 9.1.5.7. It represents the Addressin the form of a URL String.
The transport protocol mapping specific settings are provided in the optional Object TransportSettings. The ConnectionTransportTypeis defined in 9.1.5.8. 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 product-specific 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.6. |
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 characters. |
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. |
Table 227specifies the AddressSpacerepresentation for the AddWriterGroup Method.
Table 227– AddWriterGroup Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddWriterGroup |
||||
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 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.8. |
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 characters. |
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. |
Table 228specifies the AddressSpacerepresentation for the AddReaderGroup Method.
Table 228– AddReaderGroup Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddReaderGroup |
||||
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 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.
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. |
Table 229specifies the AddressSpacerepresentation for the RemoveGroup Method.
Table 229– RemoveGroup Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveGroup |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
An instance of a subtype of this abstract ObjectTyperepresents network address information. The NetworkAddressTypeis formally defined in Table 230.
Table 230– NetworkAddressType definition
Attribute |
Value |
|||||
BrowseName |
NetworkAddressType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType defined in OPC 10000-5. |
||||||
HasComponent |
Variable |
NetworkInterface |
String |
SelectionListType |
Mandatory |
|
Conformance Units |
||||||
PubSub Model Base |
The NetworkInterface Variableallows the selection of the network interface used for the communication relation. The network interface can be listed by name, by IP address or a combination of name and IP address. The SelectionValues Propertyof the SelectionListTypeshall contain the list of available network interfaces as application-specific strings. The Value of the Variable contains the selected network interface as String. The SelectionListTypeis defined in OPC 10000-5. The Objectmay allow providing additional Stringsnot defined in the SelectionValues. In this case the NotRestrictToList Propertyof the SelectionListTypeis set to true.
An instance of this ObjectTyperepresents network address information in the form of a URL String. The NetworkAddressUrlTypeis formally defined in Table 231.
Table 231– NetworkAddressUrlType definition
Attribute |
Value |
||||
BrowseName |
NetworkAddressUrlType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of NetworkAddressType defined in 9.1.5.6. |
|||||
HasComponent |
Variable |
Url |
String |
BaseDataVariableType |
Mandatory |
Conformance Units |
|||||
PubSub Model Base |
The URL Variablecontains the address string for the communication middleware or the communication relation. The syntax of the URL is defined by the transport protocol.
This ObjectTypeis the abstract base type for Objectsrepresenting transport protocol mapping specific settingsforPubSubConnections. The ConnectionTransportTypeis formally defined in Table 232.
Table 232– ConnectionTransportType definition
Attribute |
Value |
||||
BrowseName |
ConnectionTransportType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType |
|||||
Conformance Units |
|||||
PubSub Model Base |
The HasWriterGroup 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 PubSubConnectionTypedefined in 9.1.5.2.
The TargetNodeof this ReferenceType shall be an instance of the WriterGroupTypedefined in 9.1.6.3.
Serversshall provide the inverse Referencethat relates a WriterGroup Objectback to a PubSubConnectionTypeObject.
The representation of the HasWriterGroup ReferenceTypein the AddressSpaceis specified in Table 233.
Table 233– HasWriterGroup ReferenceType
Attributes |
Value |
||
BrowseName |
HasWriterGroup |
||
InverseName |
IsWriterGroupOf |
||
Symmetric |
False |
||
IsAbstract |
False |
||
References |
NodeClass |
BrowseName |
Comment |
Subtype of HasComponent defined in OPC 10000-5. |
|||
Conformance Units |
|||
PubSub Model Base |
The HasReaderGroup 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 PubSubConnectionTypedefined in 9.1.5.2.
The TargetNodeof this ReferenceType shall be an instance of the ReaderGroupTypedefined in 9.1.6.6.
Serversshall provide the inverse Referencethat relates a ReaderGroup Objectback to a PubSubConnectionTypeObject.
The representation of the HasReaderGroup ReferenceTypein the AddressSpaceis specified in Table 234.
Table 234– HasReaderGroup ReferenceType
Attributes |
Value |
||
BrowseName |
HasReaderGroup |
||
InverseName |
IsReaderGroupOf |
||
Symmetric |
False |
||
IsAbstract |
False |
||
References |
NodeClass |
BrowseName |
Comment |
Subtype of HasComponent defined in OPC 10000-5. |
|||
Conformance Units |
|||
PubSub Model Base |
Figure 43depicts the ObjectTypefor the PubSubgroup model and its components and the relations to other parts of the model.
Figure 43– PubSubGroupType overview
This ObjectTypeis the abstract base type for Objectsrepresenting communication groupingsforPubSub connections. The PubSubGroupTypeis formally defined in Table 235.
Table 235– 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 |
|
Conformance Units |
||||||
PubSub Model Base |
The SecurityModeis defined in 6.2.5.2.
The SecurityGroupIdis defined in 6.2.5.3. If the SecurityModeis not NONE, the Propertyshall provide the SecurityGroupId. The value of the Propertyis null or the Propertyis not present if the SecurityModeis NONE.
The SecurityKeyServicesparameter is defined in 6.2.5.4. If the SecurityModeis not NONE, the Propertyshall provide the list of Security Key Servicesfor the SecurityGroupId.
The MaxNetworkMessageSizeis defined in 0.
The GroupPropertiesis defined in 6.2.5.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 236.
Table 236– WriterGroupType definition
Attribute |
Value |
|||||
BrowseName |
WriterGroupType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
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 |
|
PubSubDiagnosticsWriterGroupType |
Optional |
|
HasComponent |
Method |
AddDataSetWriter |
Defined in 9.1.6.4. |
Optional |
||
HasComponent |
Method |
RemoveDataSetWriter |
Defined in 9.1.6.5. |
Optional |
||
Conformance Units |
||||||
PubSub Model Base |
The WriterGroupIdis defined in 6.2.6.1.
The PublishingIntervalis defined in 6.2.6.2.
The KeepAliveTimeis defined in 6.2.6.3.
The Priorityis defined in 6.2.6.4.
The LocaleIdsparameter is defined in 6.2.6.5.
The HeaderLayoutUriis defined in 6.2.6.6.
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 product-specific 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.4. |
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 characters. |
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. |
Table 237specifies the AddressSpacerepresentation for the AddDataSetWriter Method.
Table 237– AddDataSetWriter Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddDataSetWriter |
||||
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 DataSetWriter Objectfrom the group. The state of the DataSetWriteris set to Disabledbefore 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. |
Table 238specifies the AddressSpacerepresentation for the RemoveDataSetWriter Method.
Table 238– RemoveDataSetWriter Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveDataSetWriter |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
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.
Serversshall provide the inverse Referencethat relates a DataSetWriter Objectback to a WriterGroupTypeObject.
The representation of the HasDataSetWriter ReferenceTypein the AddressSpaceis specified in Table 239.
Table 239– HasDataSetWriter ReferenceType
Attributes |
Value |
||
BrowseName |
HasDataSetWriter |
||
InverseName |
IsWriterInGroup |
||
Symmetric |
False |
||
IsAbstract |
False |
||
References |
NodeClass |
BrowseName |
Comment |
Subtype of HasComponent defined in OPC 10000-5. |
|||
Conformance Units |
|||
PubSub Model Base |
This ObjectTypeis the abstract base type for Objectsrepresenting transport protocol mapping specific settingsforWriterGroups. The WriterGroupTransportTypeis formally defined in Table 240.
Table 240– WriterGroupTransportType definition
Attribute |
Value |
|||||
BrowseName |
WriterGroupTransportType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType |
||||||
Conformance Units |
||||||
PubSub Model Base |
This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforWriterGroups. The WriterGroupMessageTypeis formally defined in Table 241.
Table 241– WriterGroupMessageType definition
Attribute |
Value |
|||||
BrowseName |
WriterGroupMessageType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType |
||||||
Conformance Units |
||||||
PubSub Model Base |
This ObjectTypeis a concrete type for Objectsrepresenting DataSetReadergroupingsforPubSub connections. The ReaderGroupTypeis formally defined in Table 242.
Table 242– ReaderGroupType definition
Attribute |
Value |
|||||
BrowseName |
ReaderGroupType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
Data Type |
TypeDefinition |
ModellingRule |
|
Subtype of PubSubGroupType defined in 9.1.6.2 |
||||||
HasDataSetReader |
Object |
<DataSetReaderName> |
|
DataSetReaderType |
OptionalPlaceholder |
|
HasComponent |
Object |
Diagnostics |
|
PubSubDiagnosticsReaderGroupType |
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 |
||
Conformance Units |
||||||
PubSub Model Base |
The configured DataSetReaderType Objectsare added as components to the instance of the group. DataSetReaderType Objectsmay be configured with product-specific 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.9. |
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. |
Table 243specifies the AddressSpacerepresentation for the AddDataSetReader Method.
Table 243– AddDataSetReader Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddDataSetReader |
||||
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 DataSetReader Objectfrom the group. The state of the DataSetReaderis set to Disabledbefore 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. |
Table 244specifies the AddressSpacerepresentation for the RemoveDataSetReader Method.
Table 244– RemoveDataSetReader Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveDataSetReader |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model Base |
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.
Serversshall provide the inverse Referencethat relates a DataSetReader Objectback to a ReaderGroupTypeObject.
The representation of the HasDataSetReader ReferenceTypein the AddressSpaceis specified in Table 245.
Table 245– HasDataSetReader ReferenceType
Attributes |
Value |
||
BrowseName |
HasDataSetReader |
||
InverseName |
IsReaderInGroup |
||
Symmetric |
False |
||
IsAbstract |
False |
||
References |
NodeClass |
BrowseName |
Comment |
Subtype of HasComponent defined in OPC 10000-5. |
|||
Conformance Units |
|||
PubSub Model Base |
This ObjectTypeis the abstract base type for Objectsrepresenting transport protocol mapping specific settingsforReaderGroups. The ReaderGroupTransportTypeis formally defined in Table 246.
There is currently no transport protocol mapping specific setting defined.
Table 246– ReaderGroupTransportType definition
Attribute |
Value |
||||
BrowseName |
ReaderGroupTransportType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType |
|||||
Conformance Units |
|||||
PubSub Model Base |
This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforReaderGroups. The ReaderGroupMessageTypeis formally defined in Table 247.
There is currently no message mapping specific setting defined.
Table 247– ReaderGroupMessageType definition
Attribute |
Value |
||||
BrowseName |
ReaderGroupMessageType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType |
|||||
Conformance Units |
|||||
PubSub Model Base |
Figure 44depicts the ObjectTypefor the PubSub DataSetWritermodel and its components and the relations to other parts of the model.
Figure 44– DataSet Writer model overview
An instance of this ObjectTyperepresents the configuration for a DataSetWriter. The DataSetWriterTypeis formally defined Table 248.
A DataSetWriterthat creates DataSetMessagesbased on a PublishedDataSetshall reference the related PublishedDataSetwith an inverse DataSetToWriter Reference.
A DataSetWriterthat creates heartbeat DataSetMessagesshall not have a reference to a PublishedDataSet.
Table 248– DataSetWriterType definition
Attribute |
Value |
||||
BrowseName |
DataSetWriterType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of BaseObjectType defined in OPC 10000-5 |
|||||
HasProperty |
Variable |
DataSetWriterId |
UInt16 |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetFieldContentMask |
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 |
|
PubSubDiagnosticsDataSetWriterType |
Optional |
Conformance Units |
|||||
PubSub Model Base |
The DataSetWriterIdis defined in 6.2.4.1.
The DataSetFieldContentMaskis defined in 6.2.4.2.
The KeyFrameCountis defined in 6.2.4.3. The Propertyshall be present for PublishedDataSetsthat provide cyclic updates of the DataSet.
The DataSetWriterPropertiesis defined in 6.2.4.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 249.
Table 249– DataSetWriterTransportType definition
Attribute |
Value |
|||||
BrowseName |
DataSetWriterTransportType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType defined in OPC 10000-5 |
||||||
Conformance Units |
||||||
PubSub Model Base |
This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforDataSetWriters. The DataSetWriterMessageTypeis formally defined in Table 250.
Table 250– DataSetWriterMessageType definition
Attribute |
Value |
||||
BrowseName |
DataSetWriterMessageType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType defined in OPC 10000-5 |
|||||
Conformance Units |
|||||
PubSub Model Base |
Figure 45depicts the ObjectTypefor the PubSub DataSetReadermodel and its components and the relations to other parts of the model.
Figure 45– DataSet Reader model overview
This ObjectTypedefines receiving behaviour of DataSetMessagesand the decoding to DataSets. The DataSetReaderTypeis formally defined in Table 251.
The SubscribedDataSetTypedefined in 9.1.9.1describes the processing of the received DataSetin a Subscriber.
Table 251– DataSetReaderType definition
Attribute |
Value |
|||||
BrowseName |
DataSetReaderType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Subtype of BaseObjectType defined in OPC 10000-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 |
|
DataSetReaderTransportType |
Optional |
|
HasComponent |
Object |
MessageSettings |
|
DataSetReaderMessageType |
Optional |
|
HasComponent |
Object |
Status |
|
PubSubStatusType |
Mandatory |
|
HasComponent |
Object |
Diagnostics |
|
PubSubDiagnosticsDataSetReaderType |
Optional |
|
HasComponent |
Object |
SubscribedDataSet |
|
SubscribedDataSetType |
Mandatory |
|
HasComponent |
Method |
CreateTargetVariables |
Defined in 9.1.8.5. |
Optional |
||
HasComponent |
Method |
CreateDataSetMirror |
Defined in 9.1.8.6. |
Optional |
||
Conformance Units |
||||||
PubSub Model Base |
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.9.1.
The WriterGroupId is defined in 6.2.9.2.
The DataSetWriterIdis defined in 6.2.9.3.
The DataSetMetaDatais defined in 6.2.9.4. If the DataSetReaderreceives an updated DataSetMetaData, the DataSetReadershall update the Property DataSetMetaData.
The DataSetFieldContentMaskis defined in 6.2.9.5.
The MessageReceiveTimeoutis defined in 6.2.9.6.
The KeyFrameCountis defined in 6.2.9.7.
The HeaderLayoutUriis defined in 6.2.9.8.
The SecurityModeis defined in 6.2.9.9. If present or if the value is not INVALID, it overwrites the settings on the group.
The SecurityGroupIdis defined in 6.2.9.10.
The SecurityKeyServicesis defined in 6.2.9.11.
The DataSetReaderPropertiesis defined in 6.2.9.12.
The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The DataSetReaderTransportTypeis 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 DataSetReaderMessageTypeis 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 a DataSetMessage. The SubscribedDataSetTypeand the available subtypes are defined in 9.1.9. If the DataSetReaderis configured to receive heartbeat DataSetMessages, the Objectshall be of the base type SubscribedDataSetType.
This ObjectTypeis the abstract base type for Objectsdefining the transport protocol-specific parameters forDataSetReaders. The DataSetReaderTransportTypeis formally defined in Table 252.
Table 252– DataSetReaderTransportType definition
Attribute |
Value |
||||
BrowseName |
DataSetReaderTransportType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType defined in OPC 10000-5 |
|||||
Conformance Units |
|||||
PubSub Model Base |
This ObjectTypeis the abstract base type for Objectsrepresenting message mapping specific settingsforDataSetReaders. The DataSetReaderMessageTypeis formally defined in Table 253.
Table 253– DataSetReaderMessageType definition
Attribute |
Value |
|||||
BrowseName |
DataSetReaderMessageType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType defined in OPC 10000-5 |
||||||
Conformance Units |
||||||
PubSub Model Base |
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 through CreateTargetVariablesshall 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.3.2.5. |
TargetVariablesToAdd |
The list of target Variablesto write received DataSetfields to. The FieldTargetDataTypeis defined in 6.2.10.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 provided. |
Bad_InvalidState |
The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the Publisher. |
Bad_UserAccessDenied |
Operation Result Codes
ResultCode |
Description |
Bad_NodeIdInvalid |
See OPC 10000-4for the description of this result code. This status code is related to the TargetNodeId. |
Bad_NodeIdUnknown |
See OPC 10000-4for the description of this result code. This status code is related to the TargetNodeId. |
Bad_AttributeIdInvalid |
See OPC 10000-4for the description of this result code. This status code is related to the AttributeId. |
Bad_NoMatch |
This status code indicates that the DataSetFieldIdis invalid. |
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 as 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. |
Table 254specifies the AddressSpacerepresentation for the CreateTargetVariables Method.
Table 254– CreateTargetVariables Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
CreateTargetVariables |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model SubscribedDataSet |
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. The detailed rules for the Object creation are defined in 9.1.9.3.
If the SubscribedDataSetalready has a specific subtype, this subtype is replaced with a SubscribedDataSetMirrorTypeinstance.
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 |
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the Publisher. |
Bad_UserAccessDenied |
Table 255specifies the AddressSpacerepresentation for the CreateDataSetMirror Method.
Table 255– CreateDataSetMirror Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
CreateDataSetMirror |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model SubscribedDataSet Mirror |
This ObjectTypedefines the metadata for the subscribed DataSetand the information for the processing of DataSetMessages. See 5.4.2.2for an introduction to the processing options for received DataSetMessages.
The SubscribedDataSetTypeis formally defined in Table 256.
Table 256– SubscribedDataSetType definition
Attribute |
Value |
|||||
BrowseName |
SubscribedDataSetType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType defined in OPC 10000-5 |
||||||
Conformance Units |
||||||
PubSub Model Base |
This ObjectTypedefines the metadata for the subscribed DataSetand the information for the processing of DataSetMessages. The TargetVariablesTypeis formally defined in Table 257.
Table 257– TargetVariablesType definition
Attribute |
Value |
|||||
BrowseName |
TargetVariablesType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of SubscribedDataSetType defined in 9.1.9.1. |
||||||
HasProperty |
Variable |
TargetVariables |
FieldTargetDataType[] |
PropertyType |
Mandatory |
|
HasComponent |
Method |
AddTargetVariables |
Defined in 9.1.9.2.2. |
Optional |
||
HasComponent |
Method |
RemoveTargetVariables |
Defined in 9.1.9.2.3. |
Optional |
||
Conformance Units |
||||||
PubSub Model SubscribedDataSet |
The TargetVariablesis defined in 6.2.10.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 through AddDataConnectionsshall 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.3.2.5. |
TargetVariablesToAdd |
The list of target Variablesto write received DataSetfields to. The FieldTargetDataTypeis defined in 6.2.10.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 provided. |
Bad_InvalidState |
The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the Publisher. |
Bad_UserAccessDenied |
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 as 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. |
Table 258specifies the AddressSpacerepresentation for the AddTargetVariables Method.
Table 258– AddTargetVariables Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddTargetVariables |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model SubscribedDataSet |
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 through RemoveTargetVariablesshall 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.3.2.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 provided. |
Bad_InvalidState |
The DataSetReaderis not configured yet or the ConfigurationVersiondoes not match the version in the DataSetMetaData. |
Bad_UserAccessDenied |
Operation Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The provided index is invalid. |
Table 259specifies the AddressSpacerepresentation for the RemoveTargetVariables Method.
Table 259– RemoveTargetVariables Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveTargetVariables |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model SubscribedDataSet |
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 260.
Table 260– SubscribedDataSetMirrorType definition
Attribute |
Value |
||||
BrowseName |
SubscribedDataSetMirrorType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of SubscribedDataSetType defined in 9.1.9.1. |
|||||
Conformance Units |
|||||
PubSub Model SubscribedDataSet Mirror |
An Objectof this type shall reference a mirror Objectwith HasComponentwhere the name of the Objectis based on the ParentNodeName. The Method CreateDataSetMirrorcan be used to set the SubscribedDataSetinto the mirror mode.
The mirror Objectshall reference Variablesfor each DataSetfield in the DataSetMetaDatawith HasComponent. The name, DataType, ValueRankand ArrayDimensionsof the Variables shall match the settings for the corresponding DataSetfield in the DataSetMetaData.
A Variablerepresenting a field of the DataSetshall be created with the following rules
- TypeDefinition is BaseDataVariableTypeor a subtype.
- The Referencefrom the parent Nodeto the Variableis of type HasComponent.
- The initial AccessLevelof the Variablesis CurrentRead.
- The RolePermissionsis derived from the parent Node.
- The other Attributevalues are taken from the FieldMetaData.
- The propertiesin the FieldMetaDataare created as Propertiesof the Variable.
The DataTypesare created in the Subscriberfrom the DataSetMetaDataif they do not exist. The NamespaceUriof the created DataTypesshall match the namespace contained in the DataSetMetaData.
The SubscribedDataSetFolderType is formally defined in Table 261.
Table 261– SubscribedDataSetFolderType definition
Attribute |
Value |
||||
BrowseName |
SubscribedDataSetFolderType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of FolderType defined in OPC 10000-5. |
|||||
Organizes |
Object |
<SubscribedDataSetFolderName> |
|
SubscribedDataSetFolderType |
OptionalPlaceholder |
HasComponent |
Object |
<StandaloneSubscribedDataSetName> |
|
StandaloneSubscribedDataSetType |
OptionalPlaceholder |
HasComponent |
Method |
AddSubscribedDataSet |
Defined in 9.1.9.4.2 |
Optional |
|
HasComponent |
Method |
RemoveSubscribedDataSet |
Defined in 9.1.9.4.3 |
Optional |
|
HasComponent |
Method |
AddDataSetFolder |
Defined in 9.1.9.4.4. |
Optional |
|
HasComponent |
Method |
RemoveDataSetFolder |
Defined in 9.1.9.4.5. |
Optional |
|
Conformance Units |
|||||
PubSub Model SubscribedDataSet Standalone |
The SubscribedDataSetFolderType ObjectTypeis a concrete type and can be used directly.
Instances of the SubscribedDataSetFolderTypecan contain StandaloneSubscribedDataSetsor other instances of the SubscribedDataSetFolderType. This can be used to build a tree of Folder Objectsused to group the configured StandaloneSubscribedDataSets.
The StandaloneSubscribedDataSetType Objects are added as components to the instance of the SubscribedDataSetFolderType. An instance of a StandaloneSubscribedDataSetType is referenced only from one SubscribedDataSetFolder. If the SubscribedDataSetFolder is deleted, all referenced StandaloneSubscribedDataSetType Objects are deleted with the folder.
StandaloneSubscribedDataSetType Objects may be configured with product-specific configuration tools or added and removed through the Methods AddSubscribedDataSet and RemoveSubscribedDataSet.
This Methodis used to add a new standalone subscribed DataSet Objectto an instance of the DataSet Folder.
The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.
Signature
AddSubscribedDataSet(
[in]StandaloneSubscribedDataSetDataType SubscribedDataSet,
[out]NodeId SubscribedDataSetNodeId
);
Argument |
Description |
SubscribedDataSet |
The standalone subscribed DataSetto add. |
SubscribedDataSetNodeId |
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 folder. |
Bad_ResourceUnavailable |
The Serverdoes not have enough resources to add the subscribed DataSet. |
Bad_UserAccessDenied |
The Sessionuser does not have rights to create the subscribed DataSet. |
Table 262specifies the AddressSpacerepresentation for the AddSubscribedDataSet Method.
Table 262– AddSubscribedDataSet Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
AddSubscribedDataSet |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model SubscribedDataSet Standalone |
This Methodis used to remove a standalone subscribed DataSet Objectfrom a subscribed DataSet Folder. If a DataSetReaderis connected, the DataSetReaderis removed too.
The Clientshall be authorized to modify the configuration for the PubSubfunctionality when invoking this Methodon the Server.
Signature
RemoveSubscribedDataSet(
[in]NodeIdSubscribedDataSetNodeId
);
Argument |
Description |
SubscribedDataSetNodeId |
NodeIdof the standalone subscribed DataSetto remove from the folder. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The SubscribedDataSetNodeIdis unknown. |
Bad_NodeIdInvalid |
The SubscribedDataSetNodeIdis not a NodeId of astandalone subscribed DataSet. |
Bad_UserAccessDenied |
Table 263specifies the AddressSpacerepresentation for the RemoveSubscribedDataSet Method.
Table 263– RemoveSubscribedDataSet Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveSubscribedDataSet |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model SubscribedDataSet Standalone |
This Methodis used to add a SubscribedDataSetFolderType Objectto a SubscribedDataSetFolderType 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 SubscribedDataSetFolderType 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 264specifies the AddressSpacerepresentation for the AddDataSetFolder Method.
Table 264– 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 SubscribedDataSet Standalone |
This Methodis used to remove a SubscribedDataSetFolderType Objectfrom the parent SubscribedDataSetFolderType Object.
A successful removal of the SubscribedDataSetFolderType Objectremovesall associated StandaloneSubscribedDataSetType Objectsand their associated DataSetReader 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 SubscribedDataSetFolderType Objectto remove from the Server. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The DataSetFolderNodeId is unknown. |
Bad_UserAccessDenied |
The Sessionuser is not allowed to delete the folder. |
Table 265specifies the AddressSpacerepresentation for the RemoveDataSetFolder Method.
Table 265– RemoveDataSetFolder Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
RemoveDataSetFolder |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
ConformanceUnits |
|||||
PubSub Model SubscribedDataSet Standalone |
This ObjectTyperepresents a Subscriberdefined standalone DataSet. A standalone subscribed DataSetcan exist without DataSetReaderand is used to define a DataSetfrom the Subscriberside. A DataSetReadercan be configured and connected to the standalone DataSetif a Publisherprovides the DataSetMessagesdefined by the DataSetMetaDatain the standalone DataSet. The StandaloneSubscribedDataSetTypeis formally defined in Table 266.
Table 266– StandaloneSubscribedDataSetType definition
Attribute |
Value |
||||
BrowseName |
StandaloneSubscribedDataSetType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of BaseObjectType defined in OPC 10000-5 |
|||||
HasComponent |
Object |
SubscribedDataSet |
|
SubscribedDataSetType |
Mandatory |
HasProperty |
Variable |
DataSetMetaData |
DataSetMetaDataType |
PropertyType |
Mandatory |
HasProperty |
Variable |
IsConnected |
Boolean |
PropertyType |
Mandatory |
Conformance Units |
|||||
PubSub Model SubscribedDataSet Standalone |
The SubscribedDataSetTypedefined in 9.1.9.1describes the processing of the received DataSetin a Subscriber.
The DataSetMetaDatais defined in 6.2.9.4. A Publishermust be configured to send DataSetMessagesthat comply with the DataSetMetaDatain the standalone subscribed DataSet.
The IsConnected Propertywith DataType Booleanindicates if the standalone subscribed DataSetis connected to a DataSetReader. A standalone subscribed DataSetcan only be connected to one DataSetReader. If a DataSetReaderis connected, the DataSetReader Objectshall share the Nodes SubscribedDataSetand DataSetMetaDatawith the StandaloneSubscribedDataSet Object. The relation between standalone SubscribedDataSetand the connected DataSetReaderis provided in both directions through the inverse Referencesfrom the SubscribedDataSet Object.
This ObjectTypeis used to indicate and change the status of a PubSub Objectlike PubSubConnection, DataSetWriteror DataSetReader. The PubSubStatusTypeis formally defined in Table 267.
Table 267– PubSubStatusType definition
Attribute |
Value |
||||
BrowseName |
PubSubStatusType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
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 |
|
Conformance Units |
|||||
PubSub Model Base |
The State Variableprovides the current operational state of the PubSub Object. The default value is Disabled. The PubSubState Enumerationand the related state machine are 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.
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 |
Table 268specifies the AddressSpacerepresentation for the Enable Method.
Table 268– Enable Method AddressSpace definition
Attribute |
Value |
BrowseName |
Enable |
ConformanceUnits |
|
PubSub Model Base |
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.
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 |
Table 269specifies the AddressSpacerepresentation for the Disable Method.
Table 269– Disable Method AddressSpace definition
Attribute |
Value |
BrowseName |
Disable |
ConformanceUnits |
|
PubSub Model Base |
PubSub ObjectTypesthat require a status Objectadd a component with the BrowseNameStatus.
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 46.
Figure 46– PubSub Diagnostics overview
Figure 47shows the structure of a Variablewhich holds a diagnostics counter with defined Properties. The PubSubDiagnosticsCounterType is formally defined in 9.1.11.5.
Figure 47– PubSubDiagnosticsCounterType
The PubSubDiagnosticsTypeis the base type for the diagnostics objects and is formally defined in Table 270.
Table 270– 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 |
Conformance Units |
|||||
PubSub Model Diagnostics |
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 diagnostics counters with classification Information.
The TotalError Variableprovides the sum of all diagnostics counters with classification Error.
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 Variablesof the PubSubDiagnosticsTypeare defined in Table 271.
Table 271– Counters for PubSubDiagnosticsType
BrowseName |
Modelling Rule |
Diagnostics Level |
Class |
Description |
StateError |
Mandatory |
Basic |
Error |
PubSubState state machine defined in 6.2.1changed to Errorstate |
StateOperationalByMethod |
Mandatory |
Basic |
Information |
State changed to Operationalstate triggered by Enable Methodcall. |
StateOperationalByParent |
Mandatory |
Basic |
Information |
State changed to Operationalstate triggered by an operational parent |
StateOperationalFromError |
Mandatory |
Basic |
Information |
State changed from Errorto Operational. |
StatePausedByParent |
Mandatory |
Basic |
Information |
State changed to Pausedstate triggered by a paused or disabled parent. |
StateDisabledByMethod |
Mandatory |
Basic |
Information |
State changed to Disabledstate 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 PubSubDiagnosticsType.
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 |
Table 272specifies the AddressSpacerepresentation for the Reset Method.
Table 272– Reset Method AddressSpace definition
Attribute |
Value |
BrowseName |
Reset |
ConformanceUnits |
|
PubSub Model Diagnostics |
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 shall be provided. This mechanism provides the user with 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 273.
Table 273– DiagnosticsLevel values
Value |
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 Advanceddiagnostic level. |
Info |
2 |
The Infodiagnostic 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 Logdiagnostic level. |
Debug |
4 |
Diagnostic objects with debug information specific to a given implementation of PubSubare contained in the Debugdiagnostic level. As this level is intended for implementation-specific diagnostics, no such objects are specified by the document. |
The PubSubDiagnosticsCounterType is formally defined in Table 274.
Table 274– 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 |
PubSubDiagnosticsCounterClassification |
PropertyType |
Mandatory |
HasProperty |
Variable |
DiagnosticsLevel |
DiagnosticsLevel |
PropertyType |
Mandatory |
HasProperty |
Variable |
TimeFirstChange |
DateTime |
PropertyType |
Optional |
Conformance Units |
|||||
PubSub Model Diagnostics |
The Valueshall be reset to 0 when the Method Resetof 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 275.
Table 275– PubSubDiagnosticsCounterClassification values
Name |
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 276.
Table 276– 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 |
Conformance Units |
|||||
PubSub Model Diagnostics |
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 277.
Table 277– LiveValues for PubSubDiagnosticsRootType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
ConfiguredDataSetWriters |
Mandatory |
Basic |
UInt16 |
Number of configured DataSetWriterson this Server |
ConfiguredDataSetReaders |
Mandatory |
Basic |
UInt16 |
Number of configured DataSetReaderson this Server |
OperationalDataSetWriters |
Mandatory |
Basic |
UInt16 |
Number of DataSetWriterswith state Operational |
OperationalDataSetReaders |
Mandatory |
Basic |
UInt16 |
Number of DataSetReaderswith state Operational |
The PubSubDiagnosticsConnectionTypedefines the diagnostic information for a PubSubConnectionType Objectand is formally defined in Table 278.
Table 278– 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 |
Conformance Units |
|||||
PubSub Model Diagnostics |
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 279.
Table 279– LiveValues for PubSubDiagnosticsConnectionType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
ResolvedAddress |
Mandatory |
Basic |
String |
Resolved address of the connection (e.g. IP Address) |
The PubSubDiagnosticsWriterGroupTypedefines the diagnostic information for a WriterGroupType Objectand is formally defined in Table 280.
Table 280– 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 |
Conformance Units |
|||||
PubSub Model Diagnostics |
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 281.
Table 281– Counters for PubSubDiagnosticsWriterGroupType
BrowseName |
Modelling Rule |
Diagnostics Level |
Class |
Description |
Inherited counters from PubSubDiagnosticsType |
||||
SentNetworkMessages |
Mandatory |
Basic |
Information |
Sent NetworkMessages |
FailedTransmissions |
Mandatory |
Basic |
Error |
Error on NetworkMessagetransmission |
EncryptionErrors |
Optional |
Advanced |
Error |
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 282.
Table 282– LiveValues for PubSubDiagnosticsWriterGroupType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
ConfiguredDataSetWriters |
Mandatory |
Basic |
UInt16 |
Number of configured DataSetWriters in this group |
OperationalDataSetWriters |
Mandatory |
Basic |
UInt16 |
Number of DataSetWriters with state Operational |
SecurityTokenID |
Optional |
Info |
UInt32 |
Currently used SecurityTokenID |
TimeToNextTokenID |
Optional |
Info |
Duration |
Time until the next key change is expected |
The PubSubDiagnosticsReaderGroupTypedefines the diagnostic information for a ReaderGroupType Objectand is formally defined in Table 283.
Table 283– 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 |
Conformance Units |
|||||
PubSub Model Diagnostics |
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 284.
Table 284– Counters for PubSubDiagnosticsReaderGroupType
BrowseName |
Modelling Rule |
Diagnostics Level |
Class |
Description |
Inherited counters from PubSubDiagnosticsType |
||||
ReceivedNetworkMessages |
Mandatory |
Basic |
Information |
Received and processed NetworkMessages |
ReceivedInvalidNetworkMessages |
Optional |
Advanced |
Error |
Invalid format of NetworkMessageHeader |
DecryptionErrors |
Optional |
Advanced |
Error |
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 285.
Table 285– LiveValues for PubSubDiagnosticsReaderGroupType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
ConfiguredDataSetReaders |
Mandatory |
Basic |
UInt16 |
Number of configured DataSetReaders in this group |
OperationalDataSetReaders |
Mandatory |
Basic |
UInt16 |
Number of DataSetReaders with state Operational |
The PubSubDiagnosticsDataSetWriterTypedefines the diagnostic information for a DataSetWriterType Objectand is formally defined in Table 286.
Table 286– 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 |
Conformance Units |
|||||
PubSub Model Diagnostics |
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 287.
Table 287– Counters for PubSubDiagnosticsDataSetWriterType
BrowseName |
Modelling Rule |
Diagnostics Level |
Class |
Description |
Inherited counters from PubSubDiagnosticsType |
||||
FailedDataSetMessages |
Mandatory |
Basic |
Error |
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 288.
Table 288– LiveValues for PubSubDiagnosticsDataSetWriterType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
MessageSequenceNumber |
Optional |
Info |
UInt16 |
Sequence number of last DataSetMessage |
StatusCode |
Optional |
Info |
StatusCode |
Status of last DataSetMessage |
MajorVersion |
Optional |
Info |
UInt32 |
MajorVersionused for DataSet |
MinorVersion |
Optional |
Info |
UInt32 |
MinorVersionused for DataSet |
The PubSubDiagnosticsDataSetReaderTypedefines the diagnostic information for a DataSetReaderType Objectand is formally defined in Table 289.
Table 289– 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 |
Conformance Units |
|||||
PubSub Model Diagnostics |
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 290.
Table 290– Counters for PubSubDiagnosticsDataSetReaderType
BrowseName |
Modelling Rule |
Diagnostics Level |
Class |
Description |
Inherited counters from PubSubDiagnosticsType |
||||
FailedDataSetMessages |
Mandatory |
Basic |
Error |
e.g. because of unknown MajorVersion |
DecryptionErrors |
Optional |
Advanced |
Error |
|
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 291.
Table 291– LiveValues for PubSubDiagnosticsDataSetReaderType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
MessageSequenceNumber |
Optional |
Info |
UInt16 |
SequenceNumber of last DataSetMessage |
StatusCode |
Optional |
Info |
StatusCode |
Status of last DataSetMessage |
MajorVersion |
Optional |
Info |
UInt32 |
MajorVersionof available DataSetMetaData |
MinorVersion |
Optional |
Info |
UInt32 |
MinorVersionof available DataSetMetaData |
SecurityTokenID |
Optional |
Info |
UInt32 |
Currently used SecurityTokenID |
TimeToNextTokenID |
Optional |
Info |
Duration |
Time until the next key change is expected |
This ObjectTypeis used to indicate the configuration capabilities of the PubSubfunctionality in the OPC UA Application.
The PubSubCapabilitiesType is formally defined in Table 292.
Table 292– PubSubCapabilitiesType definition
Attribute |
Value |
||||
BrowseName |
PubSubCapabilitiesType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType defined in OPC 10000-5. |
|||||
HasProperty |
Variable |
MaxPubSubConnections |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxWriterGroups |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxReaderGroups |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxDataSetWriters |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxDataSetReaders |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxFieldsPerDataSet |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxDataSetWritersPerGroup |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
MaxNetworkMessageSizeDatagram |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
MaxNetworkMessageSizeBroker |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
SupportSecurityKeyPull |
Boolean |
PropertyType |
Optional |
HasProperty |
Variable |
SupportSecurityKeyPush |
Boolean |
PropertyType |
Optional |
Conformance Units |
|||||
PubSub Model Base |
The maximum numbers of objects related to configuration capabilities are expected to be configurable in the OPC UA Applicationbut the capability to operate all configured objects at the same time depends on different parameters like timing settings and it is not ensured that any combination of enabled objects in the configuration can be executed.
The MaxPubSubConnections Variabledefines the maximum number of PubSubConnectionsthat can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Applicationforces no limit on the number of connections.
The MaxWriterGroups Variabledefines the maximum number of WriterGroups that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Applicationforces no limit on the number of WriterGroups.
The MaxReaderGroups Variabledefines the maximum number of ReaderGroups that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Applicationforces no limit on the number of ReaderGroups.
The MaxDataSetWriters Variabledefines the maximum number of DataSetWriters that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Applicationforces no limit on the number of DataSetWriters.
The MaxDataSetReaders Variabledefines the maximum number of DataSetReaders that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Applicationforces no limit on the number of DataSetReaders.
The MaxFieldsPerDataSet Variabledefines the maximum number of fields that can be configured for a PublishedDataSet. A value of 0 indicates that the OPC UA Applicationforces no limit on the number of fields.
The MaxDataSetWritersPerGroup Variabledefines the maximum number of DataSetWriters that can be configured in one WriterGroup. A value of 0 indicates that the OPC UA Applicationforces no limit on the number of DataSetWritersin one WriterGroup.
The MaxNetworkMessageSizeDatagram Variabledefines the maximum number of bytesthat can be configured as MaxNetworkMessageSizefor NetworkMessagessent or received through datagram transport protocol mappings. A value of 0 indicates that the OPC UA Applicationforces no limit on the maximum size.
The MaxNetworkMessageSizeBroker Variabledefines the maximum number of bytesthat can be configured as MaxNetworkMessageSizefor NetworkMessagessent or received through broker transport protocol mappings. A value of 0 indicates that the OPC UA Applicationforces no limit on the maximum size.
The SupportSecurityKeyPull Variableindicates if the OPC UA Applicationis able to pull PubSub security keys from a SKS.
The SupportSecurityKeyPush Variableindicates if the OPC UA Applicationis able to accept PubSub security keys pushed from a SKS.
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 293.
Table 293– PubSubStatusEventType definition
Attribute |
Value |
|||||
BrowseName |
PubSubStatusEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
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 |
|
Conformance Units |
||||||
PubSub Model Status Event |
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 Variableis the current state of the Status Objectassociated with the SourceNodeof 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 294.
Table 294– PubSubTransportLimitsExceedEventType definition
Attribute |
Value |
||||
BrowseName |
PubSubTransportLimitsExceedEventType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of PubSubStatusEventTypedefined in 9.1.13.2. |
|||||
HasProperty |
Variable |
Actual |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
Maximum |
UInt32 |
PropertyType |
|