OPC UA Interoperability Testing with OpcCmd
From OPC Labs Knowledge Base
This article is mainly for internal usage.
Session
- CreateSession() over an insecure channel with UA TCP and SecurityPolicy =None
- Example:
uaClient read opc.tcp://opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointAllowedMessagedSecurity SecurityNone
- CreateSession() over a secure channel with UA TCP and SecurityPolicy=Basic128Rsa15 where the key length is minimum 2048.
- Example:
uaClient read opc.tcp://opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointSecurityPolicyDisplayName Basic128Rsa15
- ActivateSession() with user identity = username/password
- Example:
uaClient read opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer i=2255 --EndpointUser appadmin:demo
- ActivateSession() with user identity = anonymous
- Example:
uaClient read //opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointAnonymous True
- However, the anonymous identity is the default, and as such is used in other tests unless other identity is explicitly specified.
- ActivateSession - change user in an existing session.
- Not supported (by API).
- Use CloseSession() to end session. If possible, verify that the following service calls to the session are rejected.
- Example:
uaClient --!option AmbientOutput=[Boolean]True --ConnectionMonitoring
read opc.tcp://opcua.demo-this.com:51210/UA/SampleServer i=2255
- Then, keep pressing Enter until the ambient disconnection events are displayed.
- Create and use multiple sessions.
- Example:
!option AmbientOutput [Boolean]True
uaClient --ConnectionMonitoring
getService uaClientConnectionControl lockConnection //opcua.demo-this.com:51210/UA/SampleServer
\uaClient --ConnectionMonitoring read //opcua.demo-this.com:51210/UA/SampleServer i=2255
- CreateSession() with an application instance certificate
- Example:
uaClient read opc.tcp://opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointAllowedMessagedSecurity Secure
- CreateSession() over a secure channel with HTTPS and SecurityPolicy =None.
- Example:
uaClient read https://opcua.demo-this.com:51212/UA/SampleServer i=2255 --EndpointAllowedMessagedSecurity SecurityNone
- ActivateSession() with user identity = X509 certificate
- Example:
uaClient read //opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointCertificateFileName MyCertificate.pfx
- CreateSession() over a secure channel with UA TCP and SecurityPolicy=Basic256Sha256
- Example:
uaClient read opc.tcp://opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointSecurityPolicyDisplayName Basic256Sha256
- CreateSession() over a secure channel with UA TCP and SecurityPolicy=Aes128-Sha256-RsaOaep
- Example:
uaClient read opc.tcp://opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointSecurityPolicyDisplayName Aes128-Sha256-RsaOaep
- CreateSession() over a secure channel with UA TCP and SecurityPolicy=Aes256-Sha256-RsaPss
- Example:
uaClient read opc.tcp://opcua.demo-this.com:51210/UA/SampleServer i=2255 --EndpointSecurityPolicyDisplayName Aes256-Sha256-RsaPss
View Services
- Call Browse() on a single node in the address space. Repeat with other nodes.
- (tbd)
- Call Browse() by specifying more than one node in a single call. Walk through the address space.
- Not supported (by OpcCmd).
- Call Browse() using various Reference filters; e.g. only hierarchical references.
- (tbd)
- Call Browse() using various NodeClass filters (e.g. to return Variable nodes only).
- (tbd)
- Call Browse() with a filter to reduce the result information (e.g. omit BrowseName and ReferenceType).
- (tbd)
- [obsolete] BrowseNext (Continuation Point)
- Not supported.
- TranslateBrowsePathToNodeId to determine the NodeID of components (e.g. properties)
- (tbd)
- [obsolete] TranslateBrowsePathToNodeId for non-hierarchical References
- Not supported.
- Register()/UnregisterNodes() for one or more standard UA-defined Nodes (e.g. "Server") in a single call.
- (tbd)
- Register()/UnregisterNodes() for one or more vendor-defined Nodes in a single call.
- (tbd)
- Browse with Views.
- Not supported (by API).
Attribute Services
- Read() attributes - as supported by the Client - for a standard UA-defined node (e.g. "Server"). Repeat with other nodes.
- (tbd)
- Read() all supported attributes for a given vendor node in a single call. Vary the vendor nodes.
- (tbd)
- Read() all supported attributes on a given node while specifying a MaxAge value.
- (tbd)
- Read() the value attribute while specifying an encoding (not "default"). Vary the encoding.
- (tbd)
- Read() a value that is an array while varying the IndexRange to include specific indexes, the first X, the last X, the middle X. Vary the number of dimensions (e.g. "1:2,1:2" or "1:2,1:2,1:2" etc.) - if available.
- (tbd)
- Write() one or more Value attributes (WriteAccess permitted) for one or more nodes in a single call. Vary nodes.
- (tbd)
- Write() a value that is an array using the IndexRange to vary the number of elements, e.g. all, first X, last X, middle X. Repeat for multi-dimension arrays, if available.
- (tbd)