Using OpcCmd Utility as OPC UA Client

From OPC Labs Knowledge Base

This article describes how to use the OPC Labs OpcCmd utility to act as an OPC UA client.

For general information about the OpcCmd tool, see Category:OpcCmd Utility.

Commands, Arguments and Options

Command: uaClient browse

Setting a "browse chunk" size:

uaClient 
set IsolatedParameters.SessionParameters.MaximumReferencesPerBrowseNode [Int32]400
browse opc.tcp://localhost:49320 nsu=KEPServerEX;ns=2;s=Simulation.Functions

Command: uaClient subscribe

OpcCmd -i
uaClient
subscribe opc.tcp://opcua.demo-this.com:51210/UA/SampleServer nsu=http://test.org/UA/Data/;i=10849

Obtaining server condition statistics:

  1. Enter uaClient --ConnectionMonitoring.
  2. Enter subscribe opc.tcp://opcua.demo-this.com:51210/UA/SampleServer nsu=http://test.org/UA/Data/;i=10849.
  3. Optionally terminate the command prematurely by pressing X.
  4. Wait for approx. 10 seconds.
  5. Enter events?, or shortened: ev?. Note the index of the last event (in the "[]" column).
  6. Enter events? --!extractElement <nn> --!extractMember EventArgs.Statistics.StateDictionary, or shortened: ev? -!xe <nn> -!xm EventArgs.Statistics.StateDictionary where <nn> is the index of the last event, taken in previous step.

Sample output:

Events (extracting: element 77, member 'eventargs.statistics.statedictionary') (sequence): 5 element(s)
╒═════════════╤═════╤════════════╤════════════╤════════════╤══════════════════╤════════════╤═══════════════════╤══════════════════╤══════════════════╤══════════════════╤══════════════════╕
│[]           │Enter│First Enter │Last Cycle  │Last Cycle  │Last Cycle Time   │Last Enter  │Current Active Time│Accumulated Time  │Minimum Time Span │Average Time Span │Maximum Time Span │
│             │Count│Time Local  │Enter Time  │Leave Time  │Span              │Time Local  │Span               │Span              │                  │                  │                  │
│             │     │            │Local       │Local       │                  │            │                   │                  │                  │                  │                  │
╞═════════════╪═════╪════════════╪════════════╪════════════╪══════════════════╪════════════╪═══════════════════╪══════════════════╪══════════════════╪══════════════════╪══════════════════╡
│Connected    │    1│18:21:30.691│18:21:30.691│18:22:52.225│0:00:01:21.5320000│18:21:30.691│0:00:00:00.0000000 │0:00:01:21.5320000│0:00:01:21.5320000│0:00:01:21.5320000│0:00:01:21.5320000│
│Connecting   │    1│18:21:29.928│18:21:29.928│18:21:30.691│0:00:00:00.7650000│18:21:29.928│0:00:00:00.0000000 │0:00:00:00.7650000│0:00:00:00.7650000│0:00:00:00.7650000│0:00:00:00.7650000│
│Disconnected │    2│18:21:29.841│18:21:29.841│18:21:29.928│0:00:00:00.0780000│18:22:52.400│0:00:00:00.0000000 │0:00:00:00.0780000│0:00:00:00.0780000│0:00:00:00.0780000│0:00:00:00.0780000│
│Disconnecting│    1│18:22:52.225│18:22:52.225│18:22:52.400│0:00:00:00.1870000│18:22:52.225│0:00:00:00.0000000 │0:00:00:00.1870000│0:00:00:00.1870000│0:00:00:00.1870000│0:00:00:00.1870000│
│Unconnected  │    2│18:21:29.841│18:21:29.841│18:21:30.691│0:00:00:00.8430000│18:22:52.225│0:00:00:00.1870000 │0:00:00:00.8430000│0:00:00:00.8430000│0:00:00:00.8430000│0:00:00:00.8430000│
╘═════════════╧═════╧════════════╧════════════╧════════════╧══════════════════╧════════════╧═══════════════════╧══════════════════╧══════════════════╧══════════════════╧══════════════════╛