OPC UA Local Discovery Server für effiziente Server-Registrierung und Client-Verbindung nutzen
Discovery-Server ermöglichen es OPC UA-Clients, Details zu einem oder mehreren OPC UA-Servern von einem zentralen Punkt aus zu erhalten.
Es gibt zwei Arten von OPC UA Discovery-Servern:
- Local Discovery Server (LDS)
- Global Discovery Server (GDS)
In diesem Artikel wird gezeigt, wie man einen OPC UA-Server bei einem LDS registriert und wie ein OPC UA-Client diesen LDS nutzen kann, um sich mit dem OPC UA-Server zu verbinden.
Einführung
Wie der Name schon sagt, kann ein Local Discovery Server (LDS) auf demselben Gerät wie ein oder mehrere OPC UA-Server laufen. Zum Beispiel ist es möglich, einen oder mehrere OPC UA-Server auf einem PLCnext Control-Gerät zu installieren, neben dem OPC UA-Server, der im PLCnext Runtime enthalten ist. Wenn ein LDS auch auf diesem PLCnext Control-Gerät installiert ist, können sich alle OPC UA-Server auf diesem Gerät beim LDS registrieren. Dann kann ein entfernter OPC UA-Client einfach den LDS nach den Details aller OPC UA-Server abfragen, die auf diesem PLCnext Control-Gerät laufen, und diese Details nutzen, um sich direkt mit einem oder mehreren dieser OPC UA-Server zu verbinden.
Etwas verwirrend ist, dass es auch möglich ist, dass ein OPC UA-Server sich bei einem LDS registriert, der auf einem entfernten Rechner läuft. Auf diese Weise kann ein einzelner LDS von einem OPC UA-Client genutzt werden, um alle OPC UA-Server in einem ganzen Netzwerk von Geräten zu entdecken.
Eine gute Einführung in OPC UA Discovery Server finden Sie in diesem Artikel von Unified Automation:
https://documentation.unified-automation.com/uasdkdotnet/2.5.2/html/L2UaDiscoveryConnect.html
Hintergrund
Bevor Sie den Schritten in diesem Artikel folgen, sollten Sie Folgendes verstehen:
- Grundlegende OPC UA-Server-Konfiguration.
- Wie man einen Client mit dem OPC UA-Server auf einem PLCnext Control-Gerät verbindet.
- Wie Sicherheitszertifikate auf einem PLCnext Control-Gerät gespeichert und verwaltet werden.
Vorgehensweise
Für dieses Beispiel ist das Netzwerk wie folgt aufgebaut:
OPC UA Server: AXC F 2152 FW 2020.6.1 IP-Adresse: 192.168.1.10 DNS-Name: axc-f-2152-1
Local Discovery Server: Windows 10 PC IP-Adresse: 192.168.1.42 DNS-Name: mypc.mycompany.com
OPC UA Client: Debian 10 PC IP-Adresse: 192.168.1.3
Diese IP-Adressen und DNS-Namen werden in diesem Artikel verwendet, sollten aber natürlich für Ihre eigene Anwendung angepasst werden.
DNS-Namen einrichten
Wenn Ihr Netzwerk keinen DNS-Server enthält, bearbeiten Sie die hosts-Datei auf jedem Gerät.
Die hosts-Datei befindet sich in folgenden Verzeichnissen:
- Windows:
C:\Windows\System32\drivers\etc\ - Linux:
/etc/
Fügen Sie die folgenden neuen DNS-Einträge hinzu (IP-Adressen und DNS-Namen für Ihre Anwendung einsetzen):
Auf dem PLC, LDS hinzufügen:
192.168.1.42 mypc.mycompany.com
Auf dem LDS-Rechner, PLC hinzufügen:
192.168.1.10 axc-f-2152-1
Auf dem OPC UA-Client-Rechner, sowohl LDS als auch PLC hinzufügen:
192.168.1.42 mypc.mycompany.com
192.168.1.10 axc-f-2152-1
Prüfen Sie, ob alle Einträge korrekt sind, indem Sie die DNS-Namen (nicht die IP-Adressen), die Sie auf jedem Gerät eingerichtet haben, anpingen.
Local Discovery Server installieren
Die OPC Foundation stellt einen Local Discovery Server als Windows-basierte Executable bereit. Dieser kann nach Registrierung kostenlos von dieser Seite heruntergeladen werden:
https://opcfoundation.org/developer-tools/samples-and-tools-unified-architecture/local-discovery-server-lds/
LDS auf dem Windows-Rechner herunterladen und installieren.
OPC UA-Client installieren
In diesem Beispiel wird UaExpert von Unified Automation verwendet:
https://www.unified-automation.com/products/development-tools/uaexpert.html
UaExpert auf dem OPC UA-Client-Rechner herunterladen und installieren.
Zertifikate lokalisieren
Die verschiedenen OPC UA-Komponenten – Server, Client und LDS – müssen sich gegenseitig vertrauen, um sichere Kommunikation zu gewährleisten. Vertrauen kann durch Austausch öffentlicher Zertifikate erreicht werden – also indem man das öffentliche Zertifikat jeder Komponente in den „Trust Store“ der Komponente(n) legt, die ihr vertrauen müssen.
Die öffentlichen Zertifikate für jede Komponente finden Sie wie folgt:
OPC UA Server
Das Gerätezertifikat befindet sich standardmäßig im „OPC UA-self-signed“ Identity Store. Dies unterscheidet sich, wenn Sie Ihr eigenes Zertifikat verwenden.
Das OPC UA-Serverzertifikat kann von der Web-Based Management-Seite des PLC heruntergeladen werden. Das Zertifikat muss dann von PEM- in DER-Format konvertiert werden, um von den anderen Komponenten verwendet werden zu können. Es gibt viele kostenlose Tools für diese Konvertierung, einschließlich des openssl-Linux-Kommandozeilentools. Ein Beispiel für den bash-Befehl, den Sie verwenden könnten:
openssl x509 -outform der -in OPC\ UA-self-signed_certificate.crt -out uaserver.der
LDS Server
Standardmäßig befindet sich das Zertifikat für den LDS hier:
C:\ProgramData\OPC Foundation\UA\pki\own\certs\ualdscert.der
OPC UA Client
- In UaExpert das Menü „Einstellungen -> Zertifikate verwalten“ auswählen.
- Auf den Button „Anwendungszertifikat kopieren nach…“ klicken.
- Das Zertifikat an einem praktischen Ort speichern.
Zertifikate in Trust Stores kopieren
Kopieren Sie jedes Zertifikat (im .der-Format) in die Trust Stores der anderen beiden Komponenten.
Die Trust Stores für jede Komponente finden Sie wie folgt:
OPC UA Server (PLC)
Der Trust Store ist der Ordner /opt/plcnext/Security/TrustStores/Empty/trusted
LDS
Der Trust Store ist der Ordner C:\ProgramData\OPC Foundation\UA\pki\trusted\certs
OPC UA Client (UaExpert)
- In UaExpert das Menü „Einstellungen -> Zertifikate verwalten“ auswählen.
- Auf den Button „Zertifikatspeicherort öffnen“ klicken. Dies ist der Trust Store für UaExpert.
Alle Firewalls prüfen
Mindestens prüfen, ob die Firewall auf dem LDS-Server Verkehr auf Port 4840 zulässt.
OPC UA Server in PLCnext Engineer konfigurieren
In PLCnext Engineer, im OPC UA-Konfigurationsfenster:
- Prüfen, dass:
- Der DNS-Name derselbe ist wie der zuvor konfigurierte.
- „Sichtbarkeit von Variablen“ nicht „None“ ist.
- Discovery Registration aktivieren
- Server URL auf
opc.tcp://mypc.mycompany.com:4840setzen (DNS-Namen Ihres LDS-Rechners einsetzen)
Das PLCnext Engineer-Projekt auf den PLC schreiben.
Der PLC wird nun automatisch versuchen, den OPC UA-Server beim LDS zu registrieren.
OPC UA-Server entdecken und verbinden
- In UaExpert auf den + (Plus)-Button in der Symbolleiste klicken.
- Rechtsklick auf den „Lokal“-Zweig der Baumansicht und „Discovery URL bearbeiten“ auswählen.
- Im Textfeld
opc.tcp://mypc.mycompany.com:4840eingeben (DNS-Namen Ihres LDS-Rechners einsetzen) und OK klicken.
Der OPC UA-Server sollte im Lokal-Zweig der Baumansicht erscheinen. Sie können diese Details nun verwenden, um sich wie gewohnt mit dem OPC UA-Server zu verbinden.
Fehlerbehebung
- Die LDS-Logdatei befindet sich hier:
C:\ProgramData\OPC Foundation\UA\Discovery\opcualds.log. Den LogLevel (und viele andere Parameter) kann man in folgender Datei ändern:C:\ProgramData\OPC Foundation\UA\Discovery\ualds.ini.LogLevel = debugliefert die detailliertesten Logging-Informationen. Nach Änderung der LDS-Einstellungen kann ein Neustart des LDS über die Windows-„Dienste“-Konsole notwendig sein. Der Anzeigename des LDS ist „OPC UA Local Discovery Server“. - Beachten Sie, dass der LDS die URL des OPC UA-Servers möglicherweise mit
.local.angehängt an den DNS-Namen zurückgibt. Dieser DNS-Name sollte von einem Multicast-mDNS-Server auflösbar sein. Wenn dieser DNS-Name nicht aufgelöst werden kann, erscheint eine Fehlermeldung mit der URL im UaExpert-Logfenster. Es liegt außerhalb des Rahmens dieses Tutorials, zu beschreiben, wie man einen Multicast-DNS-Server installiert und konfiguriert, um DNS-Namen mit.local.-Suffix aufzulösen.
Fazit
Offensichtlich gibt es nicht viel Vorteil, einen LDS zu verwenden, wenn es nur einen OPC UA-Server in einem Netzwerk gibt. Aber für Netzwerke, die eine große Anzahl von OPC UA-Servern enthalten, bietet ein LDS eine praktische Möglichkeit, diese Server zu durchsuchen und sich mit ihnen zu verbinden.
Industrietechnik
- Python Global, Local & Nonlocal Variablen verstehen
- Discovery's IoT-Lösung transformiert Supply Chain Management
- C++ Variablen-Scope: Lokal vs. Global verstehen
- Java 10: Local Variable Type Inference (JEP 286) – <code>var</code> richtig einsetzen
- Warum die Partnerschaft mit einem lokalen Metallfertiger Zuverlässigkeit und Kosteneffizienz steigert
- Die Discovery-Phase meistern: Warum sie den Erfolg in Entwicklungsprojekten antreibt
- Lokale vs. globale Produktionskontrolle: Welches System treibt Effizienz?
- Bewährte SEO-Strategien für B2B-Unternehmen: Sichtbarkeit & Wachstum steigern
- Zentrales OPC UA-Zertifikatsmanagement via GDS Push Management
- PLC-Funktionsbausteine über OPC UA-Clients aufrufen: Praktischer Leitfaden