OPC UA SDK for .NET


OPC UA .NET SDK for Clients – Evaluation Package1)
Download ZIP Archive of Opc.UaFx.Client (Version: 2.9.2.1 – 2020-05-08)
Download NuGet Package of Opc.UaFx.Client (Version: 2.9.2.1 – 2020-05-08)

OPC UA .NET SDK for Clients and Servers – Evaluation Package2)
Download ZIP Archive of Opc.UaFx.Advanced (Version: 2.9.2.1 – 2020-05-08)
Download NuGet Package of Opc.UaFx.Advanced (Version: 2.9.2.1 – 2020-05-08)

OPC UA .NET SDK for Unity Clients – Evaluation Package3)
Download ZIP Archive of Opc.UaFx.Client (Version: 2.7.2.0 – 2019-05-10)
Download NuGet Package of Opc.UaFx.Client (Version: 2.7.2.0 – 2019-05-10)

OPC Watch (Version: 2.9.2.1 – 2020-05-08)
A free and simple but professional OPC UA Client to access OPC UA Servers.

Version History - The list of improvements in each version
There are currently no preview versions available. In case you're interested in some feature the SDK may not fulfill in the latest version:

Do not hesitate and just contact us via support@traeger.de!

OPC UA .NET SDK for Clients and Servers PREV2 for …4)

  • Structured Datatypes (Server-side)
  • NodeSets (Companion Specifications like UMATI)

Download ZIP Archive of Opc.UaFx.Client (Version: 2.9.0.0 – 2019-11-25)
Download NuGet Package of Opc.UaFx.Client (Version: 2.9.0.0 – 2019-11-25)

Download ZIP Archive of Opc.UaFx.Advanced (Version: 2.9.0.0 – 2019-11-25)
Download NuGet Package of Opc.UaFx.Advanced (Version: 2.9.0.0 – 2019-11-25)

Find Downloads on your distributors website.

Example Code: OPC UA Client

namespace Client
{
    using System;
    using System.Threading;
 
    using Opc.UaFx.Client;
 
    public class Program
    {
        public static void Main()
        {
            using (var client = new OpcClient("opc.tcp://localhost:4840")) {
                client.Connect();
 
                while (true) {
                    var temperature = client.ReadNode("ns=2;s=Temperature");
                    Console.WriteLine("Current Temperature is {0} °C", temperature);
 
                    Thread.Sleep(1000);
                }
            }
        }
    }
}
Imports System
Imports System.Threading
 
Imports Opc.UaFx.Client
 
Namespace Client
    Public Class Program
        Public Shared Sub Main()
            Using client = New OpcClient("opc.tcp://localhost:4840")
                client.Connect()
 
                While True
                    Dim temperature = client.ReadNode("ns=2;s=Temperature")
                    Console.WriteLine("Current Temperature is {0} °C", temperature)
 
                    Thread.Sleep(1000)
                End While
            End Using
        End Sub
    End Class
End Namespace

Example Code: OPC UA Server

namespace Server
{
    using System.Threading;
 
    using Opc.UaFx;
    using Opc.UaFx.Server;
 
    public class Program
    {
        public static void Main()
        {
            var temperatureNode = new OpcDataVariableNode<double>("Temperature", 100.0);
 
            using (var server = new OpcServer("opc.tcp://localhost:4840/", temperatureNode)) {
                server.Start();
 
                while (true) {
                    if (temperatureNode.Value == 110)
                        temperatureNode.Value = 100;
                    else
                        temperatureNode.Value++;
 
                    temperatureNode.ApplyChanges(server.SystemContext);
                    Thread.Sleep(1000);
                }
            }
        }
    }
}
Imports System.Threading
 
Imports Opc.UaFx
Imports Opc.UaFx.Server
 
Namespace Server
    Public Class Program
        Public Shared Sub Main()
            Dim temperatureNode = New OpcDataVariableNode(Of Double)("Temperature", 100.0)
 
            Using server = New OpcServer("opc.tcp://localhost:4840/", temperatureNode)
                server.Start()
 
                While True
                    If (temperatureNode.Value = 110) Then
                        temperatureNode.Value = 100
                    Else
                        temperatureNode.Value += 1
                    End If
 
                    temperatureNode.ApplyChanges(server.SystemContext)
                    Thread.Sleep(1000)
                End While
            End Using
        End Sub
    End Class
End Namespace
1) , 2) , 3) Your “License Code” turns the package into a productive full version.
4) Not recommended for productive use.