Tutorial
Erste Schritte
Den ersten Server mit dem OPC UA .NET SDK aufsetzen: Namespace einbinden, Server erzeugen, starten und wieder beenden.
Tutorial
Erste Schritte
Voraussetzungen
- Zielframework: .NET oder .NET Framework ab 4.7.2, alle unterstützten unter Zielframeworks
- NuGet-Paket:
Opc.UaFx.Advanced(Downloads) - Lizenz: für die Evaluation nicht erforderlich. Ohne Lizenzschlüssel läuft das SDK je Anwendungsstart 30 Minuten uneingeschränkt (Lizenz einrichten)
Server erzeugen
1. Einen Verweis auf den Namespace Opc.UaFx.Server (Paket Opc.UaFx.Advanced) hinzufügen. Die meisten weiteren Typen liegen im Namespace Opc.UaFx:
using Opc.UaFx.Server;Imports Opc.UaFx.Server2. Eine Instanz der Klasse OpcServer mit der gewünschten Standard-Basis-Adresse erzeugen. Ohne Angabe verwendet der Server die Adresse opc.tcp://localhost:4840:
var server = new OpcServer("opc.tcp://localhost:4840/");Dim server = New OpcServer("opc.tcp://localhost:4840/")Server starten
3. Server starten und Clients bedienen:
server.Start();server.Start()4. Ihr Code, der die Anfragen der Clients bearbeitet:
// Your code to process client requests.'Your code to process client requests.Server beenden
5. Vor dem Beenden der Anwendung alle Sitzungen beenden und den Server herunterfahren:
server.Stop();server.Stop()Server im using-Block
6. In einem using-Block sieht das so aus:
using (var server = new OpcServer("opc.tcp://localhost:4840/")) {
server.Start();
// Your code to process client requests.
}Using server As new OpcServer("opc.tcp://localhost:4840/")
server.Start()
'Your code to process client requests.
End UsingServer in Tests
Ein Server mit Test-Nodes lässt sich im selben Prozess wie ein Client starten, um Client-Logik ohne Anlage automatisiert zu prüfen. Wie das geht, zeigt die Seite Clients testen.
Vollständiges Beispiel
Ein eigener Server, der einen Temperatur-Node bereitstellt, dessen Wert zyklisch aktualisiert und Subscriptions von Clients bedient:
namespace Server
{
using System.Threading;
using Opc.UaFx;
using Opc.UaFx.Server;
/// <summary>
/// This sample demonstrates how to setup an OPC UA server that provides a temperature node and
/// updates its value once per second.
/// </summary>
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
''' <summary>
''' This sample demonstrates how to setup an OPC UA server that provides a temperature node and
''' updates its value once per second.
''' </summary>
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 NamespaceDer Server stellt den Node Temperature bereit und erhöht dessen Wert einmal je Sekunde von 100 bis 110, danach beginnt er wieder bei 100. Zur Kontrolle eignet sich der Client aus dem vollständigen Beispiel der Client-Entwicklung: Er liest den Wert einmal je Sekunde und gibt ihn aus.
Nächste Schritte
Nodes verwalten
Nodes im Adressraum des Servers erstellen, ihre Sichtbarkeit steuern und sie zur Laufzeit aktualisieren.
Werte lesen und schreiben
Werte von Nodes im Server bereitstellen und Lese- sowie Schreibzugriffe von Clients behandeln.
Node-Modelle
Mit OpcNodeModel festlegen, welche Kind-Nodes beim Erzeugen eines typisierten Nodes entstehen, und Startwerte aus der Typdefinition übernehmen.
Server absichern
Den Server absichern: Endpunkte, Zertifikate, Benutzer, Rollen und Zugriffskontrolllisten, Audit-Ereignisse und eine Checkliste für den Betrieb.

