This Service Setdefines Servicesto add and delete AddressSpace Nodesand Referencesbetween them. All added Nodescontinue to exist in the AddressSpaceeven if the Clientthat created them disconnects from the Server.
This Serviceis used to add one or more Nodesinto the AddressSpacehierarchy. Using this Service, each Nodeis added as the TargetNodeof a HierarchicalReferenceto ensure that the AddressSpaceis fully connected and that the Nodeis added as a child within the AddressSpacehierarchy (see OPC 10000-3).
When a Servercreates an instance of a TypeDefinitionNodeit shall create the same hierarchy of Nodes beneath the new Objector Variable depending on the ModellingRuleof each InstanceDeclaration. All Nodeswith a ModellingRuleof Mandatoryshall be created or an existing Nodeshall be referenced that conforms to the InstanceDeclaration. The creation of Nodes with other ModellingRulesis Serverspecific.
Table 22defines the parameters for the Service.
Table 22– AddNodes Service Parameters
Name |
Type |
Description |
Request |
|
|
requestHeader |
RequestHeader |
Common request parameters (see 7.28for RequestHeaderdefinition). |
nodesToAdd [] |
AddNodesItem |
List of Nodesto add. All Nodesare added as a Referenceto an existing Nodeusing a hierarchical ReferenceType. This structure is defined in-line with the following indented items. |
parentNodeId |
Expanded NodeId |
ExpandedNodeIdof the parent Nodefor the Reference. The ExpandedNodeIdtype is defined in 7.11. |
referenceTypeId |
NodeId |
NodeIdof the hierarchical ReferenceTypeto use for the Referencefrom the parent Nodeto the new Node. |
requestedNewNodeId |
Expanded NodeId |
Clientrequested expanded NodeIdof the Nodeto add. The serverIndexin the expanded NodeId shall be 0. If the Servercannot use this NodeId, it rejects this Nodeand returns the appropriate error code. If the Clientdoes not want to request a NodeId, then it sets the value of this parameter to the null expanded NodeId. If the Nodeto add is a ReferenceType Node, its NodeIdshould be a numeric id. See OPC 10000-3for a description of ReferenceType NodeIds. |
browseName |
QualifiedName |
The browse name of the Nodeto add. |
nodeClass |
NodeClass |
|
nodeAttributes |
Extensible Parameter NodeAttributes |
The Attributesthat are specific to the NodeClass. The NodeAttributesparameter type is an extensible parameter type specified in 7.19. A Clientis allowed to omit values for some or all Attributes. If an Attributevalue is null, the Servershall use the default values from the TypeDefinitionNode. If a TypeDefinitionNodewas not provided the Servershall choose a suitable default value. The Servermay still add an optional Attribute to the Nodewith an appropriate default value even if the Clientdoes not specify a value. |
typeDefinition |
Expanded NodeId |
NodeIdof the TypeDefinitionNodefor the Nodeto add. This parameter shall be null for all NodeClassesother than Objectand Variablein which case it shall be provided. |
|
|
|
Response |
|
|
responseHeader |
Response Header |
Common response parameters (see 7.29for ResponseHeaderdefinition). |
results [] |
AddNodesResult |
List of results for the Nodesto add. The size and order of the list matches the size and order of the nodesToAddrequest parameter. This structure is defined in-line with the following indented items. |
statusCode |
StatusCode |
StatusCodefor the Nodeto add (see 7.34for StatusCodedefinition). |
addedNodeId |
NodeId |
Serverassigned NodeIdof the added Node. Null NodeIdif the operation failed. |
diagnosticInfos [] |
DiagnosticInfo |
List of diagnostic information for the Nodesto add (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the nodesToAdd request parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request. |
Table 23defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.
Table 23– AddNodes Service Result Codes
Symbolic Id |
Description |
Bad_NothingToDo |
See Table 177for the description of this result code. |
Bad_TooManyOperations |
See Table 177for the description of this result code. |
Table 24defines values for the operation level statusCodeparameter that are specific to this Service. Common StatusCodesare defined in Table 178.
Table 24– AddNodes Operation Level Result Codes
Symbolic Id |
Description |
Bad_ParentNodeIdInvalid |
The parent node id does not to refer to a valid node. |
Bad_ReferenceTypeIdInvalid |
See Table 178for the description of this result code. |
Bad_ReferenceNotAllowed |
The reference could not be created because it violates constraints imposed by the data model. |
Bad_NodeIdRejected |
The requested node id was rejected either because it was invalid or because the Serverdoes not allow node ids to be specified by the client. |
Bad_NodeIdExists |
The requested node id is already used by another node. |
Bad_NodeClassInvalid |
See Table 178for the description of this result code. |
Bad_BrowseNameInvalid |
See Table 178for the description of this result code. |
Bad_BrowseNameDuplicated |
The browse name is not unique among nodes that share the same relationship with the parent. |
Bad_NodeAttributesInvalid |
The node Attributesare not valid for the node class. |
Bad_TypeDefinitionInvalid |
See Table 178for the description of this result code. |
Bad_UserAccessDenied |
See Table 177for the description of this result code. |
This Serviceis used to add one or more Referencesto one or more Nodes. The NodeClassis an input parameter that is used to validate that the Referenceto be added matches the NodeClassof the TargetNode. This parameter is not validated if the Referencerefers to a TargetNodein a remote Server.
In certain cases, adding new Referencesto the AddressSpaceshall require that the Serveradd new Serverids to the Server’s ServerArray Variable. For this reason, remote Serversare identified by their URI and not by their ServerArrayindex. This allows the Serverto add the remote ServerURIs to its ServerArray.
Table 25defines the parameters for the Service.
Table 25– AddReferences Service Parameters
Name |
Type |
Description |
Request |
|
|
requestHeader |
Request Header |
Common request parameters (see 7.28for RequestHeaderdefinition). |
referencesToAdd [] |
AddReferences Item |
List of Referenceinstances to add to the SourceNode. The targetNodeClassof each Referencein the list shall match the NodeClassof the TargetNode. This structure is defined in-line with the following indented items. |
sourceNodeId |
NodeId |
NodeIdof the Nodeto which the Referenceis to be added. The source Nodeshall always exist in the Serverto add the Reference. The isForward parameter can be set to FALSE if the target Nodeis on the local Serverand the source Nodeon the remote Server. |
referenceTypeId |
NodeId |
NodeIdof the ReferenceTypethat defines the Reference. |
isForward |
Boolean |
If the value is TRUE, the Server creates a forward Reference. If the value is FALSE, the Server creates an inverse Reference. |
targetServerUri |
String |
URI of the remote Server. If this parameter is not null, it overrides the serverIndexin the targetNodeId. |
targetNodeId |
Expanded NodeId |
Expanded NodeIdof the TargetNode. The ExpandedNodeIdtype is defined in 7.11. |
targetNodeClass |
NodeClass |
NodeClassof the TargetNode. The Clientshall specify this since the TargetNodemight not be accessible directly by the Server. |
|
|
|
Response |
|
|
responseHeader |
Response Header |
Common response parameters (see 7.29for ResponseHeaderdefinition). |
results [] |
StatusCode |
List of StatusCodesfor the Referencesto add (see 7.34for StatusCodedefinition). The size and order of the list matches the size and order of the referencesToAddrequest parameter. |
diagnosticInfos [] |
Diagnostic Info |
List of diagnostic information for the Referencesto add (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the referencesToAddrequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request. |
Table 26defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.
Table 26– AddReferences Service Result Codes
Symbolic Id |
Description |
Bad_NothingToDo |
See Table 177for the description of this result code. |
Bad_TooManyOperations |
See Table 177for the description of this result code. |
Table 27defines values for the resultsparameter that are specific to this Service. Common StatusCodesare defined in Table 178.
Table 27– AddReferences Operation Level Result Codes
Symbolic Id |
Description |
Bad_SourceNodeIdInvalid |
See Table 178for the description of this result code. |
Bad_ReferenceTypeIdInvalid |
See Table 178for the description of this result code. |
Bad_ServerUriInvalid |
See Table 177for the description of this result code. |
Bad_TargetNodeIdInvalid |
See Table 178for the description of this result code. |
Bad_NodeClassInvalid |
See Table 178for the description of this result code. |
Bad_ReferenceNotAllowed |
The reference could not be created because it violates constraints imposed by the data model on this Server. |
Bad_ReferenceLocalOnly |
The reference type is not valid for a reference to a remote Server. |
Bad_UserAccessDenied |
See Table 177for the description of this result code. |
Bad_DuplicateReferenceNotAllowed |
The reference type between the nodes is already defined. |
Bad_InvalidSelfReference |
The Serverdoes not allow this type of self reference on this node. |
This Serviceis used to delete one or more Nodesfrom the AddressSpace.
When any of the Nodesdeleted by an invocation of this Serviceis the TargetNodeof a Reference, then those Referencesare left unresolved based on the deleteTargetReferencesparameter.
When any of the Nodesdeleted by an invocation of this Serviceis being monitored, then a Notificationcontaining the status code Bad_NodeIdUnknown is sent to the monitoring Clientindicating that the Nodehas been deleted.
Table 28defines the parameters for the Service.
Table 28– DeleteNodes Service Parameters
Name |
Type |
Description |
Request |
|
|
requestHeader |
Request Header |
Common request parameters (see 7.28for RequestHeaderdefinition). |
nodesToDelete [] |
DeleteNodes Item |
List of Nodesto delete. This structure is defined in-line with the following indented items. |
nodeId |
NodeId |
|
deleteTargetReferences |
Boolean |
A Booleanparameter with the following values: TRUEdelete Referencesin TargetNodesthat Referencethe Nodeto delete. FALSEdelete only the Referencesfor which the Nodeto delete is the source. The Servercannot guarantee that it is able to delete all Referencesfrom TargetNodesif this parameter is TRUE. |
|
|
|
Response |
|
|
responseHeader |
Response Header |
Common response parameters (see 7.29for ResponseHeaderdefinition). |
results [] |
StatusCode |
List of StatusCodesfor the Nodesto delete (see 7.34for StatusCodedefinition). The size and order of the list matches the size and order of the list of the nodesToDeleterequest parameter. |
diagnosticInfos [] |
Diagnostic Info |
List of diagnostic information for the Nodesto delete (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the nodesToDeleterequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request. |
Table 29defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.
Table 29– DeleteNodes Service Result Codes
Symbolic Id |
Description |
Bad_NothingToDo |
See Table 177for the description of this result code. |
Bad_TooManyOperations |
See Table 177for the description of this result code. |
Table 30defines values for the resultsparameter that are specific to this Service. Common StatusCodesare defined in Table 178.
Table 30– DeleteNodes Operation Level Result Codes
Symbolic Id |
Description |
Bad_NodeIdInvalid |
See Table 178for the description of this result code. |
Bad_NodeIdUnknown |
See Table 178for the description of this result code. |
Bad_UserAccessDenied |
See Table 177for the description of this result code. |
Bad_NoDeleteRights |
See Table 178for the description of this result code. |
Uncertain_ReferenceNotDeleted |
The Serverwas not able to delete all target references. |
This Serviceis used to delete one or more Referencesof a Node.
When any of the Referencesdeleted by an invocation of this Serviceare contained in a View, then the ViewVersion Propertyis updated if this Propertyis supported.
Table 31defines the parameters for the Service.
Table 31– DeleteReferences Service Parameters
Name |
Type |
Description |
Request |
|
|
requestHeader |
RequestHeader |
Common request parameters (see 7.28for RequestHeaderdefinition). |
referencesToDelete [] |
DeleteReferences Item |
List of Referencesto delete. This structure is defined in-line with the following indented items. |
sourceNodeId |
NodeId |
|
referenceTypeId |
NodeId |
NodeIdof the ReferenceTypethat defines the Referenceto delete. |
isForward |
Boolean |
If the value is TRUE, the Server deletes a forward Reference. If the value is FALSE, the Server deletes an inverse Reference. |
targetNodeId |
ExpandedNodeId |
NodeIdof the TargetNodeof the Reference. If the Serverindex indicates that the TargetNodeis a remote Node, then the nodeIdshall contain the absolute namespace URI. If the TargetNodeis a local Nodethe nodeIdshall contain the namespace index. |
deleteBidirectional |
Boolean |
A Booleanparameter with the following values: TRUEdelete the specified Referenceand the opposite Referencefrom the TargetNode. If the TargetNodeis located in a remote Server, the Serveris permitted to delete the specified Referenceonly. FALSEdelete only the specified Reference. |
|
|
|
Response |
|
|
responseHeader |
ResponseHeader |
Common response parameters (see 7.29for ResponseHeaderdefinition). |
results [] |
StatusCode |
List of StatusCodesfor the Referencesto delete (see 7.34for StatusCodedefinition). The size and order of the list matches the size and order of the referencesToDeleterequest parameter. |
diagnosticInfos [] |
DiagnosticInfo |
List of diagnostic information for the Referencesto delete (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the referencesToDeleterequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request. |
Table 32defines the Serviceresults specific to this Service. Common StatusCodesare defined in Table 177.
Table 32– DeleteReferences Service Result Codes
Symbolic Id |
Description |
Bad_NothingToDo |
See Table 177for the description of this result code. |
Bad_TooManyOperations |
See Table 177for the description of this result code. |
Table 33defines values for the resultsparameter that are specific to this Service. Common StatusCodesare defined in Table 178.
Table 33– DeleteReferences Operation Level Result Codes
Symbolic Id |
Description |
Bad_SourceNodeIdInvalid |
See Table 178for the description of this result code. |
Bad_ReferenceTypeIdInvalid |
See Table 178for the description of this result code. |
Bad_ServerIndexInvalid |
The Serverindex is not valid. |
Bad_TargetNodeIdInvalid |
See Table 178for the description of this result code. |
Bad_UserAccessDenied |
See Table 177for the description of this result code. |
Bad_NoDeleteRights |
See Table 178for the description of this result code. |