Free OPC UA Client: 6 Tools Compared and Tested

By | March 14, 2026

You have an OPC UA server on a PLC, and you need to confirm it exposes what the vendor promised. So you need a client.

The good OPC UA clients are free. That is not the hard part. The hard part is that your first connection almost always fails — and not for a reason any tool comparison mentions.

This guide covers the six clients worth installing, and the certificate problem that stops most people before they read a single value.

An OPC UA client connects to an OPC UA server and interacts with its data: browsing the address space, reading and writing node values, calling methods, and subscribing to value changes. The protocol is defined in IEC 62541.

What Actually Blocks You: The Certificate Handshake

OPC UA is not Modbus. Entering an IP address and a port is not enough. The protocol requires mutual X.509 certificate authentication as soon as you leave the no-security mode.

Here is what happens on a first attempt:

  1. The client requests the endpoint list from the server
  2. The client receives the server certificate and refuses to trust it
  3. You accept the server certificate on the client side
  4. The client sends its own certificate — and the server rejects it
  5. The client certificate lands in a rejected folder on the server
  6. You have to move it manually into the trusted folder

Step 6 is the one nobody documents. Until you do it, you loop.

The standard file-based certificate store uses four folders: own for your own certificate and private key, trusted for certificates you accept, issuers for intermediate CAs, and rejected for everything that failed. Both ends have their own store. A connection needs each side to trust the other.

Error Codes and What They Really Mean

Status codeReal causeFix
BadCertificateUntrustedCertificate is not in the trust storeMove it from rejected to trusted — on both ends
BadCertificateHostNameInvalidYou connected by IP, the certificate holds a hostnameUse the exact hostname, or regenerate the certificate
BadSecurityChecksFailedSecurity policy not supported by one sideCheck the endpoint list before choosing
BadIdentityTokenRejectedWrong user credentials, or anonymous access refusedCheck which authentication modes the server accepts
BadTcpEndpointUrlInvalidMalformed URLUse opc.tcp://host:4840
BadTimeoutPort filtered, or server unreachableCheck the firewall on 4840

The Method That Works

Always start with SecurityPolicy: None and MessageSecurityMode: None. If that connects, the network path and the server are fine. You have eliminated the firewall, the address, and the port in one step.

Only then move up to Basic256Sha256 or Aes256_Sha256_RsaPss and deal with certificates. Many servers disable no-security mode in production, but during commissioning it is almost always available — and it is your best diagnostic tool.

One trap worth knowing: Basic128Rsa15 and Basic256 are deprecated in the specification. Some older servers offer only those, and some newer clients refuse to connect to them. If you see no compatible endpoint at all, that is usually why.

Comparison Table

ClientInterfacePlatformLicenseStrength
UaExpertGUIWindows, LinuxFreeware, registrationIndustry reference, plugin-based
Prosys OPC UA ClientGUIWindows, Linux, macOSFreewareBest connection diagnostics
Softing OPC UA Demo ClientGUIWindowsFreewareLightweight, fast sanity check
opcua-client-gui (FreeOpcUa)GUICross-platformGPL-3.0Open source, Python ecosystem
opcua-commanderTerminalCross-platformMITWorks over SSH, no GUI needed
Matrikon OPC UA ExplorerGUIWindowsFreewareUseful alongside OPC Classic

The GUI Clients

UaExpert

UaExpert is the reference tool. If you install only one client, install this one.

It browses the address space, reads and writes node values, calls methods, manages subscriptions, and covers the Data Access, Alarms & Conditions, and Historical Access service sets. Plugins add XML NodeSet export, performance testing, and data logging.

The interface is built on Qt and split into panes: project, address space, attributes, references, and a central area for specialized views such as DataAccess, Alarms, and Historical Trend.

Two practical notes. Registration is required to download, but it is free with no functional limits. And the certificate store sits in the application configuration folder — that is where you go to find the client certificate the server needs to trust.

Vendor documentation from Siemens and ABB routinely names UaExpert as the tool to validate an OPC UA server, which makes it the de facto interoperability reference.

Prosys OPC UA Client

Prosys OPC UA Client discovers servers, lists endpoints, lets you pick the security policy and message mode, then browses the address space. It reads and writes values on demand or cyclically, configures subscriptions, calls server methods, and reads historical data when the server provides it.

What sets it apart is its logging and diagnostic views. When a connection fails, it tells you why in usable terms, where other clients return a raw status code. For troubleshooting between an OT device and a SCADA system or historian, that is where it saves the most time.

Prosys also ships a free Simulation Server, covered further down. Together they make a complete test bench with no hardware at all.

Softing OPC UA Demo Client

Softing OPC UA Demo Client is a free demonstration client for validating a connection and browsing an address space.

It is lighter than UaExpert and less complete. Keep it for a quick sanity check, or as a second opinion when one client refuses a connection another accepts — implementations do not react identically to a badly configured server, and comparing two of them narrows the problem fast.

opcua-client-gui

opcua-client-gui is a PyQt graphical client from the FreeOpcUa project, built on the Python library. It handles browsing, subscriptions, and variable writes.

Its value is not the interface, which is rougher than UaExpert. Its value is that you are already inside the Python ecosystem: when manual testing stops being enough, you move to a script using the same library, with nothing new to learn.

