Figure 37 depicts the ObjectTypes of the message and transport protocol mapping independent part of the PubSub configuration model, their main components and their relations.
Figure 37 – PubSub configuration model overview
An instance of the PublishSubscribeType with the name PublishSubscribe represents the root Object for all PubSub related Objects. It manages a list of PubSubConnectionType Objects and the PublishedDataSetType Objects through the PublishedDataSets folder.
On the Publisher side, a PublishedDataSet represents the information to publish and the DataSetWriter represents the transport settings for creating DataSetMessages for delivery through a Message Oriented Middleware.
On the Subscriber side, a DataSetReader represents the transport settings for receiving DataSetMessages from a Message Oriented Middleware and the SubscribedDataSet represents the information to dispatch the received DataSets in the Subscriber.
The configuration can be done through Methods or product-specific configuration tools. The DataSetFolderType can be used to organize the PublishedDataSetType Objects in a tree of folders.
Figure 38 shows an example configuration with the root Object PublishSubscribe that is a component of the Server Object.
Figure 38 – PubSub example Objects
The example defines two PublishedDataSets published through one connection and one group and one DataSetReader used to subscribe one DataSet.
Figure 39 depicts the information flow and the related ObjectTypes from the PubSub Information M odel. 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 Variables or Events. An Event notification or a snapshot of the Variables comprises a DataSet. A DataSet is the content of a DataSetMessage created by a DataSetWriter. Examples of concrete PublishedDataSetTypes are PublishedEventsType and PublishedDataItemsType. An instance of PublishedDataSetType has a list of DataSetWriters used to produce DataSetMessages sent via the Message Oriented Middleware. The DataSetMetaData describes the content of a DataSet.
Instances of the PubSubConnectionType represent settings associated with Message Oriented Middleware. A connection manages a list of WriterGroupType Objects and transport protocol mapping specific parameters.
Instances of the WriterGroupType contain instances of DataSetWriter Objects that share settings such as security configuration, encoding or timing of NetworkMessages. A group manages a list of DataSetWriterType Objects that define the payload of the NetworkMessages created from the group settings.
DataSetWriters represent the configuration necessary to create DataSetMessages contained as payload in NetworkMessages.
DataSetReaders represent the configuration necessary to receive and process DataSetMessages on the Subscriber side.
NetworkMessages are 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 PubSub related ObjectTypes does not prescribe how the instances are created or configured or how dynamic the configuration can be. A Publisher may have a preconfigured number of PublishedDataSets and DataSetWriters where only protocol-specific settings can be configured. If a Publisher allows dynamic creation of Objects like DataSets and DataSetWriters, this can be done through product-specific configuration tools or through the standardized configuration Methods defined in this document.
Publishers and Subscribers may be configurable through vendor-specific engineering tools or with the configuration Methods and parameters described in this document. This allows a standard OPC UA Client based configuration tool to configure an OPC UA Server that is a Publisher and/or Subscriber.
The latest configuration shall be persisted by the OPC UA Server and shall be available after a restart of the OPC UA Server. PubSub components are not persisted, if the component has the optional NotPersisted property set with a value of true. The PubSub configuration properties are defined in 6.2.2.
Configuration parameters are exposed as Variables of the configurable Objects. Methods for creation of Objects have input arguments for mandatory Variables. Optional Variables are created with a default value if they are supported for the Object or required for the current configuration. The default value can be changed by writing to the Variable after creation. The Status newly created Objects depend on the enabled flag in the configuration Structures if they are created with the standard Methods.
Variables that can be configured shall have the CurrentWrite flag set in the AccessLevel Attribute. The UserAccessLevel may 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 Object has the Status Disabled and to apply the new configuration settings when the Status is changed to Operational. Therefore write operations to configuration parameters shall be rejected with Bad_InvalidState if the Status is not Disabled.
Configuration changes based on Method calls can be applied in Status Operational since the Methods provide batch operations. If configuration changes require different Method calls, it is recommended to disable the affected Objects to apply the changes in a batch.
Add, modify and remove operations for all PubSub configuration elements including DataSets and 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 FileType functionality. The related functionality is defined in 9.1.3.7.
Modifications of the PubSub configuration can happen through different mechanisms like FileType access or sequences of Method calls. The PubSub application 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 Method calls.
Figure 40 depicts the PublishSubscribeType and the components used to represent the PublishSubscribe Object.
Figure 40 – PublishSubscribe Object Types overview
The PublishSubscribe Object is the root node for all PubSub related configuration Objects. It is an instance of the PublishSubscribeType and a component of the Server Object.
The PublishSubscribeType contains the entry point for PublishedDataSet configuration, the entry point for PubSub connections. In addition, it provides Methods for connection management.
An instance of this ObjectType represents the root Object for all PubSub related configuration and metadata Objects. The one instance of this ObjectType that represents the root Object is defined in 8.3.2. The ObjectType is formally defined in Table 205.
Table 205 – 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 ObjectType is a concrete type and can be used directly.
The configured connection Objects are added as components to the instance of the PublishSubscribeType. Connection Objects may be configured with product-specific configuration tools or added and removed through the Methods AddConnection and RemoveConnection. The PubSubConnectionType is defined in 9.1.5.2. The HasPubSubConnection ReferenceType is defined in 9.1.3.6.
The PublishedDataSets Object contains the configured PublishedDataSets. The DataSetFolderType is defined in 9.1.4.5.1. The DataSetFolderType can be used to build a tree of DataSetFolders.
The SubscribedDataSets Object contains the configured SubscribedDataSets. The SubscribedDataSetFolderType is defined in 9.1.9.4. The SubscribedDataSetFolderType can be used to build a tree of SubscribedDataSetFolders.
The PubSubConfiguration Object provides read and write access to the PubSub configuration through a PubSubConfigurationType with 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 PubSubConfigurationType and the related DataTypes are defined in 9.1.3.7.
The Status Object provides the current operational status of the PublishSubscribe functionality. The PubSubStatusType is defined in 9.1.10. The state machine for the status and the relation to other PubSub Objects like PubSubConnection, PubSubGroup, DataSetWriter and DataSetReader are defined in 6.2.1.
The Diagnostics Object provides the current diagnostic information for the PublishSubscribe Object. The PubSubDiagnosticsRootType is defined in 9.1.11.7.
The SupportedTransportProfiles Property provides a list of TransportProfileUris supported by the Server. The TransportProfileUris are defined in OPC 10000-7.
The default unique PublisherId is provided through the Property DefaultDatagramPublisherId. Further details for the PublisherId are defined in 6.2.7.1. The DefaultDatagramPublisherId can be used by configuration tools to assign a unique PublisherId when adding PubSubConnections with datagram transports or broker based transports. It is also used when the PublishedId is automatically assigned by the PubSub application or returned in ReserveIds.
The ConfigurationVersion represents the time of the last configuration change.
The DefaultSecurityKeyServices provide the default SecurityKeyServices used for the PubSub configuration. The value is used as default if not overwritten in the groups or DataSetReaders. The general definition for the SecurityKeyServices parameter is in 6.2.5.4.
The ConfigurationProperties is an array of DataType KeyValuePair that specifies additional properties for the PubSub configuration. The KeyValuePair type is defined in OPC 10000-5 and consists of a QualifiedName and 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 Objects provides the PubSub capablitiy information. The PubSubCapabilitiesType ObjectType is defined in 9.1.12.
The DataSetClasses Folder allows a Server to expose DataSetClasses supported. These DataSetClasses can be used to create PublishedDataSets. The Folder would also be used by standard information models to include standardized DataSetClasses into their namespace.
The DataSetClasses Folder references a list of Variables where the Value of a Variable represents a DataSetClass. For each Variable, the Name field of the BrowseName equals the Name in the DataSetMetaData. The Object is formally defined in Table 206.
Table 206 – PublishSubscribeType Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
DataSetClasses |
HasComponent |
Variable |
<DataSetName> |
DataSetMetaDataType |
BaseDataVariableType |
OptionalPlaceholder |
This Method is used to push the security keys for a SecurityGroup into a Publisher or Subscriber. It is used if Publisher or Subscriber have no OPC UA Client functionality.
Encryption is required for this Method. The Method shall return Bad_SecurityModeInsufficient if the communication is not encrypted.
The OPC UA Client calling this Method shall be the SKS application with the ApplicationUri that matches the ApplicationUri in the SecurityKeyServices parameter of the WriterGroup, ReaderGroup or DataSetReader objects 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 SecurityPolicies are defined in OPC 10000-7. |
CurrentTokenId |
The SecurityTokenId that appears in the header of messages secured with the CurrentKey. It starts at 1 and is incremented by 1 each time the KeyLifetime elapses even if no keys are requested. If the CurrentTokenId increments past the maximum value of UInt32 it restarts at 1. If the PubSub Object has key material from previous SetSecurityKeys Method calls, the CurrentTokenId is 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 Publisher uses this Method to get the keys from an SKS, the TimeToNextKey and KeyLifetime are used to calculate the time the Publisher shall use the next key. The TimeToNextKey defines the time when to switch from CurrentKey to FutureKeys and the KeyLifetime defines when to switch from one future key to the next future key. For a Subscriber the TimeToNextKey and KeyLifetime are used to calculate the time the Subscriber expects that the Publishers use the next key. Due to network latency, out of order delivery and the use of keys for several Publishers, a Subscriber needs to expect some overlap time where NetworkMessages are received that are using the previous or the next key. TimeToNextKey and KeyLifetime are also used to calculate the time until Publisher and Subscriber shall 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 NetworkMessage header before the next key is used to give the Subscriber some time to fetch new keys. If the CurrentTokenId in the message is not recognized, the receiver shall call this Method again to get new keys. |
Method Result Codes
ResultCode |
Description |
Bad_NotFound |
The SecurityGroupId is 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 207 specifies the AddressSpace representation for the SetSecurityKeys Method.
Table 207 – 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 Method is used to add a new PubSubConnection Object to the PublishSubscribe Object.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddConnection (
[in]PubSubConnectionDataTypeConfiguration,
[out]NodeId ConnectionId
);
Argument |
Description |
Configuration |
Configuration parameters for the PubSubConnection. The parameters and the PubSubConnectionDataType are defined in 6.2.7. |
ConnectionId |
The NodeId of the new connection. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The Server is not able to apply the name. The name may be too long or may contain invalid characters. |
Bad_BrowseNameDuplicated |
An Object with the name already exists. |
Bad_ResourceUnavailable |
The Server has not enough resources to add the PubSubConnection Object. |
Bad_UserAccessDenied |
The Session user is not allowed to create a PubSubConnection Object. |
Table 208 specifies the AddressSpace representation for the AddConnection Method.
Table 208 – 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 Method is used to remove a PubSubConnection Object from the PublishSubscribe Object.
A successful removal of the PubSubConnection Object removes all associated groups, DataSetWriter and DataSetReader Objects. Before the Objects are removed, their state is set to Disabled.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveConnection (
[in]NodeIdConnectionId
);
Argument |
Description |
ConnectionId |
NodeId of the PubSubConnection Object to remove from the Server |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The ConnectionId is unknown. |
Bad_UserAccessDenied |
The Session user is not allowed to delete the PubSubConnection Object. |
Table 209 specifies the AddressSpace representation for the RemoveConnection Method.
Table 209 – 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 ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HasComponent ReferenceType.
The SourceNode of References of this type shall be the PublishSubscribe Object defined in 8.3.2.
The TargetNode of this ReferenceType shall be an Object of type PubSubConnectionType defined in 9.1.5.2.
Servers shall provide the inverse Reference that relates a PubSubConnection Object back to the PublishSubscribe Object.
The representation of the HasPubSubConnection ReferenceType in the AddressSpace is specified in Table 210.
Table 210 – 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 ObjectType represents a FileType the can be used to access a PubSub configuration. The PubSubConfigurationType is formally defined in Table 211.
The PubSubConfigurationType file is a UA Binary encoded stream containing an instance of UABinaryFileDataType that contains a PubSubConfiguration2DataType or subtype as Body. The UABinaryFileDataType is defined in OPC 10000-5. The PubSubConfiguration2DataType is defined in 6.2.12.4. The indices of the namespaces in the PubSubConfiguration2DataType and the Namespaces in the DataTypeSchemaHeader of the UABinaryFileDataType shall match the NamespaceArray in the OPC UA Server for a Session with the Server.
The FileType functionality is used instead of passing the PubSubConfiguration2DataType to read and write Methods to overcome potential limitations of communication buffers for OPC UA Service calls. It is expected that the PubSubConfiguration2DataType is used internally in Client and Server and that the FileType is only used to be able to transfer large configurations.
The Open Method shall not support modes other than Read (0x01), Write + EraseExisting (0x06) and Read + Write (0x03).
When a Client opens the file for writing the Server will not actually update the PubSub configuration until the CloseAndUpdate Method is called. Simply calling Close will discard the updates.
When a Client opens 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 PubSub configuration may be used by multiple Clients in parallel. Read access can be done in parallel but open with the Write flag set requires exclusive access. Therefore Clients that have the file open should minimize the time the file is open to the currently required actions. The Client shall close the file as soon as it completes the sequence of actions needed to read or write the file. Clients with a user interface shall not keep the file open for user configuration. Such Clients should read and close the file to initialize the user interface. If the user changes should be written to the PubSub configuration, the Client should 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 211 – 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 PubSubConfigurationRefDataType options. The value of the mask is null, if none of the bits is set.
The PubSubConfigurationRefDataType is used to reference a configuration element in a PubSubConfiguration2DataType structure. The PubSubConfigurationRefDataType indicates the element type referenced and defines the operation to be executed for the referenced configuration element. The possible element operations are ElementAdd, ElementMatch, ElementModify and ElementRemove.
Only one of the reference bits shall be set. If more than one of these bits are set, the operation shall fail.
The PubSubConfigurationRefMask values are formally defined in Table 212.
Table 212 – 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 the PublisherId is null, the default PublisherId for the transport profile is assigned. If WriterGroupId or DataSetWriterId are null, unique IDs are assigned. If this bit is set, the ElementModify and ElementRemove bits 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 ElementAdd flag to either use an existing element or to add the element if it does not exist. Match shall only be applied for ReferenceConnection, ReferenceWriterGroup and ReferenceReaderGroup. For all other references the match shall fail with Bad_InvalidArgument. Match applied to ReferenceWriterGroup shall return Bad_InvalidState if the GroupHeader is active for the WriterGroup. 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 ConnectionProperties and GroupProperties only 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 PubSubConfigurationRefMask representation in the AddressSpace is formally defined in Table 213.
Table 213 – 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 PubSubConfigurationRefDataType is formally defined in Table 214.
Table 214 – 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, SecurityGroups or PubSubKeyPushTargets array of the PubSubConfiguration depending on the bits ReferenceWriter, ReferenceReader, ReferencePubDataset, ReferenceSubDataset, ReferenceSecurityGroup or 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 PubSubConfiguration if the connection, group, reader or writer bits is set. If ReferenceConnection is true, the add, modify or remove element operation is applied. If ReferenceConnection is 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 ReferenceReaderGroup and/or ReferenceReader bits are true, it speficies the index within the ReaderGroups array of the related connection. If ReferenceReaderGroup is true, the add, modify or remove element operation is applied. If ReferenceReaderGroup is false, the name of the ReaderGroup is used to identify the matching group in the current PubSub configuration. If the ReferenceWriterGroup and/or ReferenceWriter bits are true, it specifies the index within the WriterGroups array of the related connection. If ReferenceWriterGroup is true, the add, modify or delete bit is applied. If ReferenceReaderGroup is false, the name of the ReaderGroup is 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 PubSubConfigurationRefDataType representation in the AddressSpace is formally defined in Table 215.
Table 215 – PubSubConfigurationRefDataType definition
Attribute |
Value |
|||||
BrowseName |
PubSubConfigurationRefDataType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of Structure defined in OPC 10000-5. |
||||||
ConformanceUnits |
||||||
PubSub Model Base |
The PubSubConfigurationValueDataType allows to indicate specific values contained in PubSubConfiguration elements.
The PubSubConfigurationValueDataType is formally defined in Table 216.
Table 216 – 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, WriterGroup or 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 PubSubConfigurationValueDataType representation in the AddressSpace is formally defined in Table 217.
Table 217 – PubSubConfigurationValueDataType definition
Attribute |
Value |
|||||
BrowseName |
PubSubConfigurationValueDataType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of Structure defined in OPC 10000-5. |
||||||
ConformanceUnits |
||||||
PubSub Model Base |
This Method reserves unique WriterGroupIds and DataSetWriterIds to allow PubSub configuration applications to apply unique Ids to new PubSub configuration elements when preparing a update to the PubSub configuration. It also returns the related default PublisherId. See 6.2.7.1 for more details on PublisherId and 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 PubSub configuration or are not reserved yet.
When a Client reserves IDs, these reservations are valid while the Session is 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 Session is closed. The IDs can be re-used if a PubSub component that uses the ID is deleted.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 PublisherId of the Server for the requested TransportProfileUri. |
WriterGroupIds |
The reserved Ids for WriterGroups for the requested TransportProfileUri. |
DataSetWriterIds |
The reserved Ids for DataSetWriters for the requested TransportProfileUri |
Method Result Codes
ResultCode |
Description |
Bad_UserAccessDenied |
The Session user is not allowed to modify the PubSub configuration. |
Bad_ResourceUnavailable |
The requested number of Ids cannot be reserved. The maximum number of WriterGroups and DataSetWriters are exposed in the PubSubCapabilities Object. |
Table 218 specifies the AddressSpace representation for the ReserveIds Method.
Table 218 – 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 Method closes the file and applies the changes to the PubSub configuration as defined in the ConfigurationReferences argument. It can only be called if the file was opened for writing. If the Close Method is called any cached data is discarded and the PubSub configuration is not changed.
The file content shall be a UABinaryFileDataType with a PubSubConfiguration2DataType as Body. The ConfigurationReferences argument specifies the configuration elements to add, modify or remove. Configuration elements in PubSubConfiguration2DataType that are not referenced by ConfigurationReferences may 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 PubSubConfiguration2DataType not referenced and not used as parent elements are ignored.
Remove element operations shall be processed before any other operations are processed. The PubSubConfiguration2DataType may contain duplicate names for cases where elements are removed and added with the same name.
The top-level fields in the PubSubConfiguration2DataType are not referenced in ConfigurationReferences argument. Most of them are only relevant for the read case.
- The Enable field is ignored.
- The DataSetClasses field is ignored.
- The DefaultSecurityKeyServices field is ignored if the array is null or empty. If the array contains entries, the existing DefaultSecurityKeyServices are replaced with the new configuration.
- The ConfigurationVersion field is ignored. The ConfigurationVersion is updated to the current time after successful execution of CloseAndUpdate.
- The ConfigurationProperties field 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 Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 RequireCompleteUpdate was set to false, the ReferencesResults argument indicates if referenced configuration elements failed. If false, no changes were applied. The detailed errors are provided in the ReferencesResults argument. |
ReferencesResults |
Results of the add, modify, match or remove operation for the referenced element. The length and order of the array shall match the ConfigurationReferences array. |
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 ElementAdd or ElementMatch set and where a name and identifier was assigned. |
ConfigurationObjects |
NodeIds of the related Objects to referenced If NodeIds are returned, the length and order of the array shall match the ConfigurationReferences array. 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 UABinaryFileDataType with a PubSubConfiguration2DataType as Body. |
Bad_InvalidArgument |
The file handle is not valid. |
Bad_InvalidState |
The file was not opened for writer access. |
Bad_UserAccessDenied |
The Session user 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_ResourceUnavailable |
The maximum number of supported elements is reached. |
Bad_InvalidState |
A WriterGroup with active GroupHeader was references with ElementMatch. |
Bad_UserAccessDenied |
The user has not the rights to access the element. |
Table 219 specifies the AddressSpace representation for the CloseAndUpdate Method.
Table 219 – 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 PublishedDataSet defines the content of a DataSetMessage and the configuration of the information source for a DataSet. See 5.2 for the introduction to DataSets, 5.3 for the introduction to DataSetMessages and 5.4.1.2 for an introduction to the different source options and the parameters for sending of DataSetMessages.
Figure 41 depicts the ObjectTypes of the published DataSet model and their components.
Figure 41 – Published DataSet overview
Instances of the DataSetFolderType are used to organize PublishedDataSetType Objects in a tree of DataSetFolders. The configuration can be made through Methods or can be made by product-specific configuration tools.
The PublishedDataSetType defines the information necessary for a Subscriber to understand and decode DataSetMessages received from the Publisher for a DataSet and to detect changes of the DataSet semantic and metadata.
The types derived from the PublishedDataSetType define the source of information for a DataSet in the OPC UA Server AddressSpace like Variables or Events.
This ObjectType is the base type for PublishedDataSets. It defines the metadata and the configuration version of the DataSets sent as DataSetMessages through DataSetWriters.
The PublishedDataSetType is the base type for configurable DataSets. Derived types like PublishedDataItemsType and PublishedEventsType define how to collect the DataSet to be published. For PublishedDataItemsType this is a list of monitored Variables used to create cyclic DataSets. For PublishedEventsType this is an Event selection used to create acyclic DataSets. The list of monitored Variables or the list of selected EventFields defines the content and metadata of the PublishedDataSetType Object.
If the content of the DataSet is defined by a product-specific configuration and the source of the DataSet is not known, the PublishedDataSetType can be used directly to expose the custom PublishedDataSet in the AddressSpace of the Publisher. If the Variable CyclicDataSet is not present, the custom PublishedDataSet shall create cyclic DataSets.
The PublishedDataSetType is formally defined in Table 220.
Table 220 – 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 ObjectType is a concrete type and can be used directly. It can be used to expose a PublishedDataSet where the data collection is not visible in the AddressSpace.
The Object has a list of DataSetWriters. A DataSetWriter sends DataSetMessages created from DataSets through a Message Oriented Middleware. The link between the PublishedDataSet Object and a DataSetWriter shall be created when an instance of the DataSetWriterType is created. The DataSetWriterType is defined in 9.1.7.2. If a DataSetWriter is created for the PublishedDataSet, it is added to the list using the ReferenceType DataSetToWriter. The DataSetToWriter ReferenceType is defined in 9.1.4.2.5. If a DataSetWriter for the PublishedDataSet is removed from a group, the Reference to this DataSetWriter shall also be removed from this list. The group model is defined in 9.1.6.
The Property ConfigurationVersion is related to configuration of the DataSet produced by the PublishedDataSet Object. The PublishedDataSet parameters affecting the version are defined in the concrete types derived from this base type. The Property value shall match the ConfigurationVersion in the DataSetMetaData Property. The ConfigurationVersionDataType and the rules for setting the version are defined in 6.2.3.2.6.
The Property DataSetMetaData provides the information necessary to decode DataSetMessages on the Subscriber side if the DataSetMessages are not self-describing. The information in this Property is automatically updated if the ConfigurationVersion is changed based on DataSet configuration change. The DataSetMetaDataType is defined in 6.2.3.2.3. The Name field in the DataSetMetaDataType shall match the name of the PublishedDataSetType Object if the DataSetMetaData is not based on a DataSetClass.
The MajorVersion part of the ConfigurationVersion contained in the DataSetMessage needs to match the ConfigurationVersion of the DataSetMetaData available on the Subscriber side.
The DataSetClassId is the globally unique identifier for a DataSetClass. The optional Property shall be present if the DataSetClassId of the DataSetMetaData is not null. If the DataSetClassId is not null, the Publisher shall reject any configuration changes that change the DataSetMetaData. The Property value shall match the DataSetClassId in the DataSetMetaData Property.
The Property CyclicDataSet provides the information if the DataSets created by the PublishedDataSet are cyclic or acyclic. If the Property is provided by an instance of PublishedDataSetType, the Value shall be true. If the Property is provided by an instance of PublishedEventsType, the Value shall be false.
The ExtensionFields Object allows the configuration of fields with values to be included in the DataSet in case the existing AddressSpace of the Publisher does not provide the necessary information. The extension fields are added as Properties to the ExtensionFields Object. For PublishedDataItemsType base PublishedDataSets, an extension field is included as a Variable in the published DataSet. For PublishedEventsType base PublishedDataSets, an extension field is included into the SelectedFields for the DataSet.
The ExtensionFieldsType is formally defined in Table 221. It allows the configuration of fields with values to be included in the DataSet in case the existing AddressSpace of the Publisher does not provide the necessary information.
Table 221 – 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 ObjectType is a concrete type and can be used directly.
The configured list of extension fields is exposed through Properties and managed through the Methods AddExtensionField and RemoveExtensionField. An ExtensionField is not automatically included in the DataSet. The ExtensionField can be added to the DataSet after 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 QualifiedNames are shown in Table 222. The qualifying namespace is the OPC UA namespace.
Table 222 – Well-Known Extension Field Names
Name |
Type |
Description |
PublisherId |
BaseDataType |
The PublisherId from the Connection Object. |
DataSetName |
String |
The Name from the DataSetMetaData. |
DataSetClassId |
Guid |
The DataSetClassId from the DataSetMetaData. |
MajorVersion |
UInt32 |
The MajorVersion from the ConfigurationVersion |
MinorVersion |
UInt32 |
The MinorVersion from the ConfigurationVersion |
DataSetWriterId |
BaseDataType |
The DataSetWriterId from 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 Method is ignored. Subtypes of DataSetWriterTransportType may extend this list.
This Method is used to add a Property to the Object ExtensionFields.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Server is not able to apply the Name. The Name may be too long or may contain invalid characters. |
Bad_UserAccessDenied |
Table 223 specifies the AddressSpace representation for the AddExtensionField Method.
Table 223 – 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 Method is used to remove a Property from the Object ExtensionFields.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveExtensionField (
[in]NodeId FieldId
);
Argument |
Description |
FieldId |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
A field with the NodeId does not exist. |
Bad_NodeIdInvalid |
The FieldId is not a NodeId of a Property of the ExtensionFieldsType Object. |
Bad_UserAccessDenied |
Table 224 specifies the AddressSpace representation for the RemoveExtensionField Method.
Table 224 – 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 ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HierarchicalReferences ReferenceType.
The SourceNode of References of this type shall be an Object of ObjectType PublishedDataSetType or an ObjectType that is a subtype of PublishedDataSetType defined in 9.1.4.2.1.
The TargetNode of this ReferenceType shall be an Object of the ObjectType DataSetWriterType defined in 9.1.7.1.
Each DataSetWriter Object shall be the TargetNode of exactly one DataSetToWriter Reference.
Servers shall provide the inverse Reference that relates a DataSetWriter Object back to a PublishedDataSetType Object.
The representation of the DataSetToWriter ReferenceType in the AddressSpace is specified in Table 225.
Table 225 – 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 PublishedDataItemsType is used to select a list of OPC UA Variables as the source for the creation of DataSets sent through one or more DataSetWriters.
The PublishedDataItemsType is formally defined Table 226.
Table 226 – 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 ObjectType is a concrete type and can be used directly.
The PublishedData is 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 Value shall be rejected with Bad_OutOfRange if the array size would be changed. Entries in the array can be added and removed with the Methods AddVariables and RemoveVariables.
The index into the list of entries in the PublishedData has an important role for Subscribers and for configuration tools. It is used as a handle to reference the entry in configuration actions like RemoveVariables or the Value in DataSetMessages received by Subscribers. The index may change after configuration changes. Changes are indicated by the ConfigurationVersion and applications working with the index shall always check the ConfigurationVersion before using the index.
This Method is used to add Variables to the PublishedData Property. The PublishedData contains a list of published Variables of 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 DataSetMetaData is described for the input Arguments.
Variables shall be added at the end of the list in PublishedData. This ensures that Subscribers are only affected by the change if they are interested in the added Variables.
If at least one Variable was added to the PublishedData, the MinorVersion of the ConfigurationVersion shall be updated. The ConfigurationVersionDataType and the rules for setting the version are defined in 6.2.3.2.6.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Object when the Method call is processed. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataType is defined in 6.2.3.2.6. |
FieldNameAliases |
The names assigned to the selected Variables for the fields in the DataSetMetaData and in the DataSetMessages for 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 FieldMetaData that is part of the DataSetMetaData. |
PromotedFields |
The flags indicating if the corresponding field is promoted to the DataSetMessage header. The size and the order of the array shall match the VariablesToAdd. The flag is used to set the PromotedField flag in the fieldFlags parameter in the FieldMetaData. |
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 PublishedVariableDataType is defined in 6.2.3.7.1. The parameters builtInType, dataType, valueRank and arrayDimensions of the FieldMetaData are 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 Object are 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 DataSet is based on a DataSetClass and the size of the PublishedData array cannot be changed. |
Bad_UserAccessDenied |
The Session user is not allowed to configure the object. |
Operation Result Codes
ResultCode |
Description |
Bad_NodeIdInvalid |
See OPC 10000-4 for the description of this result code. |
Bad_NodeIdUnknown |
See OPC 10000-4 for the description of this result code. |
Bad_IndexRangeInvalid |
See OPC 10000-4 for the description of this result code. |
Bad_IndexRangeNoData |
See OPC 10000-4 for the description of this result code. If the ArrayDimensions have 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 Publisher shall insert this status in a DataSet if no data exists within the range. |
Bad_TooManyVariables |
The Publisher has reached its maximum number of items for the PublishedDataItemsType object. |
Table 227 specifies the AddressSpace representation for the AddVariables Method.
Table 227 – 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 Method is used to remove Variables from the PublishedData list. It contains the list of published Variables of a PublishedDataItemsType Object.
A caller shall read the current Values of PublishedData and ConfigurationVersion prior to calling this Method, to ensure the use of the correct index of the Variables that are being removed.
If at least one Variable was successfully removed from the PublishedData, the MajorVersion of the ConfigurationVersion shall be updated. The ConfigurationVersionDataType and the rules for setting the version are defined in 6.2.3.2.6.
The order of the remaining Variables in the PublishedData shall be preserved.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 VariablesToRemove shall match the entire current configuration version of the Object when the Method call is processed. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataType is defined in 6.2.3.2.6. |
VariablesToRemove |
Array of indices of Variables to remove from the list of Variables configured in PublishedData of the PublishedDataItemsType. This matches the list of fields configured in the DataSetMetaData of 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 228 specifies the AddressSpace representation for the RemoveVariables Method.
Table 228 – 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 PublishedDataSetType is used to configure the collection of OPC UA Events.
The PublishedEventsType is formally defined in Table 229.
Table 229 – 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 ObjectType is a concrete type and can be used directly.
The EventNotifier is defined in 6.2.3.8.1.
The SelectedFields is defined in 6.2.3.8.2.
The index into the list of entries in the SelectedFields has an important role for Subscribers. It is used as handle to reference the Event field in DataSetMessages received by Subscribers. The index may change after configuration changes. Changes are indicated by the ConfigurationVersion and applications working with the index shall always check the ConfigurationVersion before using the index. If a change of the SelectedFields adds additional fields, the MinorVersion of the ConfigurationVersion shall be updated. If a change of the SelectedFields removes fields, the MajorVersion of the ConfigurationVersion shall be updated. The Property ConfigurationVersion is defined in the base ObjectType PublishedDataSetType.
The Filter is defined in 6.2.3.8.3. A change of the Filter does not affect the ConfigurationVersion since the content of the DataSet does not change.
This Method is used to modify the event field selection of a PublishedEventsType Object.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Object when the Method call is processed. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataType is defined in 6.2.3.2.6. |
FieldNameAliases |
The names assigned to the selected fields in the DataSetMetaData and in the DataSetMessages for 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 FieldMetaData that is part of the DataSetMetaData. |
PromotedFields |
The flags indicating if the corresponding field is promoted to the DataSetMessage header. The size and the order of the array shall match the SelectedFields. The flag is used to set the corresponding field in the FieldMetaData that is part of the DataSetMetaData. |
SelectedFields |
The selection of Event fields contained in the DataSet generated for an Event and sent through the DataSetWriter. The SimpleAttributeOperand DataType is 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 230 specifies the AddressSpace representation for the ModifyFieldSelection Method.
Table 230 – 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 231.
Table 231 – 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 ObjectType is a concrete type and can be used directly.
Instances of the DataSetFolderType can contain PublishedDataSets or other instances of the DataSetFolderType. This can be used to build a tree of Folder Objects used to group the configured PublishedDataSets.
The PublishedDataSetType Objects are added as components to the instance of the DataSetFolderType. An instance of a PublishedDataSetType is referenced only from one DataSetFolder. If the DataSetFolder is deleted, all referenced PublishedDataSetType Objects are deleted with the folder.
PublishedDataSetType Objects may be configured with product-specific configuration tools or added and removed through the Methods AddPublishedDataItems, AddPublishedEvents and RemovePublishedDataSet. The PublishedDataSetType is defined in 9.1.4.2.1.
This Method is used to create a PublishedDataSets Object of type PublishedDataItemsType and to add it to the DataSetFolderType Object. The configuration parameters provided with this Method are further described in the PublishedDataItemsType defined in 9.1.4.3.1 and the PublishedDataSetType defined in 9.1.4.2.
The settings in the VariablesToAdd are used to configure the data acquisition for the DataSet and are used to initialize the PublishedData Property of the PublishedDataItemsType.
The DataSetMetaData of the PublishedDataSetType is created from meta-data of the Variables referenced in VariablesToAdd and the settings in FieldNameAliases and FieldFlags.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Object to create. |
FieldNameAliases |
The names assigned to the selected Variables for the fields in the DataSetMetaData and in the DataSetMessages for 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 FieldMetaData that 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 FieldMetaData that 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 PublishedVariableDataType is defined in 6.2.3.7.1. |
DataSetNodeId |
NodeId of 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 Object are rejected with Bad_TooManyMonitoredItems. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
The current state of the Object does not allow a configuration change. |
Bad_BrowseNameDuplicated |
A data set Object with the name already exists. |
Bad_UserAccessDenied |
|
Bad_InvalidArgument |
The Server is not able to apply the Name. The Name may be too long or may contain invalid characters. |
Operation Result Codes
ResultCode |
Description |
Bad_NodeIdInvalid |
See OPC 10000-4 for the description of this result code. |
Bad_NodeIdUnknown |
See OPC 10000-4 for the description of this result code. |
Bad_IndexRangeInvalid |
See OPC 10000-4 for the description of this result code. |
Bad_IndexRangeNoData |
See OPC 10000-4 for the description of this result code. If the ArrayDimensions have 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 Publisher shall insert this status in a DataSet if no data exists within the range. |
Bad_TooManyMonitoredItems |
The Server has reached its maximum number of items for the PublishedDataItemsType object. |
Bad_DuplicateName |
The passed field name alias already exists. |
Table 232 specifies the AddressSpace representation for the AddPublishedDataItems Method.
Table 232 – 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 Method is used to add a PublishedEventsType Object to the DataSetFolderType Object. The configuration parameters provided with this Method are further described in the PublishedEventsType defined in 9.1.4.4.1 and the PublishedDataSetType defined in 9.1.4.2.
The settings in the EventNotifier, SelectedFields and Filter are used to configure the data acquisition for the DataSet and are used to initialize the corresponding Properties of the PublishedEventsType.
The DataSetMetaData of the PublishedDataSetType is created from metadata of the selected Event fields and the settings in FieldNameAliases and FieldFlags.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Object to create. |
EventNotifier |
The NodeId of the Object in the event notifier tree of the OPC UA Server from which Events are collected. |
FieldNameAliases |
The names assigned to the selected fields in the DataSetMetaData and in the DataSetMessages for 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 FieldMetaData that 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 FieldMetaData that is part of the DataSetMetaData. |
SelectedFields |
The selection of Event Fields contained in the DataSet generated for an Event and sent through the DataSetWriter. The SimpleAttributeOperand DataType is defined in OPC 10000-4. |
Filter |
The filter applied to the Events. It allows the reduction of the DataSets generated from Events through a filter like filtering for a certain EventType. The ContentFilter DataType is defined in OPC 10000-4. |
ConfigurationVersion |
Returns the initial configuration version of the PublishedDataSets. |
DataSetNodeId |
NodeId of the created PublishedDataSets Object. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
The current state of the Object does not allow a configuration change. |
Bad_NodeIdExists |
A data set Object with the name already exists. |
Bad_NodeIdUnknown |
|
Bad_EventFilterInvalid |
The Event filter is not valid. |
Bad_UserAccessDenied |
|
Bad_InvalidArgument |
The Server is not able to apply the Name. The Name may be too long or may contain invalid characters. |
Table 233 specifies the AddressSpace representation for the AddPublishedEvents Method.
Table 233 – 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 Method is used to create a PublishedDataSets Object of type PublishedDataItemsType and to add it to the DataSetFolderType Object. The configuration parameters provided with this Method are further described in the PublishedDataItemsType defined in 9.1.4.3.1 and the PublishedDataSetType defined in 9.1.4.2.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Object to create. |
DataSetMetaData |
The DataSetMetaData predefined by the caller. The initial setting shall not be changed by the Publisher. If the dataSetClassId of the DataSetMetaData is not null, the DataSetClassId Property of the PublishedDataSetType shall be created and initialized with the dataSetClassId value. The name of the PublishedDataSet Object is 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 fields array in the DataSetMetaData. The substituteValue in the VariablesToAdd entries shall be configured. For failed variables the publishedVariable field of entry in the resulting PublishedData Property shall be set to a null NodeId. If there is no Variable available for a field in the DataSetMetaData the publishedVariable field for the entry shall be set to a null NodeId. The PublishedVariableDataType is defined in 6.2.3.7.1. |
DataSetNodeId |
NodeId of 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 Object does not allow a configuration change. |
Bad_BrowseNameDuplicated |
A data set Object with the name already exists. |
Bad_UserAccessDenied |
|
Bad_InvalidArgument |
The VariablesToAdd parameter does not match the array size of the fields in the DataSetMetaData or the configuration of the VariablesToAdd contains invalid settings. |
Bad_TooManyMonitoredItems |
The Object cannot be created since the number of items in the PublishedDataSet exceeds the capabilities of the Publisher. |
Operation Result Codes
ResultCode |
Description |
Bad_NodeIdInvalid |
See OPC 10000-4 for the description of this result code. |
Bad_NodeIdUnknown |
See OPC 10000-4 for the description of this result code. |
Bad_IndexRangeInvalid |
See OPC 10000-4 for the description of this result code. |
Bad_IndexRangeNoData |
See OPC 10000-4 for the description of this result code. If the ArrayDimensions have 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 Publisher shall insert this status in a DataSet if no data exists within the range. |
Bad_TooManyMonitoredItems |
The Server has reached its maximum number of items for the PublishedDataItemsType Object. |
Bad_DuplicateName |
The passed field name alias already exists. |
Table 234 specifies the AddressSpace representation for the AddPublishedDataItemsTemplate Method.
Table 234 – 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 Method is used to add a PublishedEventsType Object to the DataSetFolderType Object. The configuration parameters provided with this Method are further described in the PublishedEventsType defined in 9.1.4.4.1 and the PublishedDataSetType defined in 9.1.4.2.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Object to create. |
DataSetMetaData |
The DataSetMetaData predefined by the caller. The initial setting shall not be changed by the Publisher. If the dataSetClassId of the DataSetMetaData is not null, the DataSetClassId Property of the PublishedDataSetType shall be created and initialized with the dataSetClassId value. The name of the PublishedDataSet Object is defined by the name in the DataSetMetaData. |
EventNotifier |
The NodeId of the Object in the event notifier tree of the OPC UA Server from which Events are collected. |
SelectedFields |
The selection of Event Fields contained in the DataSet generated for an Event and sent through the DataSetWriter. The size of the array shall match the size of the fields array in the DataSetMetaData. If there is no Event field available for a field in the DataSetMetaData the browsePath field for the SimpleAttributeOperand entry shall be set to null. The SimpleAttributeOperand DataType is defined in OPC 10000-4. |
Filter |
The filter applied to the Events. It allows the reduction of the DataSets generated from Events through a filter like filtering for a certain EventType. The ContentFilter DataType is defined in OPC 10000-4. |
DataSetNodeId |
NodeId of the created PublishedDataSets Object. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
The current state of the Object does not allow a configuration change. |
Bad_NodeIdExists |
|
Bad_NodeIdUnknown |
|
Bad_EventFilterInvalid |
The Event filter is not valid. |
Bad_UserAccessDenied |
|
Bad_InvalidArgument |
The Server is not able to apply the Name. The Name may be too long or may contain invalid characters. |
Table 235 specifies the AddressSpace representation for the AddPublishedEventsTemplate Method.
Table 235 – 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 Method is used to remove a PublishedDataSetType Object from the DataSetFolderType Object.
A successful removal of the PublishedDataSetType Object removes all associated DataSetWriter Objects. Before the Objects are removed, their state is changed to Disabled.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemovePublishedDataSet (
[in]NodeIdDataSetNodeId
);
Argument |
Description |
DataSetNodeId |
NodeId of the PublishedDataSets Object to remove from the Server. The DataSetId is either returned by the AddPublishedDataItems or AddPublishedEvents Methods or can be discovered by browsing the list of configured PublishedDataSets in the PublishSubscribe Object. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The DataSetNodeId is unknown. |
Bad_NodeIdInvalid |
The DataSetNodeId is not a NodeId of a published DataSet. |
Bad_UserAccessDenied |
The Session user is not allowed to delete a PublishedDataSetType. |
Table 236 specifies the AddressSpace representation for the RemovePublishedDataSet Method.
Table 236 – 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 Method is used to add a DataSetFolderType Object to a DataSetFolderType Object.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddDataSetFolder (
[in]StringName,
[out]NodeIdDataSetFolderNodeId
);
Argument |
Description |
Name |
Name of the Object to create. |
DataSetFolderNodeId |
NodeId of the created DataSetFolderType Object. |
Method Result Codes
ResultCode |
Description |
Bad_BrowseNameDuplicated |
A folder Object with the name already exists. |
Bad_InvalidArgument |
The Server is not able to apply the Name. The Name may be too long or may contain invalid characters. |
Bad_UserAccessDenied |
The Session user is not allowed to add a folder. |
Table 237 specifies the AddressSpace representation for the AddDataSetFolder Method.
Table 237 – 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 Method is used to remove a DataSetFolderType Object from the parent DataSetFolderType Object.
A successful removal of the DataSetFolderType Object removes all associated PublishedDataSetType Objects and their associated DataSetWriter Objects. Before the Objects are removed, their state is changed to Disabled.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveDataSetFolder (
[in]NodeIdDataSetFolderNodeId
);
Argument |
Description |
DataSetFolderNodeId |
NodeId of the DataSetFolderType Object to remove from the Server. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The DataSetFolderNodeId is unknown. |
Bad_UserAccessDenied |
The Session user is not allowed to delete a data set. |
Table 238 specifies the AddressSpace representation for the RemoveDataSetFolder Method.
Table 238 – 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 42 depicts the ObjectType for the PubSub connection model and its components and the relations to other parts of the model.
Figure 42 – PubSubConnectionType overview
This ObjectType is a concrete type for Objects representing PubSubConnections. A PubSubConnection is a combination of protocol selection, protocol settings and addressing information. The PubSubConnectionType is formally defined in Table 239.
Table 239 – 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 PublisherId is defined in 6.2.7.1.
The TransportProfileUri is defined in 6.2.7.2. The Property is initialized with the default transport protocol for the Address during the creation of the connection. The SelectionValues Property of the SelectionListType shall contain the list of supported TransportProfileUris. The SelectionListType is defined in OPC 10000-5.
The ConnectionProperties is defined in 6.2.7.4.
The Address is defined in 6.2.7.3. The abstract NetworkAddressType is defined in 9.1.5.6. The default type used for concrete instances is the NetworkAddressUrlType defined in 9.1.5.7. It represents the Address in the form of a URL String.
The transport protocol mapping specific settings are provided in the optional Object TransportSettings. The ConnectionTransportType is defined in 9.1.5.8. The Object shall be present if the transport protocol mapping defines specific parameters.
The configured WriterGroup and ReaderGroup Objects are added as components to the instance of the PubSubConnectionType. PubSubGroup Objects may be configured with product- specific configuration tools or added and removed through the OPC UA Methods AddWriterGroup, AddReaderGroup and RemoveGroup.
The Status Object provides the current operational status of the connection. The PubSubStatusType is defined in 9.1.10. The state machine for the status and the relation to other PubSub Objects like PublishSubscribe, PubSubGroup, DataSetWriter and DataSetReader are defined in 6.2.1.
The Diagnostics Object provides the current diagnostic information for a PubSubConnectionType Object. The PubSubDiagnosticsConnectionType is defined in 9.1.11.8.
This Method is used to add a new WriterGroup Object to an instance of the PubSubConnection.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddWriterGroup (
[in]WriterGroupDataType Configuration,
[out]NodeId GroupId
);
Argument |
Description |
Configuration |
Configuration parameters for the WriterGroup. The parameters and the WriterGroupDataType are defined in 6.2.6. |
GroupId |
The NodeId of the new WriterGroup Object. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The Server is not able to apply the GroupName. The name may be too long or may contain invalid characters. |
Bad_BrowseNameDuplicated |
An Object with the name already exists in the connection. |
Bad_ResourceUnavailable |
The Server does not have enough resources to add the group. |
Bad_UserAccessDenied |
The Session user does not have rights to create the group. |
Table 240 specifies the AddressSpace representation for the AddWriterGroup Method.
Table 240 – 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 Method is used to add a new ReaderGroup Object to an instance of the PubSubConnection.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddReaderGroup (
[in]ReaderGroupDataType Configuration,
[out]NodeId GroupId
);
Argument |
Description |
Configuration |
Configuration parameters for the ReaderGroup. The parameters and the ReaderGroupDataType are defined in 6.2.8. |
GroupId |
The NodeId of the new ReaderGroup Object. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The Server is not able to apply the GroupName. The name may be too long or may contain invalid characters. |
Bad_BrowseNameDuplicated |
An Object with the name already exists in the connection. |
Bad_ResourceUnavailable |
The Server does not have enough resources to add the group. |
Bad_UserAccessDenied |
The Session user does not have rights to create the group. |
Table 241 specifies the AddressSpace representation for the AddReaderGroup Method.
Table 241 – 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 Method is used to remove a PubSubGroup Object from the connection.
A successful removal of the PubSubGroup Object removes all associated DataSetWriter or DataSetReader Objects. Before the Objects are removed, their state is set to Disabled.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveGroup (
[in]NodeIdGroupId
);
Argument |
Description |
GroupId |
NodeId of the group to remove from the connection |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The GroupId is unknown. |
Bad_UserAccessDenied |
The Session user does not have rights to delete the group. |
Table 242 specifies the AddressSpace representation for the RemoveGroup Method.
Table 242 – 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 ObjectType represents network address information. The NetworkAddressType is formally defined in Table 243.
Table 243 – 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 Variable allows 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 Property of the SelectionListType shall contain the list of available network interfaces as application-specific strings. The Value of the Variable contains the selected network interface as String. The SelectionListType is defined in OPC 10000-5. The Object may allow providing additional Strings not defined in the SelectionValues. In this case the NotRestrictToList Property of the SelectionListType is set to true.
An instance of this ObjectType represents network address information in the form of a URL String. The NetworkAddressUrlType is formally defined in Table 244.
Table 244 – 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 Variable contains the address string for the communication middleware or the communication relation. The syntax of the URL is defined by the transport protocol.
This ObjectType is the abstract base type for Objects representing transport protocol mapping specific settings for PubSubConnections. The ConnectionTransportType is formally defined in Table 245.
Table 245 – ConnectionTransportType definition
Attribute |
Value |
||||
BrowseName |
ConnectionTransportType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType |
|||||
Conformance Units |
|||||
PubSub Model Base |
The HasWriterGroup ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HasComponent ReferenceType.
The SourceNode of References of this type shall be an instance of the PubSubConnectionType defined in 9.1.5.2.
The TargetNode of this ReferenceType shall be an instance of the WriterGroupType defined in 9.1.6.3.
Servers shall provide the inverse Reference that relates a WriterGroup Object back to a PubSubConnectionType Object.
The representation of the HasWriterGroup ReferenceType in the AddressSpace is specified in Table 246.
Table 246 – 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 ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HasComponent ReferenceType.
The SourceNode of References of this type shall be an instance of the PubSubConnectionType defined in 9.1.5.2.
The TargetNode of this ReferenceType shall be an instance of the ReaderGroupType defined in 9.1.6.6.
Servers shall provide the inverse Reference that relates a ReaderGroup Object back to a PubSubConnectionType Object.
The representation of the HasReaderGroup ReferenceType in the AddressSpace is specified in Table 247.
Table 247 – 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 43 depicts the ObjectType for the PubSub group model and its components and the relations to other parts of the model.
Figure 43 – PubSubGroupType overview
This ObjectType is the abstract base type for Objects representing communication groupings for PubSub connections. The PubSubGroupType is formally defined in Table 248.
Table 248 – 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 SecurityMode is defined in 6.2.5.2.
The SecurityGroupId is defined in 6.2.5.3. If the SecurityMode is not NONE, the Property shall provide the SecurityGroupId. The value of the Property is null or the Property is not present if the SecurityMode is NONE.
The SecurityKeyServices parameter is defined in 6.2.5.4. If the SecurityMode is not NONE, the Property shall provide the list of Security Key Services for the SecurityGroupId.
The MaxNetworkMessageSize is defined in 0.
The GroupProperties is defined in 6.2.5.6.
The Status Object provides the current operational status of the group. The PubSubStatusType is defined in 9.1.10. The state machine for the status and the relation to other PubSub Objects like PubSubConnection, DataSetWriter and DataSetReader are defined in 6.2.1.
Instances of WriterGroupType contain settings for a group of DataSetWriters. The WriterGroupType is formally defined in Table 249.
Table 249 – 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 WriterGroupId is defined in 6.2.6.1.
The PublishingInterval is defined in 6.2.6.2.
The KeepAliveTime is defined in 6.2.6.3.
The Priority is defined in 6.2.6.4.
The LocaleIds parameter is defined in 6.2.6.5.
The HeaderLayoutUri is defined in 6.2.6.6.
The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The WriterGroupTransportType is defined in 9.1.6.7. The Object shall be present if the transport protocol mapping requires specific settings.
The message mapping specific setting settings are provided in the optional Object MessageSettings. The WriterGroupMessageType is defined in 9.1.6.8. The Object shall be present if the message mapping defines specific parameters.
The configured DataSetWriterType Objects are added as components to the instance of the group. DataSetWriterType Objects may be configured with product- specific configuration tools or through OPC UA Methods AddDataSetWriter and RemoveDataSetWriter. The DataSetWriterType is defined in 9.1.7.1. The ReferenceType HasDataSetWriter is defined in 9.1.6.6.
The Diagnostics Object provides the current diagnostic information for a WriterGroupType Object. The PubSubDiagnosticsWriterGroupType is defined in 9.1.11.9.
This Method is used to add a new DataSetWriterType Object to an instance of the WriterGroup. A successful creation of the DataSetWriter shall also create a Reference from the related PublishedDataSet Object to the created DataSetWriter.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddDataSetWriter (
[in]DataSetWriterDataType Configuration,
[out]NodeId DataSetWriterNodeId
);
Argument |
Description |
Configuration |
Configuration parameters for the DataSetWriter. The parameters and the DataSetWriterDataType are defined in 6.2.4. |
DataSetWriterNodeId |
The NodeId of the new DataSetWriter Object. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The Server is not able to apply the name. The name may be too long or may contain invalid characters. |
Bad_DataSetIdInvalid |
The DataSet specified for the DataSetWriter creation is invalid. |
Bad_BrowseNameDuplicated |
An Object with the name already exists in the group. |
Bad_ResourceUnavailable |
The Server has not enough resources to add the DataSetWriter. |
Bad_UserAccessDenied |
The Session user does not have rights to create the DataSetWriter. |
Table 250 specifies the AddressSpace representation for the AddDataSetWriter Method.
Table 250 – 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 Method is used to remove a DataSetWriter Object from the group. The state of the DataSetWriter is set to Disabled before removing the Object. A successful removal of the DataSetWriter shall also delete the Reference from the related PublishedDataSetType Object to the removed DataSetWriter.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveDataSetWriter (
[in]NodeIdDataSetWriterNodeId
);
Argument |
Description |
DataSetWriterNodeId |
NodeId of the DataSetWriter to remove from the group. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The DataSetWriterNodeId is unknown. |
Bad_NodeIdInvalid |
The DataSetWriterNodeId is not a NodeId of a DataSetWriter. |
Bad_UserAccessDenied |
The Session user is not allowed to delete a DataSetWriter. |
Table 251 specifies the AddressSpace representation for the RemoveDataSetWriter Method.
Table 251 – 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 ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HasComponent ReferenceType.
The SourceNode of References of this type shall be an instance of the WriterGroupType defined in 9.1.6.3.
The TargetNode of this ReferenceType shall be an instance of the DataSetWriterType defined in 9.1.7.1.
Servers shall provide the inverse Reference that relates a DataSetWriter Object back to a WriterGroupType Object.
The representation of the HasDataSetWriter ReferenceType in the AddressSpace is specified in Table 252.
Table 252 – 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 ObjectType is the abstract base type for Objects representing transport protocol mapping specific settings for WriterGroups. The WriterGroupTransportType is formally defined in Table 253.
Table 253 – WriterGroupTransportType definition
Attribute |
Value |
|||||
BrowseName |
WriterGroupTransportType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType |
||||||
Conformance Units |
||||||
PubSub Model Base |
This ObjectType is the abstract base type for Objects representing message mapping specific settings for WriterGroups. The WriterGroupMessageType is formally defined in Table 254.
Table 254 – WriterGroupMessageType definition
Attribute |
Value |
|||||
BrowseName |
WriterGroupMessageType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of BaseObjectType |
||||||
Conformance Units |
||||||
PubSub Model Base |
This ObjectType is a concrete type for Objects representing DataSetReader groupings for PubSub connections. The ReaderGroupType is formally defined in Table 255.
Table 255 – 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 Objects are added as components to the instance of the group. DataSetReaderType Objects may be configured with product- specific configuration tools or through OPC UA Methods AddDataSetReader and RemoveDataSetReader. The DataSetReaderType is defined in 9.1.8.1. The ReferenceType HasDataSetReader is defined in 9.1.6.12.
The Diagnostics Object provides the current diagnostic information for a ReaderGroupType Object. The PubSubDiagnosticsReaderGroupType is defined in 9.1.11.10.
The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The ReaderGroupTransportType is defined in 9.1.6.13. The Object shall be present if the transport protocol mapping defines specific parameters.
The message mapping specific setting settings are provided in the optional Object MessageSettings. The ReaderGroupMessageType is defined in 9.1.6.14. The Object shall be present if the message mapping defines specific parameters.
This Method is used to add a new DataSetReaderType Object to an instance of the ReaderGroup.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddDataSetReader (
[in]DataSetReaderDataType Configuration,
[out]NodeId DataSetReaderNodeId
);
Argument |
Description |
Configuration |
Configuration parameters for the DataSetWriter. The parameters and the DataSetReaderDataType are defined in 6.2.9. |
DataSetReaderNodeId |
The NodeId of the new DataSetReader Object. |
Method Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The Server is not able to apply the name. The name may be too long or may contain invalid characters. |
Bad_BrowseNameDuplicated |
An Object with the name already exists in the group. |
Bad_ResourceUnavailable |
The Server does not have enough resources to add the DataSetReader. |
Bad_UserAccessDenied |
The Session user does not have rights to create the DataSetReader. |
Table 256 specifies the AddressSpace representation for the AddDataSetReader Method.
Table 256 – 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 Method is used to remove a DataSetReader Object from the group. The state of the DataSetReader is set to Disabled before the Object is removed.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveDataSetReader (
[in]NodeIdDataSetReaderNodeId
);
Argument |
Description |
DataSetReaderNodeId |
NodeId of the DataSetReader to remove from the group. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The DataSetReaderNodeId is unknown. |
Bad_NodeIdInvalid |
The DataSetReaderNodeId is not a NodeId of a DataSetReader. |
Bad_UserAccessDenied |
The Session user does not have rights to delete the DataSetReader. |
Table 257 specifies the AddressSpace representation for the RemoveDataSetReader Method.
Table 257 – 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 ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the HasComponent ReferenceType.
The SourceNode of References of this type shall be an instance of the ReaderGroupType defined in 9.1.6.6.
The TargetNode of this ReferenceType shall be an instance of the DataSetReaderType defined in 9.1.8.1.
Servers shall provide the inverse Reference that relates a DataSetReader Object back to a ReaderGroupType Object.
The representation of the HasDataSetReader ReferenceType in the AddressSpace is specified in Table 258.
Table 258 – 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 ObjectType is the abstract base type for Objects representing transport protocol mapping specific settings for ReaderGroups. The ReaderGroupTransportType is formally defined in Table 259.
There is currently no transport protocol mapping specific setting defined.
Table 259 – ReaderGroupTransportType definition
Attribute |
Value |
||||
BrowseName |
ReaderGroupTransportType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType |
|||||
Conformance Units |
|||||
PubSub Model Base |
This ObjectType is the abstract base type for Objects representing message mapping specific settings for ReaderGroups. The ReaderGroupMessageType is formally defined in Table 260.
There is currently no message mapping specific setting defined.
Table 260 – ReaderGroupMessageType definition
Attribute |
Value |
||||
BrowseName |
ReaderGroupMessageType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of BaseObjectType |
|||||
Conformance Units |
|||||
PubSub Model Base |
Figure 44 depicts the ObjectType for the PubSub DataSetWriter model and its components and the relations to other parts of the model.
Figure 44 – DataSet Writer model overview
An instance of this ObjectType represents the configuration for a DataSetWriter. The DataSetWriterType is formally defined Table 261.
A DataSetWriter that creates DataSetMessages based on a PublishedDataSet shall reference the related PublishedDataSet with an inverse DataSetToWriter Reference.
A DataSetWriter that creates heartbeat DataSetMessages shall not have a reference to a PublishedDataSet.
Table 261 – 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 DataSetWriterId is defined in 6.2.4.1.
The DataSetFieldContentMask is defined in 6.2.4.2.
The KeyFrameCount is defined in 6.2.4.3. The Property shall be present for PublishedDataSets that provide cyclic updates of the DataSet.
The DataSetWriterProperties is defined in 6.2.4.4.
The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The DataSetWriterTransportType is defined in 9.1.7.3. The Object shall be present if the transport protocol mapping defines specific parameters.
The message mapping specific setting settings are provided in the optional Object MessageSettings. The DataSetWriterMessageType is defined in 9.1.7.4. The Object shall be present if the message mapping defines specific parameters.
The Status Object provides the current operational status of the DataSetWriter. The PubSubStatusType is defined in 9.1.10. The state machine for the status and the relation to other PubSub Objects like PubSubConnection and PubSubGroup is defined in 6.2.1.
The Diagnostics Object provides the current diagnostic information for a DataSetWriterType Object. The PubSubDiagnosticsDataSetWriterType is defined in 9.1.11.11.
This ObjectType is the abstract base type for Objects defining protocol-specific transport settings of DataSetMessages. The DataSetWriterTransportType is formally defined Table 262.
Table 262 – 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 ObjectType is the abstract base type for Objects representing message mapping specific settings for DataSetWriters. The DataSetWriterMessageType is formally defined in Table 263.
Table 263 – 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 45 depicts the ObjectType for the PubSub DataSetReader model and its components and the relations to other parts of the model.
Figure 45 – DataSet Reader model overview
This ObjectType defines receiving behaviour of DataSetMessages and the decoding to DataSets. The DataSetReaderType is formally defined in Table 264.
The SubscribedDataSetType defined in 9.1.9.1 describes the processing of the received DataSet in a Subscriber.
Table 264 – 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, DataSetWriterId and DataSetClassId define filters for received NetworkMessages. If the value of the Property is set, it is used as filter and all messages that do not match the filter are dropped.
The PublisherId is defined in 6.2.9.1.
The WriterGroupId is defined in 6.2.9.2.
The DataSetWriterId is defined in 6.2.9.3.
The DataSetMetaData is defined in 6.2.9.4. If the DataSetReader receives an updated DataSetMetaData, the DataSetReader shall update the Property DataSetMetaData.
The DataSetFieldContentMask is defined in 6.2.9.5.
The MessageReceiveTimeout is defined in 6.2.9.6.
The KeyFrameCount is defined in 6.2.9.7.
The HeaderLayoutUri is defined in 6.2.9.8.
The SecurityMode is defined in 6.2.9.9. If present or if the value is not INVALID, it overwrites the settings on the group.
The SecurityGroupId is defined in 6.2.9.10.
The SecurityKeyServices is defined in 6.2.9.11.
The DataSetReaderProperties is defined in 6.2.9.12.
The transport protocol mapping specific setting settings are provided in the optional Object TransportSettings. The DataSetReaderTransportType is defined in 9.1.8.3. The Object shall be present if the transport protocol mapping defines specific parameters.
The message mapping specific setting settings are provided in the optional Object MessageSettings. The DataSetReaderMessageType is defined in 9.1.8.4. The Object shall be present if the message mapping defines specific parameters.
The Status Object provides the current operational state of the DataSetReader. The PubSubStatusType is defined in 9.1.10. The state machine for the status and the relation to other PubSub Objects like PubSubConnection and PubSubGroup are defined in 6.2.1.
The Diagnostics Object provides the current diagnostic information for a DataSetReaderType Object. The PubSubDiagnosticsDataSetReaderType is defined in 9.1.11.12.
The SubscribedDataSet Object contains the metadata for the subscribed DataSet and the information for the processing of a DataSetMessage. The SubscribedDataSetType and the available subtypes are defined in 9.1.9. If the DataSetReader is configured to receive heartbeat DataSetMessages, the Object shall be of the base type SubscribedDataSetType.
This ObjectType is the abstract base type for Objects defining the transport protocol-specific parameters for DataSetReaders. The DataSetReaderTransportType is formally defined in Table 265.
Table 265 – 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 ObjectType is the abstract base type for Objects representing message mapping specific settings for DataSetReaders. The DataSetReaderMessageType is formally defined in Table 266.
Table 266 – 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 Method is used to initially set the SubscribedDataSet to TargetVariablesType and to create the list of target Variables of a SubscribedDataSetType.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 CreateTargetVariables shall match the current configuration version in DataSetMetaData Property. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataType is defined in 6.2.3.2.6. |
TargetVariablesToAdd |
The list of target Variables to write received DataSet fields to. The FieldTargetDataType is defined in 6.2.10.2.3. The succeeded targets are added to the TargetVariables Property. |
AddResults |
The result codes for the Variables to connect. |
Method Result Codes
ResultCode |
Description |
Bad_NothingToDo |
An empty list of Variables was provided. |
Bad_InvalidState |
The DataSetReader is not configured yet or the ConfigurationVersion does not match the version in the Publisher. |
Bad_UserAccessDenied |
Operation Result Codes
ResultCode |
Description |
Bad_NodeIdInvalid |
See OPC 10000-4 for the description of this result code. This status code is related to the TargetNodeId. |
Bad_NodeIdUnknown |
See OPC 10000-4 for the description of this result code. This status code is related to the TargetNodeId. |
Bad_AttributeIdInvalid |
See OPC 10000-4 for the description of this result code. This status code is related to the AttributeId. |
Bad_NoMatch |
This status code indicates that the DataSetFieldId is invalid. |
Bad_IndexRangeInvalid |
See OPC 10000-4 for 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-4 for the description of this result code. If the ArrayDimensions have 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 Server has reached its maximum number of items for the DataSetReader object. |
Bad_InvalidState |
The TargetNodeId is already used by another connection. |
Bad_TypeMismatch |
The Server shall return a Bad_TypeMismatch error if the data type of the DataSet field is not the same type or subtype as the target Variable DataType. Based on the DataType hierarchy, subtypes of the Variable DataType shall be accepted by the Server. A ByteString is structurally the same as a one dimensional array of Byte. A Server shall accept a ByteString if an array of Byte is expected. |
Table 267 specifies the AddressSpace representation for the CreateTargetVariables Method.
Table 267 – 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 Method is used to set the SubscribedDataSet to SubscribedDataSetMirrorType used to represents the fields of the DataSet as Variables in the Subscriber Address Space. This Method creates an Object below the SubscribedDataSet and below this Object it creates a Variable Node for every field in the DataSetMetaData. The detailed rules for the Object creation are defined in 9.1.9.3.
If the SubscribedDataSet already has a specific subtype, this subtype is replaced with a SubscribedDataSetMirrorType instance.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 Node for the Variables representing the fields of the subscribed DataSet. |
RolePermissions |
Value of the RolePermissions Attribute to be set on the parent Node. This value is also used as RolePermissions for all Variables of the DataSet mirror. |
ParentNodeId |
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
The DataSetReader is not configured yet or the ConfigurationVersion does not match the version in the Publisher. |
Bad_UserAccessDenied |
Table 268 specifies the AddressSpace representation for the CreateDataSetMirror Method.
Table 268 – 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 ObjectType defines the metadata for the subscribed DataSet and the information for the processing of DataSetMessages. See 5.4.2.2 for an introduction to the processing options for received DataSetMessages.
The SubscribedDataSetType is formally defined in Table 269.
Table 269 – 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 ObjectType defines the metadata for the subscribed DataSet and the information for the processing of DataSetMessages. The TargetVariablesType is formally defined in Table 270.
Table 270 – 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 TargetVariables is defined in 6.2.10.2.
This Method is used to add target Variables to an existing list of target Variables of a TargetVariablesType Object.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 AddDataConnections shall match the current configuration version in DataSetMetaData Property. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataType is defined in 6.2.3.2.6. |
TargetVariablesToAdd |
The list of target Variables to write received DataSet fields to. The FieldTargetDataType is defined in 6.2.10.2.3. The succeeded connections are added to the TargetVariables Property. |
AddResults |
The result codes for the Variables to connect. |
Method Result Codes
ResultCode |
Description |
Bad_NothingToDo |
An empty list of Variables was provided. |
Bad_InvalidState |
The DataSetReader is not configured yet or the ConfigurationVersion does not match the version in the Publisher. |
Bad_UserAccessDenied |
Operation Result Codes
ResultCode |
Description |
Bad_NodeIdInvalid |
See OPC 10000-4 for the description of this result code. |
Bad_NodeIdUnknown |
See OPC 10000-4 for the description of this result code. |
Bad_IndexRangeInvalid |
See OPC 10000-4 for 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-4 for the description of this result code. If the ArrayDimensions have 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 Server has reached its maximum number of items for the DataSetReader object. |
Bad_InvalidState |
The TargetNodeId is already used by another target Variable. |
Bad_TypeMismatch |
The Server shall return a Bad_TypeMismatch error if the data type of the DataSet field is not the same type or subtype as the target Variable DataType. Based on the DataType hierarchy, subtypes of the Variable DataType shall be accepted by the Server. A ByteString is structurally the same as a one dimensional array of Byte. A Server shall accept a ByteString if an array of Byte is expected. |
Table 271 specifies the AddressSpace representation for the AddTargetVariables Method.
Table 271 – 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 Method is used to remove entries from the list of target Variables of a TargetVariablesType Object.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on 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 RemoveTargetVariables shall match the current configuration version in DataSetMetaData Property. If it does not match, the result Bad_InvalidState shall be returned. The ConfigurationVersionDataType is defined in 6.2.3.2.6. |
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 Variables was provided. |
Bad_InvalidState |
The DataSetReader is not configured yet or the ConfigurationVersion does not match the version in the DataSetMetaData. |
Bad_UserAccessDenied |
Operation Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The provided index is invalid. |
Table 272 specifies the AddressSpace representation for the RemoveTargetVariables Method.
Table 272 – 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 ObjectType defines the information for the processing of DataSetMessages as mirror Variables. For each field of the DataSet a mirror Variable is created in the Subscriber AddressSpace. The SubscribedDataSetMirrorType is formally defined in Table 273.
Table 273 – 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 Object of this type shall reference a mirror Object with HasComponent where the name of the Object is based on the ParentNodeName. The Method CreateDataSetMirror can be used to set the SubscribedDataSet into the mirror mode.
The mirror Object shall reference Variables for each DataSet field in the DataSetMetaData with HasComponent. The name, DataType, ValueRank and ArrayDimensions of the Variables shall match the settings for the corresponding DataSet field in the DataSetMetaData.
A Variable representing a field of the DataSet shall be created with the following rules
- TypeDefinition is BaseDataVariableType or a subtype.
- The Reference from the parent Node to the Variable is of type HasComponent.
- The initial AccessLevel of the Variables is CurrentRead.
- The RolePermissions is derived from the parent Node.
- The other Attribute values are taken from the FieldMetaData.
- The properties in the FieldMetaData are created as Properties of the Variable.
The DataTypes are created in the Subscriber from the DataSetMetaData if they do not exist. The NamespaceUri of the created DataTypes shall match the namespace contained in the DataSetMetaData.
The SubscribedDataSetFolderType is formally defined in Table 274.
Table 274 – 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 ObjectType is a concrete type and can be used directly.
Instances of the SubscribedDataSetFolderType can contain StandaloneSubscribedDataSets or other instances of the SubscribedDataSetFolderType. This can be used to build a tree of Folder Objects used 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 Method is used to add a new standalone subscribed DataSet Object to an instance of the DataSet Folder.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddSubscribedDataSet (
[in]StandaloneSubscribedDataSetDataType SubscribedDataSet,
[out]NodeId SubscribedDataSetNodeId
);
Argument |
Description |
SubscribedDataSet |
The standalone subscribed DataSet to add. |
SubscribedDataSetNodeId |
Method Result Codes
ResultCode |
Description |
Bad_InvalidArgument |
The Server is not able to apply the name. The name may be too long or may contain invalid characters. |
Bad_BrowseNameDuplicated |
An Object with the name already exists in the folder. |
Bad_ResourceUnavailable |
The Server does not have enough resources to add the subscribed DataSet. |
Bad_UserAccessDenied |
The Session user does not have rights to create the subscribed DataSet. |
Table 275 specifies the AddressSpace representation for the AddSubscribedDataSet Method.
Table 275 – 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 Method is used to remove a standalone subscribed DataSet Object from a subscribed DataSet Folder. If a DataSetReader is connected, the DataSetReader is removed too.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveSubscribedDataSet (
[in]NodeIdSubscribedDataSetNodeId
);
Argument |
Description |
SubscribedDataSetNodeId |
NodeId of the standalone subscribed DataSet to remove from the folder. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The SubscribedDataSetNodeId is unknown. |
Bad_NodeIdInvalid |
The SubscribedDataSetNodeId is not a NodeId of a standalone subscribed DataSet. |
Bad_UserAccessDenied |
Table 276 specifies the AddressSpace representation for the RemoveSubscribedDataSet Method.
Table 276 – 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 Method is used to add a SubscribedDataSetFolderType Object to a SubscribedDataSetFolderType Object.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
AddDataSetFolder (
[in]StringName,
[out]NodeIdDataSetFolderNodeId
);
Argument |
Description |
Name |
Name of the Object to create. |
DataSetFolderNodeId |
NodeId of the created SubscribedDataSetFolderType Object. |
Method Result Codes
ResultCode |
Description |
Bad_BrowseNameDuplicated |
A folder Object with the name already exists. |
Bad_InvalidArgument |
The Server is not able to apply the Name. The Name may be too long or may contain invalid characters. |
Bad_UserAccessDenied |
The Session user is not allowed to add a folder. |
Table 277 specifies the AddressSpace representation for the AddDataSetFolder Method.
Table 277 – 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 Method is used to remove a SubscribedDataSetFolderType Object from the parent SubscribedDataSetFolderType Object.
A successful removal of the SubscribedDataSetFolderType Object removes all associated StandaloneSubscribedDataSetType Objects and their associated DataSetReader Objects. Before the Objects are removed, their state is changed to Disabled.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
RemoveDataSetFolder (
[in]NodeIdDataSetFolderNodeId
);
Argument |
Description |
DataSetFolderNodeId |
NodeId of the SubscribedDataSetFolderType Object to remove from the Server. |
Method Result Codes
ResultCode |
Description |
Bad_NodeIdUnknown |
The DataSetFolderNodeId is unknown. |
Bad_UserAccessDenied |
The Session user is not allowed to delete the folder. |
Table 278 specifies the AddressSpace representation for the RemoveDataSetFolder Method.
Table 278 – 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 ObjectType represents a Subscriber defined standalone DataSet. A standalone subscribed DataSet can exist without DataSetReader and is used to define a DataSet from the Subscriber side. A DataSetReader can be configured and connected to the standalone DataSet if a Publisher provides the DataSetMessages defined by the DataSetMetaData in the standalone DataSet. The StandaloneSubscribedDataSetType is formally defined in Table 279.
Table 279 – 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 SubscribedDataSetType defined in 9.1.9.1 describes the processing of the received DataSet in a Subscriber.
The DataSetMetaData is defined in 6.2.9.4. A Publisher must be configured to send DataSetMessages that comply with the DataSetMetaData in the standalone subscribed DataSet.
The IsConnected Property with DataType Boolean indicates if the standalone subscribed DataSet is connected to a DataSetReader. A standalone subscribed DataSet can only be connected to one DataSetReader. If a DataSetReader is connected, the DataSetReader Object shall share the Nodes SubscribedDataSet and DataSetMetaData with the StandaloneSubscribedDataSet Object. The relation between standalone SubscribedDataSet and the connected DataSetReader is provided in both directions through the inverse References from the SubscribedDataSet Object.
This ObjectType is used to indicate and change the status of a PubSub Object like PubSubConnection, DataSetWriter or DataSetReader. The PubSubStatusType is formally defined in Table 280.
Table 280 – 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 Variable provides the current operational state of the PubSub Object. The default value is Disabled. The PubSubState Enumeration and the related state machine are defined in 6.2.1.
The State may be changed with product-specific configuration tools or with the Methods Enable and Disable.
This Method is used to enable a configured PubSub Object. The related state machine and the transitions triggered by a successful call to this Method are defined in 6.2.1.
The Server shall reject Enable Method calls if the current State is not Disabled.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
Enable ();
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
The state of the Object is not disabled. |
Bad_UserAccessDenied |
Table 281 specifies the AddressSpace representation for the Enable Method.
Table 281 – Enable Method AddressSpace definition
Attribute |
Value |
BrowseName |
Enable |
ConformanceUnits |
|
PubSub Model Base |
This Method is used to disable a PubSub Object. The related state machine and the transitions triggered by a successful call to this Method are defined in 6.2.1.
The Server shall reject Disable Method calls if the current State is Disabled.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
Disable ();
Method Result Codes
ResultCode |
Description |
Bad_InvalidState |
The state of the Object is not operational. |
Bad_UserAccessDenied |
Table 282 specifies the AddressSpace representation for the Disable Method.
Table 282 – Disable Method AddressSpace definition
Attribute |
Value |
BrowseName |
Disable |
ConformanceUnits |
|
PubSub Model Base |
PubSub ObjectTypes that require a status Object add a component with the BrowseName Status.
The following types are used to expose diagnostics information in the PubSub information model. Each level of the PubSub hierarchy 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 47 shows the structure of a Variable which holds a diagnostics counter with defined Properties. The PubSubDiagnosticsCounterType is formally defined in 9.1.11.5.
Figure 47 – PubSubDiagnosticsCounterType
The PubSubDiagnosticsType is the base type for the diagnostics objects and is formally defined in Table 283.
Table 283 – 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 Variable configures the current diagnostics level used for the Object. The DiagnosticsLevel DataType is defined in 9.1.11.4.
The TotalInformation Variable provides the sum of all diagnostics counters with classification Information.
The TotalError Variable provides the sum of all diagnostics counters with classification Error.
The SubError Variable indicates if any statistics Object of the next PubSub layer Objects shows a value > 0 in TotalError.
The Object Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsType are defined in Table 284.
Table 284 – Counters for PubSubDiagnosticsType
BrowseName |
Modelling Rule |
Diagnostics Level |
Class |
Description |
StateError |
Mandatory |
Basic |
Error |
PubSubState state machine defined in 6.2.1 changed to Error state |
StateOperationalByMethod |
Mandatory |
Basic |
Information |
State changed to Operational state triggered by Enable Method call. |
StateOperationalByParent |
Mandatory |
Basic |
Information |
State changed to Operational state triggered by an operational parent |
StateOperationalFromError |
Mandatory |
Basic |
Information |
State changed from Error to Operational. |
StatePausedByParent |
Mandatory |
Basic |
Information |
State changed to Paused state triggered by a paused or disabled parent. |
StateDisabledByMethod |
Mandatory |
Basic |
Information |
State changed to Disabled state triggered by Disable Method call. |
The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType.
The nodes in the Objects Counters and LiveValues may be activated/deactivated by the parameter DiagnosticsLevel in the PubSubDiagnosticsType.
The value of a node in the Object Counters shall be set to 0 whenever the counter changes from inactive to active.
The Server should 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 Space the Server shall set the StatusCode of the Variable Value to Bad_OutOfService.
This Method is used to set all counters in the Object diagnostics counters to the initial value.
The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.
Signature
Reset ();
Method Result Codes
ResultCode |
Description |
Bad_UserAccessDenied |
Table 285 specifies the AddressSpace representation for the Reset Method.
Table 285 – Reset Method AddressSpace definition
Attribute |
Value |
BrowseName |
Reset |
ConformanceUnits |
|
PubSub Model Diagnostics |
PubSub diagnostics are intended to assure users about the correct operation of a PubSub system and to help in the discovery of potential faults. Depending on the situation, not all diagnostic Objects might be needed, and on the other hand providing them requires resources. As a result, diagnostic objects are assigned to different diagnostic levels. Only diagnostic Objects belonging 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 DiagnosticsLevel is an enumeration that specifies the possible diagnostics levels. The possible enumeration values are described in Table 286.
Table 286 – 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 PubSub diagnostics at all. |
Advanced |
1 |
Diagnostic objects related to exceptional behaviour are contained in the Advanced diagnostic level. |
Info |
2 |
The Info diagnostic level contains high-level diagnostic objects related to the normal operation of a PubSub system. |
Log |
3 |
Diagnostic objects for the detailed logging of the operation of a PubSub system are contained in the Log diagnostic level. |
Debug |
4 |
Diagnostic objects with debug information specific to a given implementation of PubSub are contained in the Debug diagnostic 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 287.
Table 287 – 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 Value shall be reset to 0 when the Method Reset of the parent PubSubDiagnosticsType Object is called.
The Value shall be incremented by 1 for each corresponding event.
The Value shall not be incremented anymore when the maximum is reached (0xFFFFFFFF).
If the maximum is reached and a new event occurs, the SourceTimestamp of the Value shall be updated, even if the Value does not change. The Property Active indicates if the counter is active.
The Property Classification indicates whether this counter counts errors or other events according to PubSubDiagnosticsCounterClassification defined in 9.1.11.6.
The Property DiagnosticsLevel indicates the diagnostics level the counter belongs to. The DiagnosticsLevel is defined in 9.1.11.4.
The Property TimeFirstChange contains the Server time when the counter value changed from 0 to 1. If the counter value is 0 the Value is null.
The PubSubDiagnosticsCounterClassification is an enumeration that specifies the possible diagnostics counter classifications. The possible enumeration values are described in Table 288.
Table 288 – 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 PubSubDiagnosticsRootType defines the diagnostic information for the PublishSubscribe Object and is formally defined in Table 289.
Table 289 – 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 LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsRootType are defined in Table 290.
Table 290 – LiveValues for PubSubDiagnosticsRootType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
ConfiguredDataSetWriters |
Mandatory |
Basic |
UInt16 |
Number of configured DataSetWriters on this Server |
ConfiguredDataSetReaders |
Mandatory |
Basic |
UInt16 |
Number of configured DataSetReaders on this Server |
OperationalDataSetWriters |
Mandatory |
Basic |
UInt16 |
Number of DataSetWriters with state Operational |
OperationalDataSetReaders |
Mandatory |
Basic |
UInt16 |
Number of DataSetReaders with state Operational |
The PubSubDiagnosticsConnectionType defines the diagnostic information for a PubSubConnectionType Object and is formally defined in Table 291.
Table 291 – 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 LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsConnectionType are defined in Table 292.
Table 292 – LiveValues for PubSubDiagnosticsConnectionType
BrowseName |
Modelling Rule |
Diagnostics Level |
DataType |
Description |
ResolvedAddress |
Mandatory |
Basic |
String |
Resolved address of the connection (e.g. IP Address) |
The PubSubDiagnosticsWriterGroupType defines the diagnostic information for a WriterGroupType Object and is formally defined in Table 293.
Table 293 – 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 Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsWriterGroupType are defined in Table 294.
Table 294 – 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 NetworkMessage transmission |
EncryptionErrors |
Optional |
Advanced |
Error |
Error on signing or encrypting NetworkMessage |
The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsWriterGroupType are defined in Table 295.
Table 295 – 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 PubSubDiagnosticsReaderGroupType defines the diagnostic information for a ReaderGroupType Object and is formally defined in Table 296.
Table 296 – 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 Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsReaderGroupType are defined in Table 297.
Table 297 – 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 NetworkMessage Header |
DecryptionErrors |
Optional |
Advanced |
Error |
Decryption or signature check errors |
The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsReaderGroupType are defined in Table 298.
Table 298 – 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 PubSubDiagnosticsDataSetWriterType defines the diagnostic information for a DataSetWriterType Object and is formally defined in Table 299.
Table 299 – 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 Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsDataSetWriterType are defined in Table 300.
Table 300 – Counters for PubSubDiagnosticsDataSetWriterType
BrowseName |
Modelling Rule |
Diagnostics Level |
Class |
Description |
Inherited counters from PubSubDiagnosticsType |
||||
FailedDataSetMessages |
Mandatory |
Basic |
Error |
Number of failed DataSetMessages |
The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsDataSetWriterType are defined in Table 301.
Table 301 – 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 |
MajorVersion used for DataSet |
MinorVersion |
Optional |
Info |
UInt32 |
MinorVersion used for DataSet |
The PubSubDiagnosticsDataSetReaderType defines the diagnostic information for a DataSetReaderType Object and is formally defined in Table 302.
Table 302 – 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 Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsDataSetReaderType are defined in Table 303.
Table 303 – 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 LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsDataSetReaderType are defined in Table 304.
Table 304 – 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 |
MajorVersion of available DataSetMetaData |
MinorVersion |
Optional |
Info |
UInt32 |
MinorVersion of available DataSetMetaData |
SecurityTokenID |
Optional |
Info |
UInt32 |
Currently used SecurityTokenID |
TimeToNextTokenID |
Optional |
Info |
Duration |
Time until the next key change is expected |
This ObjectType is used to indicate the configuration capabilities of the PubSub functionality in the OPC UA Application.
The PubSubCapabilitiesType is formally defined in Table 305.
Table 305 – 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 |
MaxSecurityGroups |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
MaxPushTargets |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
MaxPublishedDataSets |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
MaxStandaloneSubscribedDataSets |
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 |
HasProperty |
Variable |
SupportSecurityKeyServer |
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 Application but 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 Variable defines the maximum number of PubSubConnections that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Application forces no limit on the number of connections.
The MaxWriterGroups Variable defines the maximum number of WriterGroups that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Application forces no limit on the number of WriterGroups.
The MaxReaderGroups Variable defines the maximum number of ReaderGroups that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Application forces no limit on the number of ReaderGroups.
The MaxDataSetWriters Variable defines the maximum number of DataSetWriters that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Application forces no limit on the number of DataSetWriters.
The MaxDataSetReaders Variable defines the maximum number of DataSetReaders that can be configured for the OPC UA Application. A value of 0 indicates that the OPC UA Application forces no limit on the number of DataSetReaders.
The MaxFieldsPerDataSet Variable defines the maximum number of fields that can be configured for a PublishedDataSet. A value of 0 indicates that the OPC UA Application forces no limit on the number of fields.
The MaxDataSetWritersPerGroup Variable defines the maximum number of DataSetWriters that can be configured in one WriterGroup. A value of 0 indicates that the OPC UA Application forces no limit on the number of DataSetWriters in one WriterGroup.
The MaxSecurityGroups Variable defines the maximum number of SecurityGroups that can be configured. A value of 0 indicates that the OPC UA Application forces no limit on the number of SecurityGroups.
The MaxPushTargets Variable defines the maximum number of PushTargets that can be configured. A value of 0 indicates that the OPC UA Application forces no limit on the number of PushTargets.
The MaxPublishedDataSets Variable defines the maximum number of PublishedDataSets that can be configured. A value of 0 indicates that the OPC UA Application forces no limit on the number of PublishedDataSets.
The MaxStandaloneSubscribedDataSets Variable defines the maximum number of StandaloneSubscribedDataSets that can be configured. A value of 0 indicates that the OPC UA Application forces no limit on the number of StandaloneSubscribedDataSets.
The MaxNetworkMessageSizeDatagram Variable defines the maximum number of bytes that can be configured as MaxNetworkMessageSize for NetworkMessages sent or received through datagram transport protocol mappings. A value of 0 indicates that the OPC UA Application forces no limit on the maximum size.
The MaxNetworkMessageSizeBroker Variable defines the maximum number of bytes that can be configured as MaxNetworkMessageSize for NetworkMessages sent or received through broker transport protocol mappings. A value of 0 indicates that the OPC UA Application forces no limit on the maximum size.
The SupportSecurityKeyPull Variable indicates if the OPC UA Application is able to pull PubSub security keys from a SKS.
The SupportSecurityKeyPush Variable indicates if the OPC UA Application is able to accept PubSub security keys pushed from a SKS.
The SupportSecurityKeyServer Variable indicates if the OPC UA Application is able to act as a Security Key Server and to manage SecurityGroups.
The PubSub components have KeyValuePair arrays for additional configuration property lists. These optional configuration properties extend the configuration parameters defined for the different PubSub components.
A configuration property is described by Variables with the following information:
- BrowseName of the Variable is used as Key for the property.
- DataType of the Variable defines the DataType of the Value in the KeyValuePair.
- Value of the Variable provides the default value for the property.
- Description of the Variable provides additional information.
- Properties like EURange or EngineeringUnits can be used to provide value ranges and units.
The configuration property descriptions are referenced from the related configuration propeties Node with the HasKeyValueDescription ReferenceType defined in OPC 10000-5.
The SourceNode of References of this type shall be one of the following Nodes:
- ConfigurationProperties Property of the PublishSubscribeType
- ConnectionProperties Property of the PubSubConnectionType or of instances of the PubSubConnectionType
- GroupProperties Property of the GroupType or of instances of the WriterGroupType or ReaderGroupType
- DataSetWriterProperties Property of the DataSetWriterType or of instances of the DataSetWriterType
- DataSetReaderProperties Property of the DataSetReaderType or of instances of the DataSetReaderType
- GroupProperties Property of the SecurityGroupType
- PushTargetProperties Property of the PushTargetType
This EventType is a base type for events which indicate an error or status change associated with a PubSubConnectionType, PubSubGroupType, DataSetWriterType or DataSetReaderType Object. The PubSubStatusEventType is formally defined in Table 306.
Table 306 – 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 NodeId of the PubSubConnectionType, PubSubGroupType, DataSetWriterType or DataSetReaderType Object associated with the Event.
The SourceName is the BrowseName of the SourceNode.
The ConnectionId Property is the NodeId of the PubSubConnectionType Object associated with the source of the status Event.
The GroupId Property is the NodeId of the PubSubGroupType Object associated with the source of the status Event. The GroupId is Null if a PubSubConnection is the source of the Event.
The State Variable is the current state of the Status Object associated with the SourceNode of the status Event.
This EventType indicates that a NetworkMessage could not be published because it exceeds the limits of transport. The PubSubTransportLimitsExceedEventType is formally defined in Table 307.
Table 307 – PubSubTransportLimitsExceedEventType definition
Attribute |
Value |
|||||
BrowseName |
PubSubTransportLimitsExceedEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of PubSubStatusEventType defined in 9.1.13.2. |
||||||
HasProperty |
Variable |
Actual |
UInt32 |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
Maximum |
UInt32 |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
PubSub Model Diagnostics Events |
This EventType inherits all Properties of the PubSubStatusEventType.
The Actual Property has the size in bytes of the actual NetworkMessage.
The Maximum Property has the maximum size of NetworkMessages in bytes allowed by the transport.
This EventType indicates that a NetworkMessage could not be published because of a communication failure. The PubSubCommunicationFailureEventType is formally defined in Table 308.
Table 308 – PubSubCommunicationFailureEventType definition
Attribute |
Value |
|||||
BrowseName |
PubSubCommunicationFailureEventType |
|||||
IsAbstract |
True |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of PubSubStatusEventType defined in 9.1.13.2. |
||||||
HasProperty |
Variable |
Error |
StatusCode |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
PubSub Model Diagnostics Events |
This EventType inherits all Properties of the PubSubStatusEventType.
The Message Event field inherited from BaseEventType has a localized description of the error.
The Error Property has the StatusCode associated with the error.
This ObjectType represents UADP message mapping specific parameters for a WriterGroup. The UadpWriterGroupMessageType is formally defined in Table 309.
Table 309 – UadpWriterGroupMessageType definition
Attribute |
Value |
||||
BrowseName |
UadpWriterGroupMessageType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of WriterGroupMessageType defined in 9.1.6.8. |
|||||
HasProperty |
Variable |
GroupVersion |
VersionTime |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetOrdering |
DataSetOrderingType |
PropertyType |
Mandatory |
HasProperty |
Variable |
NetworkMessageContentMask |
UadpNetworkMessageContentMask |
PropertyType |
Mandatory |
HasProperty |
Variable |
SamplingOffset |
Duration |
PropertyType |
Optional |
HasProperty |
Variable |
PublishingOffset |
Duration[] |
PropertyType |
Mandatory |
Conformance Units |
|||||
PubSub Model UADP |
The GroupVersion is defined in 6.3.1.1.2.
The DataSetOrdering is defined in 6.3.1.1.3.
The NetworkMessageContentMask is defined in 6.3.1.1.4.
The SamplingOffset is defined in 6.3.1.1.5.
The PublishingOffset is defined in 6.3.1.1.6.
This ObjectType represents UADP message mapping specific parameters for a DataSetWriter. The UadpDataSetWriterMessageType is formally defined in Table 310.
Table 310 – UadpDataSetWriterMessageType definition
Attribute |
Value |
||||
BrowseName |
UadpDataSetWriterMessageType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of DataSetWriterMessageType defined in 9.1.7.4. |
|||||
HasProperty |
Variable |
DataSetMessageContentMask |
UadpDataSetMessageContentMask |
PropertyType |
Mandatory |
HasProperty |
Variable |
ConfiguredSize |
UInt16 |
PropertyType |
Mandatory |
HasProperty |
Variable |
NetworkMessageNumber |
UInt16 |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetOffset |
UInt16 |
PropertyType |
Mandatory |
Conformance Units |
|||||
PubSub Model UADP |
The DataSetMessageContentMask is defined in 6.3.1.3.2.
The ConfiguredSize is defined in 6.3.1.3.2.
The NetworkMessage is defined in 6.3.1.3.4.
The DataSetOffset is defined in 6.3.1.3.5.
This ObjectType represents UADP message mapping specific parameters for a DataSetReader. The UadpDataSetWriterMessageType is formally defined in Table 311.
Table 311 – UadpDataSetReaderMessageType definition
Attribute |
Value |
||||
BrowseName |
UadpDataSetReaderMessageType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of DataSetReaderMessageType defined in 9.1.8.4. |
|||||
HasProperty |
Variable |
GroupVersion |
VersionTime |
PropertyType |
Mandatory |
HasProperty |
Variable |
NetworkMessageNumber |
UInt16 |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetOffset |
UInt16 |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetClassId |
Guid |
PropertyType |
Mandatory |
HasProperty |
Variable |
NetworkMessageContentMask |
UadpNetworkMessageContentMask |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetMessageContentMask |
UadpDataSetMessageContentMask |
PropertyType |
Mandatory |
HasProperty |
Variable |
PublishingInterval |
Duration |
PropertyType |
Mandatory |
HasProperty |
Variable |
ReceiveOffset |
Duration |
PropertyType |
Mandatory |
HasProperty |
Variable |
ProcessingOffset |
Duration |
PropertyType |
Mandatory |
Conformance Units |
|||||
PubSub Model UADP |
The GroupVersion is defined in 6.3.1.4.1.
The NetworkMessageNumber is defined in 6.3.1.4.2.
The DataSetOffset is defined in 6.3.1.4.3.
The DataSetClassId is defined in 6.3.1.4.4. The initial value is null.
The NetworkMessageContentMask is defined in 6.3.1.4.5.
The DataSetMessageContentMask is defined in 6.3.1.4.6.
The PublishingInterval is defined in 6.3.1.4.7.
The ReceiveOffset is defined in 6.3.1.4.8.
The ProcessingOffset is defined in 6.3.1.4.9.
This ObjectType represents JSON message mapping specific parameters for a WriterGroup. The JsonWriterGroupMessageType is formally defined in Table 312.
Table 312 – JsonWriterGroupMessageType definition
Attribute |
Value |
||||
BrowseName |
JsonWriterGroupMessageType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of WriterGroupMessageType defined in 9.1.6.8. |
|||||
HasProperty |
Variable |
NetworkMessageContentMask |
JsonNetworkMessageContentMask |
PropertyType |
Mandatory |
Conformance Units |
|||||
PubSub Model JSON |
The NetworkMessageContentMask is defined in 6.3.2.4.1.
This ObjectType represents UADP message mapping specific parameters for a DataSetWriter. The JsonDataSetWriterMessageType is formally defined in Table 313.
Table 313 – JsonDataSetWriterMessageType definition
Attribute |
Value |
||||
BrowseName |
JsonDataSetWriterMessageType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of DataSetWriterMessageType defined in 9.1.7.4. |
|||||
HasProperty |
Variable |
DataSetMessageContentMask |
JsonDataSetMessageContentMask |
PropertyType |
Mandatory |
Conformance Units |
|||||
PubSub Model JSON |
The DataSetMessageContentMask is defined in 6.3.2.3.1.
This ObjectType represents UADP message mapping specific parameters for a DataSetReader. The JsonDataSetReaderMessageType is formally defined in Table 314.
Table 314 – JsonDataSetReaderMessageType definition
Attribute |
Value |
||||
BrowseName |
JsonDataSetReaderMessageType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
Subtype of DataSetReaderMessageType defined in 9.1.8.4. |
|||||
HasProperty |
Variable |
NetworkMessageContentMask |
JsonNetworkMessageContentMask |
PropertyType |
Mandatory |
HasProperty |
Variable |
DataSetMessageContentMask |
JsonDataSetMessageContentMask |
PropertyType |
Mandatory |
Conformance Units |
|||||
PubSub Model JSON |
The NetworkMessageContentMask is defined in 6.3.2.4.1.
The DataSetMessageContentMask is defined in 6.3.2.4.2.
This ObjectType represents datagram transport protocol mapping specific parameters for a PubSubConnection. The DatagramConnectionTransportType is formally defined in Table 315.
Table 315 – DatagramConnectionTransportType definition
Attribute |
Value |
||||
BrowseName |
DatagramConnectionTransportType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of ConnectionTransportType defined in 9.1.5.8. |
|||||
HasComponent |
Object |
DiscoveryAddress |
|
NetworkAddressType |
Mandatory |
HasProperty |
Variable |
DiscoveryAnnounceRate |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
DiscoveryMaxMessageSize |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
QosCategory |
String |
PropertyType |
Optional |
HasProperty |
Variable |
DatagramQos |
QosDataType[] |
PropertyType |
Optional |
Conformance Units |
|||||
PubSub Model Datagram |
The DiscoveryAddress is defined in 6.4.1.2.1.
The DiscoveryAnnounceRate is defined in 6.4.1.2.3.
The DiscoveryMaxMessageSize is defined in 6.4.1.2.4.
The QosCategory is defined in 6.4.1.2.5.
The DatagramQos is defined in 6.4.1.2.6.
This ObjectType represents datagram transport protocol mapping specific parameters for a WriterGroup. The DatagramWriterGroupTransportType is formally defined in Table 319.
Table 316 – DatagramWriterGroupTransportType definition
Attribute |
Value |
||||
BrowseName |
DatagramWriterGroupTransportType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of WriterGroupTransportType defined in 9.1.6.7. |
|||||
HasProperty |
Variable |
MessageRepeatCount |
Byte |
PropertyType |
Optional |
HasProperty |
Variable |
MessageRepeatDelay |
Duration |
PropertyType |
Optional |
HasComponent |
Object |
Address |
|
NetworkAddressType |
Optional |
HasProperty |
Variable |
QosCategory |
String |
PropertyType |
Optional |
HasProperty |
Variable |
DatagramQos |
TransmitQosDataType[] |
PropertyType |
Optional |
HasProperty |
Variable |
DiscoveryAnnounceRate |
UInt32 |
PropertyType |
Optional |
HasProperty |
Variable |
Topic |
String |
PropertyType |
Optional |
Conformance Units |
|||||
PubSub Model Datagram |
The MessageRepeatCount is defined in 6.4.1.3.1.
The MessageRepeatDelay is defined in 6.4.1.3.2.
The Address is defined in 6.4.1.3.4. The abstract NetworkAddressType is defined in 9.1.5.6. The default type used for concrete instances is the NetworkAddressUrlType defined in 9.1.5.7. It represents the Address in the form of a URL String.
The QosCategory is defined in 6.4.1.3.5.
The DatagramQos is defined in 6.4.1.3.6.
The DiscoveryAnnounceRate is defined in 6.4.1.3.7
The Topic is defined in 6.4.1.3.8.
There is no datagram-specific transport protocol mapping parameter defined for the DataSetWriter.
This ObjectType represents datagram transport protocol mapping specific parameters for a DataSetReader. The DatagramDataSetReaderTransportType is formally defined in Table 317.
Table 317 – DatagramDataSetReaderTransportType definition
Attribute |
Value |
||||
BrowseName |
DatagramDataSetReaderTransportType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of DataSetReaderTransportType defined in 9.1.8.3. |
|||||
HasComponent |
Object |
Address |
|
NetworkAddressType |
Optional |
HasProperty |
Variable |
QosCategory |
String |
PropertyType |
Optional |
HasProperty |
Variable |
DatagramQos |
ReceiveQosDataType[] |
PropertyType |
Optional |
HasProperty |
Variable |
Topic |
String |
PropertyType |
Optional |
Conformance Units |
|||||
PubSub Model Datagram |
The Address is defined in 6.4.1.6.1. The abstract NetworkAddressType is defined in 9.1.5.6. The default type used for concrete instances is the NetworkAddressUrlType defined in 9.1.5.7. It represents the Address in the form of a URL String.
The QosCategory is defined in 6.4.1.6.2.
The DatagramQos is defined in 6.4.1.6.3.
The Topic is defined in 6.4.1.6.4.
This ObjectType represents broker transport protocol mapping specific parameters for a PubSubConnection. The BrokerConnectionTransportType is formally defined in Table 318.
Table 318 – BrokerConnectionTransportType definition
Attribute |
Value |
|||||
BrowseName |
BrokerConnectionTransportType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of ConnectionTransportType defined in 9.1.5.8. |
||||||
HasProperty |
Variable |
ResourceUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
AuthenticationProfileUri |
String |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
PubSub Model Broker |
The ResourceUri is defined in 6.4.2.2.1.
The AuthenticationProfileUri is defined in 6.4.2.2.2.
This ObjectType represents broker transport protocol mapping specific parameters for a WriterGroup. The BrokerWriterGroupTransportType is formally defined in Table 319.
Table 319 – BrokerWriterGroupTransportType definition
Attribute |
Value |
|||||
BrowseName |
BrokerWriterGroupTransportType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Subtype of WriterGroupTransportType defined in 9.1.6.7. |
||||||
HasProperty |
Variable |
QueueName |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ResourceUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
AuthenticationProfileUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
RequestedDeliveryGuarantee |
BrokerTransportQualityOfService |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
PubSub Model Broker |
The QueueName is defined in 6.4.2.3.1.
The ResourceUri is defined in 6.4.2.3.2.
The AuthenticationProfileUri is defined in 6.4.2.3.3.
The RequestedDeliveryGuarantee is defined in 6.4.2.3.4.
This ObjectType represents broker transport protocol mapping specific parameters for a DataSetWriter. The BrokerDataSetWriterTransportType is formally defined in Table 320.
Table 320 – BrokerDataSetWriterTransportType definition
Attribute |
Value |
|||||
BrowseName |
BrokerDataSetWriterTransportType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Subtype of DataSetWriterTransportType defined in 9.1.7.3. |
||||||
HasProperty |
Variable |
QueueName |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
MetaDataQueueName |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ResourceUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
AuthenticationProfileUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
RequestedDeliveryGuarantee |
BrokerTransportQualityOfService |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
MetaDataUpdateTime |
Duration |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
PubSub Model Broker |
The QueueName is defined in 6.4.2.5.1.
The ResourceUri is defined in 6.4.2.5.2.
The AuthenticationProfileUri is defined in 6.4.2.5.3.
The RequestedDeliveryGuarantee is defined in 6.4.2.5.4.
The MetaDataQueueName is defined in 6.4.2.5.5.
The MetaDataUpdateTime is defined in 6.4.2.5.6.
This type extends the list of well-known extension field names defined in Table 222 with the names defined in Table 321.
Table 321 – Broker Writer well-known extension field names
Name |
Type |
Description |
QueueName |
String |
The Broker queue destination for Data messages. |
MetaDataQueueName |
String |
The Broker queue destination for metadata messages. |
This ObjectType represents broker transport protocol mapping specific parameters for a DataSetReader. The BrokerDataSetReaderTransportType is formally defined in Table 322.
Table 322 – BrokerDataSetReaderTransportType definition
Attribute |
Value |
|||||
BrowseName |
BrokerDataSetReaderTransportType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of DataSetReaderTransportType defined in 9.1.8.3. |
||||||
HasProperty |
Variable |
QueueName |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ResourceUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
AuthenticationProfileUri |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
RequestedDeliveryGuarantee |
BrokerTransportQualityOfService |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
MetaDataQueueName |
String |
PropertyType |
Mandatory |
|
Conformance Units |
||||||
PubSub Model Broker |
The QueueName is defined in 6.4.2.6.1.
The ResourceUri is defined in 6.4.2.6.2.
The AuthenticationProfileUri is defined in 6.4.2.6.3.
The RequestedDeliveryGuarantee is defined in 6.4.2.6.4.
The MetaDataQueueName is defined in 6.4.2.6.5.