OPC UA SDK für .NET


Mit wenigen Zeilen Code zum Erfolg

Buch - Die gesamte Anleitung als eBook


Die komplette Class Library finden Sie im Archiv als Download auf der Webseite Ihres Distributors.

OPC UA .NET SDK für Clients – Evaluationspaket1)
Download ZIP Archiv von Opc.UaFx.Client (Version: 2.8.2.0 – 06.11.2019)
Download NuGet Paket von Opc.UaFx.Client (Version: 2.8.2.0 – 06.11.2019)

OPC UA .NET SDK für Clients und Server – Evaluationspaket2)
Download ZIP Archiv von Opc.UaFx.Advanced (Version: 2.8.2.0 – 06.11.2019)
Download NuGet Paket von Opc.UaFx.Advanced (Version: 2.8.2.0 – 06.11.2019)

OPC UA .NET SDK für Unity Clients – Evaluationspaket3)
Download ZIP Archiv von Opc.UaFx.Client (Version: 2.7.2.0 – 10.05.2019)
Download NuGet Paket von Opc.UaFx.Client (Version: 2.7.2.0 – 10.05.2019)

OPC Watch (Version: 2.8.2.0 – 06.11.2019)
Ein kostenloser und einfacher, aber professioneller OPC UA Client für den Zugriff auf OPC UA Server.

Versionshistorie - Die Liste der Verbesserungen pro Version

Derzeit sind keine Preview-Versionen verfügbar. Falls Sie an einer Funktion interessiert sind, die das SDK in der neuesten Version möglicherweise nicht erfüllt:

Zögern Sie nicht und kontaktieren Sie uns einfach über support@traeger.de!

OPC UA .NET SDK für Clients und Server PREV1 für …4)

  • Strukturierte Datentypen (Server-seitig)
  • NodeSets (Companion Spezifikationen wie z.B. UMATI)

Download ZIP Archiv von Opc.UaFx.Advanced (Version: 2.9.0.0 – 25.11.2019)
Download NuGet Paket von Opc.UaFx.Advanced (Version: 2.9.0.0 – 25.11.2019)

Die Downloads finden Sie auf der WEB-Seite Ihres Distribitors.

Beispiel C# 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);
                }
            }
        }
    }
}

Beispiel C# Code OPC UA Server

namespace Server
{
    using System.Threading;
 
    using Opc.UaFx;
    using Opc.UaFx.Server;
 
    internal static 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);
                }
            }
        }
    }
}

Begriffe

OPC UA

OPC UA steht für OPC Unified Architecture, kurz OPC UA. Im Vergleich zum Vorgänger OPC unterscheidet sich OPC UA besonders durch die Fähigkeit, Maschinendaten (Messwerte, Parameter etc.) nicht nur zu transportieren, sondern auch maschinenlesbar semantisch zu beschreiben. OPC UA bedeutet: Openess Productivity Connectivity Unified Architechture (Offenheit, Produktivität, Konnektivität, einheitliche Architektur).

Node

Der „Node“ ist das grundlegendste Element der OPC UA. Nahezu jedes Element ist quasi auf einen „Node“ „reduziert“. Die Nodes stehen dabei in entsprechender Relation zueinander.
Die Definition aus Wikipedia über die OPC Unified Architecture hat für den Begriff „Node“ eine treffende Beschreibung:
„Das OPC-Informationsmodell ist nicht mehr nur eine Hierarchie aus Ordnern, Items und Properties. Es ist ein sogenanntes Full-Mesh-Network aus Nodes, mit dem neben den Nutzdaten eines Nodes auch Meta- und Diagnoseinformationen repräsentiert werden.“ Quelle: wikipedia.org/wiki/OPC_Unified_Architecture

  • Ein Node ähnelt einem Objekt aus der objektorientierten Programmierung.
  • Ein Node besitzt Attribute, die gelesen werden können (Data Access (DA), Historical Data Access (HDA)).
  • Die Nodes werden sowohl für die Nutzdaten, als auch für alle anderen Arten von Metadaten verwendet.
  • Der damit modellierte OPC Adressraum beinhaltet ein Typenmodell, mit dem sämtliche Datentypen spezifiziert werden.

NodeId

Die OPC-Spezifikation definiert, dass jeder Node über einen Identifier (= NodeId) eindeutig im Adressraum (engl. Address Space) identifiziert werden kann. Der NodeId wird entweder durch eine GUID (Global Unique Identifier), einen numerischen Ausdruck, ein Array von Bytes oder einen String-Wert definiert. Der NodeId enthält in der Regel den „Namespace“. Das muss aber nicht zwangsläufig der Fall sein.

Address Space

Sämtliche Nodes, die in OPC UA bereitgestellt und verarbeitetet werden, werden im Rahmen eines sogenannten Address Spaces verwaltet. Der Address Space stellt dabei eine Art logischen Speicher dar. Innerhalb dieses „Speichers“ können die in ihm enthalten Nodes auf einen oder mehrere Nodes im selben oder in einem anderen Address Space (logisch) verweisen.

View

Der oben genannte / visualisierte „Address Space“ kann logisch in eine oder mehrere Views unterteilt werden. Während es eine Standardansicht gibt, können die benutzerdefinierten Ansichten einen oder mehrere Nodes enthalten.

NodeManager

Der Node Manager stellt ein oder mehrere Nodes bereit und definiert ihre Beziehungen zueinander. Vordefinierte System Node Manager sind:

  • Core Node Manager (definiert u.a. Type Nodes und System Nodes)
  • Diagnostics Node Manager (stellt Nodes für Diagnosezwecke bereit)
  • Master Node Manager (der „Verwalter“ aller Node Manager, er delegiert Aufrufe zu dem betreffenden Node Manager)

Service

OPC UA definiert eine Reihe verschiedener Services, über die der Client mit dem Server interagiert. Diese Services sind dabei serverseitig als Methoden implementiert und werden verwendet zum:

  • Lesen und Schreiben von Node Attributen bzw. Werten
  • Verwalten von Node Referenzen
  • Browsen von Nodes
  • Lesen und Schreiben historischer Werte
  • Aufrufen von Methoden
  • Verwalten von Subscriptions
  • etc.
1) , 2) , 3) Mit Ihrem „License Code“ wird das Paket zur produktiven Vollversion.
4) Nicht für den produktiven Einsatz empfohlen.