License is GPL-3.0 for the GUI tools and LGPL-3.0 for the core libraries. That distinction matters if you ship code inside a product delivered to a customer.

opcua-commander

opcua-commander is a terminal-based client built on node-opcua, under the MIT license.

The use case is narrow and badly underrated: you are on an SSH session into a Linux gateway inside a cabinet, with no graphical desktop, and you need to confirm an OPC UA server is answering. No GUI client helps you there. This one runs in the terminal.

On a remote site, that can save a trip.

Matrikon OPC UA Explorer

Matrikon OPC UA Explorer is a free test client for OPC UA servers, from Honeywell.

Do not confuse it with Matrikon OPC Explorer, which is an OPC Classic tool — DA, HDA, and A&E over COM/DCOM — and does not speak OPC UA at all. The two products carry nearly identical names and come from the same vendor. The mix-up is extremely common, including in tool roundups.

If your plant mixes OPC Classic and OPC UA, having both tools from one vendor keeps things simple.

Free SDKs for Developers

When manual testing stops being enough, you write code. Four free, serious stacks:

SDKLanguageLicenseNote
open62541CMPL 2.0Very light, targets embedded
Eclipse MiloJavaEPLClient and server, Eclipse ecosystem
opcua-asyncioPythonLGPLSuccessor to python-opcua, async
node-opcuaJavaScriptMITBasis for opcua-commander

One thing to watch: python-opcua is deprecated. Plenty of tutorials still reference it. Use opcua-asyncio for anything new.

MPL 2.0 and MIT are the most permissive of the four for commercial products. LGPL and EPL need more attention before you build a product on them.

Testing Without Hardware

You do not always have a PLC in front of you. Three free OPC UA servers for working dry:

Prosys OPC UA Simulation Server — free, exposes a full address space with values that move. The quickest to get running.

open62541 demo server — included in the project examples. Good for testing an embedded stack.

opcua-asyncio — a few lines of Python expose a server with your own nodes. Useful when you want to reproduce the exact structure of a real device.

This is also the right way to practice with certificates. You break and repair the security configuration as many times as you need, without touching a live installation.

What to Check Before You Choose

CapabilityWhy it matters
Endpoint discoverySee what the server actually offers before attempting a connection
Certificate store accessWithout reachable trusted and rejected folders, you are stuck
SubscriptionsSee value changes, not just on-demand reads
Method callsNeeded to test a complete information model
Historical accessIf the server exposes a historian
NodeSet XML exportTo document or reproduce an address space
Authentication modesAnonymous, username and password, or user certificate

The first three are non-negotiable. The rest depends on your work.

What Free Clients Do Not Do

No industrial data collection. A test client is not a data server. Feeding a historian or a SCADA system continuously needs a gateway or a platform.

No advanced scripting in the GUI clients. Replaying a test sequence means dropping to an SDK.

No support. Nobody to call when a connection refuses to establish the night before a commissioning.

No certificate fleet management. On an installation with twenty OPC UA servers, managing trust stores by hand becomes unworkable. That is the problem commercial certificate management infrastructure solves, and it is a real one rather than a sales argument.

For testing, troubleshooting, learning, and development, free is enough. Engineers who work in OPC UA daily generally keep UaExpert and one SDK, and nothing else.

Frequently Asked Questions

What is the best free OPC UA client?

UaExpert for general use. Prosys OPC UA Client if connection diagnostics are your priority. opcua-commander if you work over SSH with no graphical desktop.

Why does my OPC UA connection fail on the first try?

Almost always the certificate. The server rejects the client certificate and drops it in a rejected folder. You have to move it to trusted on the server side. Test in None security mode first to isolate the problem.

What port does OPC UA use?

4840 by default, over TCP, with URLs in the form opc.tcp://host:4840. Many devices use a different port, so check the vendor documentation.

Is UaExpert really free?

Yes. Registration on the Unified Automation site is required to download, but there is no license to buy and no functional limitation.

Can I test OPC UA without a PLC?

Yes. Prosys OPC UA Simulation Server, the open62541 demo server, or a few lines with opcua-asyncio will give you a test server.

What is the difference between an OPC UA client and an OPC Classic client?

OPC Classic — DA, HDA, A&E — runs on COM/DCOM and works only between Windows machines. OPC UA is platform-independent, encrypted, and runs over TCP. The tools are not interchangeable, despite some product names being almost identical.

Which security policy should I use?

Basic256Sha256 as a minimum, Aes256_Sha256_RsaPss if the server offers it. Basic128Rsa15 and Basic256 are deprecated and should not be used in production.

Do I need a certificate for every client machine?

Yes. Each client instance generates its own certificate, and each one has to be trusted by the server. Reinstalling a client on a new laptop means repeating the trust step.

Author: Zakaria El Intissar

I've spent 13 years in power system automation, electrical protection, and SCADA communication, as an automation and industrial computing engineer. ScadaProtocols.com is where I turn what I've learned on site into plain guides and working tools — so other engineers can decode, analyze, and troubleshoot industrial communication protocols without the guesswork.

Leave a Reply

Your email address will not be published. Required fields are marked *