Tool · Simulator
Prosys Simulation Server
| Vendor | Prosys OPC |
|---|---|
| Cost | Free tier widely used; current terms and any limits must be confirmed with the vendor |
| Platforms | Cross-platform Java (Windows, Linux, macOS) |
| Type | Simulator |
The Prosys OPC UA Simulation Server is a free, widely used desktop simulator. It serves a configurable address space with simulated values, supports security and user authentication, and is the usual answer when you need a writable OPC UA server on your own machine to develop a client against.
What you actually use it for
- Developing a client against a server you fully control, including writes, which the read-only public servers cannot test.
- Practising the certificate trust workflow end to end, because you own both the client and the server trust lists.
- Testing user authentication paths, including anonymous versus username and password, and the failures each produces.
- Creating nodes of specific data types to reproduce a type-mismatch problem deliberately.
- Training and demonstrations where a predictable, local server matters more than realistic machine semantics.
Walkthrough
- Install and note the endpoint it advertisesStart the server and read the endpoint URL from its interface. Check the hostname in that URL: if it advertises a name your client cannot resolve, you will meet a hostname or endpoint-URL failure that has nothing to do with the server itself.
- Connect with security None firstProve the route with an unsecured anonymous session from your client, then move up. Diagnosing security against a server you have not yet reached unsecured wastes time.
- Do the certificate exchange in both directionsConnect on a signed and encrypted endpoint, let the client be rejected, then move the client certificate from the server's rejected store to its trusted store and trust the server certificate in the client. Doing this once by hand on a server you own is the cheapest way to learn the workflow.
- Create nodes with the data types you care aboutAdd simulated variables with the specific DataType, ValueRank and access level you need to test. This is where you reproduce a write that should fail with a type mismatch, or a node that should not be writable at all.
- Enable user authentication and test the rejection pathsConfigure a username and password, then connect with wrong credentials on purpose so your client's error handling is exercised against a real rejection rather than a mock.
- Test subscription behaviour and revisionRequest a fast publishing interval and a small queue size, and observe what the server revises them to. Clients that assume they got what they asked for are a common cause of missed data in production.
What it will not do
- It simulates values, not machines. There are no companion specification semantics unless you model them yourself, so it will not teach you anything about a real machinery address space.
- Free-tier limits on node counts, session counts or runtime may apply and have varied between versions.
- Java runtime dependency and a desktop-oriented product, so it is not the natural choice for a headless CI service.
- Historical access, alarms and PubSub coverage is limited compared with a production server or the reference server.
- Being permissive and well-behaved, it will not reproduce the quirks of a PLC-embedded server, which is often what you actually need to test against.
Alternatives
| Instead of this | When |
|---|---|
| umati-sample-server | When you need real companion specification semantics rather than arbitrary simulated tags. |
| microsoft-opc-plc-simulator | When you need a container-friendly, PLC-shaped simulator for publisher and pipeline testing. |
| asyncua-uaserver-populate | When one command in a Python environment is enough and you want no installer at all. |
| consolereferenceserver | When the reference stack's own behaviour, including its compliance test configuration, is what you need to test against. |
Verify before you rely on this: Whether the simulation server is still free, what limits the free tier imposes on nodes, sessions or runtime, which Java version it needs and which platforms are supported are all vendor-controlled and have changed between releases. Confirm all of it with Prosys before you rely on it for a course, a demo or a customer deliverable.
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.