de OPC UA Server - SEB103/QtOpcUaManager GitHub Wiki
English · Deutsch · Français · Italiano · Русский · Українська
OPC UA Server
Server Studio ermöglicht es, einen OPC-UA-Server zu entwerfen, lokal auszuführen, abzusichern und Werte zu simulieren — ohne zu programmieren. Der entworfene Server läuft als separater Prozess (die eigenständige OpcUaServerRuntime, die open62541 einbettet), gesteuert von der Oberfläche über ServerStudio und ServerRuntimeController (siehe Architektur).
Server-Projekte
Ein Server-Projekt (.uaserver) ist eine JSON-Datei mit allem, was die Laufzeit benötigt: die benutzerdefinierten Namensräume, die Adressraum-Knoten, etwaige benutzerdefinierte Enumerations-Datentypen, die Endpunktkonfiguration, die Sicherheitseinstellungen und die Verhaltensregeln (ServerProject::ProjectData). Projekte werden in Server Studio angelegt, geöffnet, gespeichert und geschlossen.
Adressraum entwerfen
Im Studio bauen Sie einen Knotenbaum auf (ServerNodeModel):
- Objekte zur Gliederung des Adressraums;
- Variablen mit Datentyp und Anfangswert;
- benutzerdefinierte Enumerations-Datentypen, auf die Variablen verweisen;
- benutzerdefinierte Namensräume, denen Ihre Knoten gehören.
Ein Adressraum kann auch übernommen statt von Hand gezeichnet werden:
- NodeSet2 importieren/exportieren — das Modell als Standard-OPC-UA-NodeSet2-XML austauschen (
ServerProject::NodeSet). - Von einem durchsuchten Server klonen — den Adressraum eines Servers, mit dem Sie im Client verbunden sind, in ein neues Server-Projekt übernehmen.
Das Projekt wird vor dem Bauen oder Starten von einem Validator geprüft (ServerProject::Validator).
Endpunkt und Sicherheit
Die Endpunktkonfiguration legt Port und Anwendungsnamen fest. Die Sicherheitskonfiguration wählt die Sicherheitsrichtlinie und die akzeptierten Identitäten:
- Keine Sicherheit für schnelle lokale Tests;
- Basic256Sha256 mit Signierung und Verschlüsselung unter Verwendung eines selbstsignierten Server-Zertifikats, das im eigenen PKI-Speicher des Servers erstellt wird;
- anonymer Zugriff und/oder Benutzername/Passwort-Benutzer.
Mit diesen Einstellungen lässt sich ein Client ohne externen Server gegen realistische Sicherheit prüfen.
Server ausführen
Beim Starten des Servers wird der Laufzeitprozess gestartet; das Studio wartet, bis er seinen Endpunkt meldet, und zeigt ihn dann als laufend an. Live-Diagnose — Anzahl der Sitzungen, sichere Kanäle und Betriebszeit — wird über einen lokalen Seitenkanal an das Studio übertragen (DiagnosticsServer). Sie können die Laufzeit stoppen, neu starten oder erzwungen beenden; der Controller meldet Abstürze und erlaubt eine erneute Verbindung.
Werte simulieren
Variablen kann eine Simulation zugewiesen werden, sodass sich ihre Werte im laufenden Server über die Zeit ändern — Zähler, Umschalter, Zufall, Sinus oder Rampe (SimulationEngine). Die Laufzeit schreibt die simulierten Werte in den Server, sodass verbundene Clients echte Datenänderungs-Benachrichtigungen erhalten, was zum Testen von Trends und Abonnements nützlich ist.
Auf Schreibvorgänge reagieren (Verhaltensregeln)
Einer Variablen lassen sich Verhaltensregeln zuweisen: Wenn ein Client die Variable schreibt, führt die Laufzeit eine oder mehrere Aktionen auf anderen Variablen aus. Eine Aktion schreibt entweder einen festen Wert oder kopiert den soeben geschriebenen Wert, optional nach einer Verzögerung. Damit lassen sich die Request/Response-Handshakes nachbilden, die eine HMI von einer SPS erwartet — etwa setzt der Server nach dem Schreiben von PageRequest den Wert PageResponse —, was eine statische Momentaufnahme des Adressraums nicht kann. Regeln werden im Projekt gespeichert und von der Laufzeit über OPC-UA-Schreib-Callbacks ausgewertet (RuleEngine).