OPC Foundation UA .NET Standard Reference Client
Introduction
The console reference client can be configured using several console parameters. Some of these parameters are explained in more detail below.
To see all available parameters call console reference client with the parameter -h.
Supported transport profiles
The client picks the wire transport automatically from the serverUrl
scheme. The OPC UA spec aliases the URL scheme to the
TransportProfileUri
on the negotiated endpoint:
| URL scheme | TransportProfileUri | OPC UA Part 6 reference |
|---|---|---|
opc.tcp:// |
uatcp-uasc-uabinary |
§7.4.2 |
opc.https:// (or https://) with binary body |
https-uabinary |
§7.4.4 |
opc.https:// (or https://) with application/opcua+uajson body |
https-uajson |
§7.4.5 |
opc.wss:// (or wss://) with opcua+uacp sub-protocol |
wss-uasc-uabinary |
§7.5.2 |
opc.wss:// (or wss://) with opcua+uajson sub-protocol |
wss-uajson |
§7.5.2 |
Examples:
# UA-TCP (default)
dotnet ConsoleReferenceClient.dll opc.tcp://localhost:62541/Quickstarts/ReferenceServer
# WSS+uacp (binary UA SecureChannel over TLS WebSocket)
dotnet ConsoleReferenceClient.dll opc.wss://localhost:62543/Quickstarts/ReferenceServer
# HTTPS (binary)
dotnet ConsoleReferenceClient.dll opc.https://localhost:62543/Quickstarts/ReferenceServer
The reference server (ConsoleReferenceServer) advertises the
opc.tcp://, opc.https:// and opc.wss:// endpoints by default; see
docs/Transports.md for the full server
configuration story (TLS certificates, mutual TLS, JSON sub-protocol
restrictions, etc.).
Historical Access
Use --historian against the reference server to run the Part 11 sample
workflow:
dotnet ConsoleReferenceClient.dll --historian --autoaccept --nosecurity \
opc.tcp://localhost:62541/Quickstarts/ReferenceServer
The workflow uses ISession.Historian() to discover server and per-node
configuration, follow paged raw and modified reads, read at-time and
representative aggregate families, perform point and range deletes, and
round-trip annotation Insert/Replace/Update/Remove batches. It also exercises
generic KeyValuePair StructuredHistoryData through raw, modified, at-time,
Insert, Replace, Update, and Remove operations, plus historical event
insert/replace/update/delete. The workflow triggers and verifies automatic
server-event capture, demonstrates server-generated EventIds, and releases
continuation points automatically when an await foreach loop completes or
exits early.
Reverse Connect
The OPC UA reverse connect feature allows an OPC UA server to initiate the connection to a client, rather than the traditional model where clients connect to servers. This is particularly useful in scenarios where the server is behind a firewall or NAT, making it difficult for clients to directly connect to it.
How to use Reverse Connect
To enable reverse connect mode, specify the client endpoint URL using the --rc or --reverseconnect parameter:
dotnet ConsoleReferenceClient.dll --rc=opc.tcp://localhost:65300 opc.tcp://localhost:62541/Quickstarts/ReferenceServer
The client will start a reverse connect listener on the specified endpoint (e.g., opc.tcp://localhost:65300) and wait for the server to connect to it.
Example: Client and Server with Reverse Connect
-
Start the client with reverse connect listener on port 65300:
dotnet ConsoleReferenceClient.dll --rc=opc.tcp://localhost:65300 opc.tcp://localhost:62541/Quickstarts/ReferenceServer -
In a separate terminal, start the server with reverse connect to the client:
dotnet ConsoleReferenceServer.dll --rc=opc.tcp://localhost:65300 -a
The server will establish a reverse connection to the client endpoint, and the client will use this connection to communicate with the server.
How to specify User Identity
Username & Password
Specify as console parameters:
-un YourUsername
-up YourPassword
Certificate
Place your user certificate in the TrustedUserCertificatesStore (the path can be found in the client configuration XML). Make sure to include an accessible private key with the certificate.
Specify console parameters:
-uc Thumbprint (of the user certificate to select)
-ucp Password (of the user certificates private key (optional))