Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung auf unserer Website zu bieten.

Sie erfahren in unserer Datenschutzerklärung mehr darüber, welche Cookies wir verwenden.

   
+49 961-48 23 00

OPC UA Client / Server SDK for .NET

OPC UA Client / Server in  C#/VB.NET
schnell und einfach.


 
Weitere Informationen finden Sie auch auf unserer

OPC UA WEB-Seite https://opcua.traeger.de

 

Funktionsweise / Einsatz

Mit dem OPC-UA Framework Advanced schnell und einfach zur eigenen OPC-UA Client/Server Anwendung.
Der an den Richtlinien für das Framework Design von Microsoft angelehnte Aufbau erlaubt es selbst OPC Neulingen einen Einstieg von null auf hundert in die Entwicklung. Die üblicherweise aufwändige Konfiguration entfällt nahezu vollständig.
Hierbei erweitert das Framework den Foundation Stack um diverse Features. So werden serverseitig ACLs (Access Control List) für die Benutzer und Zertifikat basierte Authentifizierung bereitgestellt. Über deren ACEs (Access Control Entry) lassen sich dann die Zugriffsrechte individuell festlegen. Ebenso einfach ist das Node Management, sodass komplexe gar dutzende Zeilen an Konfigurationscode entfallen.
Auch clientseitig wird einiges geboten. Das Lesen mittels ReadNode und Schreiben mittels WriteNode ist ebenso einfach wie das Browsen der Nodes.

  

Features

  • Betriebssystem
    • Windows 32 / 64 Bit  mit .NET Framework
    • .NET Standard 2.0, .NET Core (Windows / Linux / macOS)
  • Sprachen
    • C#
    • VB.Net
  • Konfiguration
    • direkt im Code implementierbar
    • XML-basiert
    • durch externe Datei
  • User Management
    • User Token Policy Konfiguration über ACL (Access Control Lists)
    • umfangreiche Authentifzierungsmöglichkeiten
      • User / Password
      • Zertifikate 
      • White / Blacklisting von Usern
    • benutzerabhängiger Zugriff auf die Nodes möglich
  • automatisches Erzeugen von Serverzertifikaten
  • freie Wahl des Zertifikatspeichers (cerificate store), Dateisystem, Betriebssystem, Applikation 
  • "easy to use"  Nodemanagement
  • Comfort Browsing
  • Callbacks / Events bei Nodezugriff (read / write / subscribe)
  • unbegrenzt viele Verbindungen
  • OPC-Features
    • Data Access (DA)
    • Methods
    • Events 
    • Alarm & Conditions 
    • Historian Data (HDA)

Evaluation Paket

Starten Sie sofort und laden Sie hier das Evaluation Paket.
Sie können sofort 14 Tage kostenfrei testen. Bei Bedarf fordern Sie bitte einen Test-Key mit längerer Laufzeit an.

Im Paket sind umfrangreiche Samples für Client und Server enthalten.

download OPC.UAFxAdvanced Evaluation Paket

Finden Sie hier das Online Manual zum OPC-UA SDK

 

OPC Watch  - professioneller OPC-UA-Client mit ansprechender GUI

OPC-Watch, ein Profi-Tool in der OPC-UA-Welt  im Lieferumfang

  • entwickelt mit OPC.UAFxAdvanced
  • Diagnose von OPC-UA-Servern
  • Analyse der Verbindungsmöglichkeiten
  • Node-Browser
  • Anzeige Istwerte der Nodes per Subscription
  • Werte der Nodes ändern
  • speichern der Verbindungsdaten / Projekteinstellung
  • komplett kostenfrei
  • unbegrenzt lauffähig
  • ein wertvolles Tool für die OPC-UA-Welt.

download OPC-Watch

 opc watch

Example - Server

using Opc.UaFx;
using Opc.UaFx.Server;
 internal class SampleNodeManager : OpcNodeManager
{ private OpcDataVariableNode<bool> isStarted;   public SampleNodeManager() : base("http://sampleserver/machines") { }   protected override IEnumerable<IOpcNode> CreateNodes(OpcNodeReferenceCollection references) { OpcFolderNode machineOne = new OpcFolderNode(new OpcName("Machine_1", this.DefaultNamespaceIndex)); references.Add(machineOne, OpcObjectTypes.ObjectsFolder);   new OpcMethodNode(machineOne, "StartMachine", new Action<OpcMethodContext>(StartMachine)); new OpcMethodNode(machineOne, "StopMachine", new Action<OpcMethodContext>(StopMachine));   this.isStarted = new OpcDataVariableNode<bool>(machineOne, "IsStarted", false); return new IOpcNode[] { machineOne }; }   private void StartMachine(OpcMethodContext context) { // The code to start the machine. this.isStarted.Value = true; this.isStarted.ApplyChanges(context); }   private void StopMachine(OpcMethodContext context) { // The code to stop the machine. this.isStarted.Value = false; this.isStarted.ApplyChanges(context); }
}
public class Program
{
new OpcServerApplication ("opc.tcp://localhost:12345/SampleServer", new SampleNodeManager()).Run();
Console.ReadKey();
}

  

Example - Client

OpcClient client = new OpcClient("opc.tcp://localhost:4711/MyServer");
client.UserIdentity = new UserIdentity("username", "password");
client.Connect(); // Connect to Server

Read Nodes

To read nodes use one of the ReadNode overloads of the OpcNodeInfo class.

OpcValue value = client.ReadNode("2:Machine_1/IsStarted");

To read a different OpcAttribute as the value attribute specify the attribute to read as follows:

OpcValue description = client.ReadNode("2:Machine_1/IsStarted", OpcAttribute.Description);

Write Nodes

To write nodes use one of the WriteNode overloads of the OpcNodeInfo class.

client.WriteNode("2:Machine_1/IsStarted", true);

To write a different OpcAttribute as the value attribute specify the attribute to write as follows:

client.WriteNode("2:Machine_1/IsStarted", OpcAttribute.Description, "Indicates the started state");
 client.WriteNode("2:Machine_1/IsStarted", true);
client.Disconnect();

Lizenzierung

Site / Branch / Standort License

  • unbegrenzte Anzahl von Entwicklern an diesem Standort dürfen das SDK verwenden
  • alle mit dem SDK entwickelten Produkte / Applikation dürfen in unbegrenzter Zahl an Ihre Anwender/ Kunden ausgeliefert, und von diesen genutzt werden (Royalty Free)
  • die Laufzeit der Lizenz ist unbegrenzt
  • ideal für Serienprodukte
  • gilt für einen Entwicklerstandort  (= eine postalische Adresse an dem entwickelt wird)

Single Developer License

  • ein registrierter Entwicklern darf das SDK verwenden
  • alle mit dem SDK entwickelten Produkte / Applikation dürfen in unbegrenzter Zahl an Ihre Anwender/ Kunden ausgeliefert, und von diesen genutzt werden (Royalty Free)
  • die Laufzeit der Lizenz ist unbegrenzt
  • ideal für Serienprodukte
  • gilt für einen einzelnen registrierten Entwickler