Tool · Simulator
ConsoleReferenceServer
| Vendor | OPC Foundation (UA-.NETStandard) |
|---|---|
| Cost | Open source, part of the reference implementation |
| Platforms | Cross-platform .NET; container image also published |
| Type | Simulator |
ConsoleReferenceServer is the sample server from the OPC Foundation's UA-.NETStandard reference implementation. Because it is the reference stack, its behaviour is the closest thing to a normative answer available in software, and it ships a compliance-test mode intended to be exercised by the Compliance Test Tool.
What you actually use it for
- Settling arguments about correct behaviour: if the reference server does something, that is strong evidence it is correct.
- Testing a client against a server configured for compliance testing, including the strict paths a permissive simulator hides.
- Developing against the same stack that certification labs and the CTT exercise, before your own server goes anywhere near a lab.
- Running a container-based server for CI where reference behaviour matters more than machine realism.
- Studying a real server implementation, including its certificate validation and alarm handling, in source form.
Walkthrough
- Get the reference stack and build or pull the sampleThe server lives in the UA-.NETStandard repository and is also published as a container. Building from source needs a .NET SDK; the container avoids that. Note the version you are on, because reference behaviour changes across major versions.
- Start it and read the advertised endpointsConnect a client and list the EndpointDescriptions. The reference server advertises a considered set of policies and modes, which is itself a useful example of what a correct advertisement looks like.
- Work through the certificate validation properlyThe reference stack implements the specified validation, including the suppressible and non-suppressible cases. Use its rejected store and trust list rather than an auto-accept switch; this is the server on which learning the workflow pays off.
- Use the compliance test configuration when you want strict behaviourThe stack ships a dedicated configuration selected by a compliance-test flag, intended for CTT runs. Testing your client against that configuration surfaces assumptions a lenient server would let pass.
- Exercise the alarms and history areasThe reference server implements a substantial alarms and conditions surface. Use it to test event filters, condition refresh and acknowledgement flows that most simulators do not offer.
- Read the ServerProfileArray and take the lessonRead the server's advertised profiles and compare them against what it demonstrably does. Over-advertising facets is a leading cause of failed certification, and even the reference server's advertised set has been tracked as an open issue rather than assumed perfect.
What it will not do
- No machine semantics. It is a specification demonstrator, not a plant simulator, so it teaches you nothing about companion specifications.
- Requires a .NET SDK to build from source, and the container is versioned to the release train.
- Reference behaviour is not the same as vendor behaviour: a client that works here can still fail against a PLC-embedded server, which is a good reason to test both.
- Its configuration surface is large, and a misconfiguration produces behaviour you may wrongly attribute to the specification.
- It is not a performance reference for sizing production servers.
Alternatives
| Instead of this | When |
|---|---|
| umati-sample-server | When you need companion specification semantics rather than reference-stack behaviour. |
| microsoft-opc-plc-simulator | When you want a simpler container with PLC-like tags for pipeline work. |
| compliance-test-tool-uactt | The other half of the compliance story: this is the server, the CTT is the test harness. |
| prosys-simulation-server | When a GUI and interactive node creation matter more than reference fidelity. |
Verify before you rely on this: The reference stack has a stable line and a next-major preview in parallel, and behaviour, configuration file names and the compliance-test flag differ between them. Confirm which version you are running, what the current compliance-test configuration is called and which .NET versions it supports in the repository's own documentation, and check the dual licence terms before you reuse its code in a product.
Related tools
Related status codes
Concepts on this page
Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.