OPC UA for .NET —
Your code. Your rules.
Client and server SDKs that reduce OPC UA development to what matters: your business logic. Less protocol, more results — from proof of concept
to 24/7 operation.
Less protocol.
More business logic.
From connection to result — in so few lines you'll wonder
where the rest is.
// Connect and read a value
var client = new OpcClient("opc.tcp://myserver:4840");
client.Connect();
var temperature = client.ReadNode("ns=2;s=Temperature");
Console.WriteLine($"Temperature: {temperature} °C");
// Subscribe to changes
client.SubscribeDataChange("ns=2;s=Temperature",
(sender, e) => Console.WriteLine(
$"New: {e.Item.Value}"
));
client.Disconnect();
Read, write, subscribe to data — without a degree in OPC UA.
From new to ReadNode is exactly three lines. No certificate configuration, no session management, no endpoint discovery — the SDK takes care of it.
// Start the server and expose data
var temperatureNode = new OpcDataVariableNode<double>(
name: "Temperature",
value: 21.5
);
var server = new OpcServer(temperatureNode);
server.Start();
// Update values dynamically
while (true)
{
temperatureNode.Value = ReadSensor();
temperatureNode.ApplyChanges(server.SystemContext);
Thread.Sleep(1000);
}
Your system as an OPC UA server — in minutes, not months.
Define data points, methods and events with the same API feel you know from .NET. The server handles sessions, security and discovery in the background — and starts on opc.tcp://localhost:4840 by default.
// Companion SDK: your machine as an ISA-95 JobManager
// NuGet: Opc.UaFx.Advanced.ISA95.JobControl
public class MyMachine() : OpcISA95JobManager(
new OpcISA95JobOrderReceiver(),
new OpcISA95JobResponseProvider())
{
public override OpcISA95JobOrderMethodResults Start(
OpcContext context,
string jobOrderID,
OpcText[] comment)
{
// Your logic: start the job, persist state, ...
Console.WriteLine($"MES is starting job {jobOrderID}");
return base.Start(context, jobOrderID, comment);
}
protected override OpcISA95JobResponse CreateJobResponse(
OpcISA95JobOrder jobOrder,
OpcISA95State[] jobStates)
{
return new OpcISA95JobResponse { JobOrderID = jobOrder.JobOrderID, JobState = jobStates };
}
}
Industry standards as ready-made Co-SDKs — UMATI-compliant.
OPC UA Companion Standards such as Machinery, PackML, Robotics or ISA-95 are available as separate Companion SDKs and integrate seamlessly into your server application. The Essential bundle — with Machinery, ISA-95 and three more standards — is already included for subscription customers.
Six reasons that make the difference
Each of these points addresses a real problem that developer teams run into on OPC UA projects.
Time-to-market in sprints, not quarters
Up to 90% less code compared to the OPC Foundation Stack. From NuGet install to proof of concept in hours — the API abstracts the OPC UA stack so your team can focus on business logic.
Royalty-free — one license, unlimited applications
Build as many OPC UA applications as you like. No per-unit licenses, no runtime fees, no hidden costs per deployment.
Industrial reliability — 24/7/365
Stable in three-shift operation, automatic reconnect on connection drops, and large requests split automatically according to the server's limits.
Cross-platform with .NET
Windows, Linux, macOS, Docker, Raspberry Pi, Siemens IOT2050. Runs on .NET Framework 4.7.2 and later and on .NET (Core); via .NET Standard 2.0 also on further platforms such as Mono and Unity.
Support from the developers — not a call center
Your questions reach the people who built the SDK. Tailored code examples, architecture advice, direct answers — for over 10 years.
20+ companion standards
as Co-SDKs
Industry bundles for Machinery, Smart Factory, Automotive, Logistics and Smart Energy. Essential bundle with Machinery and ISA-95 included for subscription customers. UMATI-compliant servers possible.
Runs on the shop floor.
For years.
In the field you meet servers from many vendors and generations. The SDK is designed to work with them reliably — around the clock.
Also for servers that deviate
New identifiers after a server restart, endpoints behind NAT, incomplete type descriptions: the SDK handles typical deviations instead of dropping the connection.
Existing systems keep running
Older server generations and security methods use the same API, OPC Classic via add-on. After an SDK update, your code keeps running — without rework.
Safeguarded for 24/7
Automatic reconnect, optionally with a maximum duration. Limits on sessions, subscriptions and login attempts protect the server. The SDK cleans up after itself on disconnect, stop and Dispose.
„Within two or three sprints our interfaces were ready to go — with staff who previously had hardly any OPC UA experience. The return on investment was measured in months."





The right SDK for your project
Every variant includes free evaluation, royalty-free licensing and top-level support from our developers. Usable without an OPC Foundation membership.
Brownfield? Same client, different protocol.
OPC Classic (DA, HDA, AE) as a license option for Client and Bundle — technically via the Opc.UaFx.Advanced package, on Windows. The same OpcClient — just a different connection string. Behind the scenes, an OPC UA gateway is created automatically that transparently abstracts the classic interfaces.
new OpcClient("opc.tcp://...")
// OPC Classic Server
new OpcClient("opc.com://...")
Machinery, Smart Factory, Automotive, Logistics and Smart Energy — as Co-SDK bundles for your server application. The Essential bundle with Machinery and ISA-95 is included for subscription customers.
What's inside the SDK
Comprehensive OPC UA features, a consistent node and data model, a complete security architecture — and three variants plus the OPC Classic add-on, each with a clearly defined feature set.
opc.tcp:// · default endpoint localhost:4840(Microsoft / OPC Foundation)
browsing with LINQ · custom factories
(e.g. SIMATIC style)
at runtime
| Service | Client SDK Opc.UaFx.Client | Server SDK Opc.UaFx.Advanced | Bundle (Client + Server) Opc.UaFx.Advanced | OPC Classic DA · HDA · AE |
|---|---|---|---|---|
| Data Access | Client | Server | Client + Server | Client |
| Alarms & Conditions | Client | Server | Client + Server | Client |
| Events | Client | Server | Client + Server | Client |
| Historical Data Access | Client | Server | Client + Server | Client |
| Discovery | Client | Server | Client + Server | local |
| Methods | Call | Provide | Call + Provide | — |
| Files | Access | Provide | Access + Provide | — |
| Other nodes | Process | Provide | Process + Provide | — |
| Availability | Direct purchase | Direct purchase | Direct purchase (most popular choice) | Add-on to Client / Bundle |
License once. Deploy without limits.
License model
License type
All licenses are royalty-free — unlimited applications, no per-unit costs per deployment.
License models in detailGet started in minutes
NuGet Packages
Install the SDK directly via NuGet. 30-minute trial license, no registration — for all variants.
Go to NuGetClient documentation
From your first connect to complex subscriptions: step by step.
Open docsServer documentation
Nodes, methods, events and security — everything you need for your server.
Open docsGitHub examples
Real-world scenarios in C# and VB.NET with client, server and companion standards.
Open GitHub
„The simple API reduces development effort and shortens your time-to-market — so you get faster to where it counts: your customer."
Dominik Scharnagl CEO & CTO, Traeger GmbH — architect of the OPC UA SDKReady for less protocol
and more results?
Download the SDK and start your proof of concept, or talk directly with our team.