OPC UA Client auf PLCnext Control konfigurieren: Schritt-für-Schritt-Anleitung
Firmware-Version 2023.0 enthält die lang erwartete OPC UA Client-Komponente. Das PLCnext Info Center enthält eine gute technische Referenz für diese Funktion.
Dieses Tutorial ist eine Schritt-für-Schritt-Anleitung, die zeigt, wie man den OPC UA Client in einem PLCnext Control Gerät konfiguriert, damit er Daten mit einem OPC UA Server austauscht.
Sie benötigen:
- Ein PLCnext Control Gerät mit Firmware-Version 2023.0 oder höher, das als OPC UA Client fungiert. Wenn Sie die Firmware auf Ihrem PLCnext Control Gerät aktualisieren müssen, können Sie dem im Info Center gezeigten Verfahren folgen.
- PLCnext Engineer Version 2023.3 oder höher.
- Einen OPC UA Server. Dieser Artikel verwendet ein zweites PLCnext Control Gerät als OPC UA Server, Sie können aber auch dasselbe PLCnext Control Gerät verwenden, das Sie für den Client hosten, oder alternativ jeden beliebigen Drittanbieter-OPC-UA-Server (z. B. auf einem Windows-PC). Für Drittanbieter-Server müssen Sie herausfinden, wie Sie die unten beschriebenen „Server“-Schritte für Ihren Server anpassen.
- UaExpert von Unified Automation, der benötigt wird, um Informationen über OPC UA Server-Tags zu erhalten, die wir in der Konfiguration unseres eigenen OPC UA Clients verwenden werden.
Einer der wichtigsten Punkte bei der Konfiguration von OPC UA-Kommunikation ist, dass der OPC UA Client und der OPC UA Server aus Sicherheitsgründen einander vertrauen müssen. Daher müssen Sicherheitszertifikate zwischen Client- und Server-Geräten ausgetauscht werden. Dieses Verfahren beinhaltet das Hin- und Herspringen zwischen Client- und Server-Gerät, was etwas verwirrend sein kann. Wenn Sie Vorschläge haben, wie das Verfahren vereinfacht werden kann (ohne die Sicherheitsprüfungen zu deaktivieren!), fühlen Sie sich frei, diese in den Kommentaren hinzuzufügen.
Vorgehensweise
OPC UA Server-Gerät
Öffnen Sie die webbasierte Management-Oberfläche (WBM), indem Sie die IP-Adresse der SPS im Browser aufrufen.
Wählen Sie den Menüpunkt Systemdienste aus dem Konfigurationsmenü.
Aktivieren Sie den OPC UA Server-Dienst, falls er nicht bereits aktiviert ist.
Drücken Sie ggf. die Schaltfläche Anwenden und neu starten.
Öffnen Sie PLCnext Engineer.
Erstellen Sie ein neues PLCnext Engineer Projekt mit der Vorlage für Ihr PLCnext Control Gerät.
Legen Sie die IP-Adresse der SPS im PLCnext Engineer Projekt fest.
Auf der OPC UA Server-Konfigurationsseite:
Setzen Sie DNS-Name / IP-Adresse auf den DNS-Namen oder die IP-Adresse der SPS, je nachdem, ob der OPC UA Client über einen DNS-Namen oder die IP-Adresse des Servers auf den Server zugreift. Diese Information wird im OPC UA Server-Sicherheitszertifikat enthalten sein. Viele OPC UA Clients werden das Serverzertifikat ablehnen, wenn diese Information im Zertifikat nicht mit der Server-URL übereinstimmt.
Setzen Sie Sichtbarkeit von Variablen auf Markiert. Das bedeutet, dass alle Variablen, die mit dem OPC-Attribut markiert sind, über den OPC UA Server zugänglich sind.
Erstellen Sie Variablen, die vom OPC UA Server bereitgestellt werden. Stellen Sie sicher, dass das OPC-Kontrollkästchen für diese Variablen aktiviert ist. Im folgenden Beispiel wurden zwei Variablen im Hauptprogramm erstellt.
Fügen Sie Logik hinzu, um die Output-Variable zu ändern, wenn ein neuer Input-Wert empfangen wird. In diesem Beispiel führt das Hauptprogramm den folgenden Code aus:
Server_Data_Out := Server_Data_In + 1;Schreiben und starten Sie das Projekt.
Hinweis: PLCnext Engineer Version 2025.0 und höher enthält eine „Browse“-Funktion, die verwendet werden kann, um Variableneinträge im OPC UA Client zu erstellen. Wenn diese Browse-Funktion verwendet wird, ist es nicht notwendig, UaExpert zu verwenden, um Informationen über Servervariablen zu erhalten, und die nächsten drei Schritte können übersprungen werden.
Verwenden Sie UaExpert, um eine Verbindung zum OPC UA Server mit dem SPS-Benutzernamen und -Passwort herzustellen. Sie sollten eine Warnung sehen, dass das Zertifikat „Nicht vertrauenswürdig“ ist, aber es sollten keine anderen Warnungen auftreten.
Vertrauen Sie dem Serverzertifikat, entweder dauerhaft oder nur für diese Sitzung.
Notieren Sie für jede Servervariable den Namen der Node ID und den Namespace für diese Variable.
Öffnen Sie die WBM-Seite für die Server-SPS erneut.
Wählen Sie den Menüpunkt Zertifikatsauthentifizierung aus dem Sicherheitsmenü.
Wählen Sie den Reiter Identity Stores.
Laden Sie das Zertifikat aus dem OPC UA-self-signed [Server] Identity Store herunter. Der Schlüsselpaar muss nicht heruntergeladen werden.
OPC UA Client-Gerät
Öffnen Sie die webbasierte Management-Oberfläche (WBM), indem Sie die IP-Adresse der SPS im Browser aufrufen.
Wählen Sie den Menüpunkt Systemdienste aus dem Konfigurationsmenü.
Aktivieren Sie den OPC UA Client-Dienst, falls er nicht bereits aktiviert ist.
Drücken Sie ggf. die Schaltfläche Anwenden und neu starten.
Wenn der Neustart abgeschlossen ist, melden Sie sich wieder an der WBM an und wählen Sie den Menüpunkt Zertifikatsauthentifizierung aus dem Sicherheitsmenü.
Wählen Sie den Reiter Trust Stores.
Fügen Sie das OPC UA-self-signed [Server] Zertifikat (vorher heruntergeladen) zum Trust Store namens OPC UA Client hinzu. Jetzt vertraut der OPC UA Client dem Sicherheitszertifikat, das der OPC UA Server zur Verifizierung seiner Identität verwendet. Dieser Schritt muss jedes Mal wiederholt werden, wenn sich das Serverzertifikat ändert.
Wählen Sie den Reiter Identity Stores.
Laden Sie das Zertifikat aus dem OPC UA Client self-signed Identity Store herunter. Der Schlüsselpaar muss nicht heruntergeladen werden.
OPC UA Server-Gerät
Öffnen Sie die webbasierte Management-Oberfläche (WBM), indem Sie die IP-Adresse der SPS im Browser aufrufen.
Wählen Sie den Menüpunkt Zertifikatsauthentifizierung aus dem Sicherheitsmenü.
Wählen Sie den Reiter Trust Stores.
Fügen Sie das OPC UA Client self-signed Zertifikat (vorher heruntergeladen) zum Trust Store namens OPC UA-konfigurierbar hinzu. Jetzt vertraut der OPC UA Server dem Sicherheitszertifikat, das der OPC UA Client zur Verifizierung seiner Identität verwendet. Dieser Schritt muss jedes Mal wiederholt werden, wenn sich das Clientzertifikat ändert.
OPC UA Client-Gerät
Öffnen Sie PLCnext Engineer.
Erstellen Sie ein neues PLCnext Engineer Projekt mit der Vorlage für Ihr PLCnext Control Gerät. Wenn Sie dasselbe Gerät für sowohl OPC UA Client als auch OPC UA Server verwenden, wird dasselbe PLCnext Engineer Projekt verwendet.
Legen Sie die IP-Adresse der SPS im PLCnext Engineer Projekt fest.
Nur erforderlich für SPS mit Firmware-Versionen vor 2023.6: Auf der OPC UA Server-Konfigurationsseite setzen Sie Sichtbarkeit von Variablen auf Markiert. Ja, es scheint seltsam, diese OPC UA Server-Einstellung für den OPC UA Client zu verlangen. Dies ist in Firmware-Versionen 2023.6 und höher behoben.
Erstellen Sie Variablen, die mit Variablen im OPC UA Server verbunden werden. Nur erforderlich für SPS mit Firmware-Versionen vor 2023.6: Stellen Sie sicher, dass das OPC-Kontrollkästchen für diese Variablen aktiviert ist (das Kontrollkästchen muss für SPS mit Firmware-Version 2023.6 oder höher nicht aktiviert sein).
Im folgenden Beispiel wurden zwei Variablen im Hauptprogramm erstellt.
Im Reiter OPC UA Client Connections fügen Sie einen Server und zwei Variablengruppen hinzu, wie unten gezeigt.
Die Server-URL, der Benutzername und das Passwort sollten an den OPC UA Server angepasst werden, den Sie verwenden.
In der Variablengruppe „Subscribe“ fügen Sie eine Variablenzuordnung hinzu, wie unten gezeigt.
Dies überträgt den Wert automatisch von der Remote-Variable (auf dem OPC UA Server) auf die lokale Variable im PLCnext Engineer Projekt.
In der Variablengruppe „Write“ fügen Sie eine Variablenzuordnung hinzu, wie unten gezeigt.
Dies überträgt den Wert automatisch von der lokalen Variable im PLCnext Engineer Projekt auf die Remote-Variable (auf dem OPC UA Server).
Schreiben und starten Sie das PLCnext Engineer Projekt.
Im Debug-Modus ändern Sie den Wert der Variable
Client_Data_out. Der Wert wird in die VariableServer_Data_Inauf dem OPC UA Server geschrieben. Dieser Wert wird vom Server inkrementiert und in die VariableServer_Data_Outgeschrieben. Der Wert dieser Variable wird dann in die VariableClient_Data_Inauf dem Client übertragen.
Es funktioniert nicht?
Bitte prüfen Sie den Troubleshooting Guide im PLCnext Info Center (am Ende der Seite).
Häufig gestellte Fragen
F: Kann der Client über Zertifikat/Schlüssel-Authentifizierung mit einem OPC UA Server verbinden?
A: Nein, derzeit nicht.
F: Wie speichert der OPC UA Client das Server-Passwort?
A: Derzeit wird das OPC UA Server-Passwort als Klartext in der Client-Konfigurationsdatei gespeichert, aber die PLCnext Runtime-Entwickler arbeiten an einer sichereren Passwortspeichermethode.
F: Kann ich Qualitätsinformationen (z. B. Status Code, Timestamp) für Daten erhalten, die von einem OPC UA Server gelesen werden?
A: Derzeit nicht, tut uns leid.
Dieser Artikel wurde am 24.03.2025 aktualisiert, um Informationen zur Server-Browse-Funktion einzuschließen, die nun in PLCnext Engineer verfügbar ist.
Anhang: Dateibasierte Konfiguration
Die OPC UA Client-Konfiguration in PLCnext Engineer wird auf dem Controller im XML-Format gespeichert. Für Applikationen, die PLCnext Engineer nicht verwenden, ist es möglich, den OPC UA Client durch direktes Schreiben der XML-Konfiguration auf dem Controller zu konfigurieren.
Die in diesem Beispiel erstellte Konfiguration wird in den folgenden XML-Dateien dargestellt:
Alle erforderlichen Änderungen an den Standard-OPC-UA-Client-Einstellungen sind in der Datei
/opt/plcnext/projects/current/Services/OpcUA/Modules/Client/client.module.configdefiniert:<?xml version="1.0" encoding="utf-8" standalone="yes"?> <OpcUAClientModuleConfigurationDocument schemaVersion="1.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.phoenixcontact.com/schema/opcuaclientmoduleconfig" xmlns="https://www.phoenixcontact.com/schema/opcuaclientmoduleconfig"> <Application> <CertificateStore> <SelfSignedIdentityStoreName>OPC UA Client self-signed</SelfSignedIdentityStoreName> <GivenIdentityStoreName>OPC UA Client</GivenIdentityStoreName> <TrustStoreName>OPC UA Client</TrustStoreName> </CertificateStore> <SessionSecurity> <ApplicationAuthentication>false</ApplicationAuthentication> <ApplicationUriCheck>true</ApplicationUriCheck> <CertificateHostnameCheck>true</CertificateHostnameCheck> <CertificateTimeCheck>true</CertificateTimeCheck> <CertificateIssuerTimeCheck>true</CertificateIssuerTimeCheck> <PasswordEncryptionCheck>true</PasswordEncryptionCheck> </SessionSecurity> <Timeouts> <SessionTimeout>1200000</SessionTimeout> <ConnectTimeout>5000</ConnectTimeout> <WatchdogTimeout>5000</WatchdogTimeout> <CallTimeout>10000</CallTimeout> </Timeouts> </Application> </OpcUAClientModuleConfigurationDocument>OPC UA Client-Verbindungen sind in der Datei
/opt/plcnext/projects/current/Services/OpcUA/Modules/Client/Configs/clientconnections.xmldefiniert:<?xml version="1.0" encoding="utf-8"?> <eUAClientConfigurationDocument xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:uax="https://opcfoundation.org/UA/2008/02/Types.xsd" xmlns="https://phoenixcontact.com/OpcUA/PLCnext/UAClientConfig/Types.xsd"> <eUAClientConfiguration> <Name>ClientConnectionsConfiguration</Name> <NamespaceArray> <uax:String>https://phoenixcontact.com/OpcUA/PLCnext/GlobalDataSpace/</uax:String> </NamespaceArray> <ServerConnections> <eUAClientServerConnection> <EncodingMask>3</EncodingMask> <Endpoint> <uax:EndpointUrl>opc.tcp://192.168.1.10:4840</uax:EndpointUrl> <uax:SecurityMode>Sign_2</uax:SecurityMode> <uax:SecurityPolicyUri>https://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256</uax:SecurityPolicyUri> </Endpoint> <UserTokenType>UserName_1</UserTokenType> <UserName>admin</UserName> <Password>xxxxxxxx</Password> </eUAClientServerConnection> </ServerConnections> <VariableGroups> <eUAClientVariableGroup> <GroupType>Write_1</GroupType> <CycleTime>100</CycleTime> <NodeMappings> <eUAClientNodeMapping> <LocalVariable> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Client_Data_Out</uax:Identifier> </LocalVariable> <RemoteVariableDescriptor> <EncodingMask>2</EncodingMask> <ServerIndex>1</ServerIndex> <NodeId> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Server_Data_In</uax:Identifier> </NodeId> </RemoteVariableDescriptor> </eUAClientNodeMapping> </NodeMappings> </eUAClientVariableGroup> <eUAClientVariableGroup> <GroupType>Subscribe_0</GroupType> <CycleTime>100</CycleTime> <NodeMappings> <eUAClientNodeMapping> <LocalVariable> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Client_Data_In</uax:Identifier> </LocalVariable> <RemoteVariableDescriptor> <EncodingMask>2</EncodingMask> <ServerIndex>1</ServerIndex> <NodeId> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Server_Data_Out</uax:Identifier> </NodeId> </RemoteVariableDescriptor> </eUAClientNodeMapping> </NodeMappings> </eUAClientVariableGroup> </VariableGroups> </eUAClientConfiguration> </eUAClientConfigurationDocument>Diese Datei verwendet die Namespace- und Node ID-Informationen, die zuvor (mit UaExpert) aufgezeichnet wurden, um anzugeben, auf welche Servervariablen der Client zugreifen wird.
In der obigen Datei ändern Sie Folgendes passend zu Ihrer Applikation:
Das Element
uax:EndpointUrlmuss die IP-Adresse (oder den DNS-Namen) Ihres OPC UA Servers enthalten.Die Elemente
UsernameundPasswordmüssen die für den OPC UA Server erforderlichen Anmeldedaten enthalten.
WICHTIG: In diesem Beispiel enthielten die Node ID-Strings in UaExpert den Text
ns=6. In der obigen XML-Datei wurde dies inns=1geändert, da der „namespace“-Parameter (ns) ein Index in die Liste der Namespaces auf dem lokalen Client ist. In diesem Beispiel ist der Namespace-Name, der aus UaExpert kopiert wurde, der erste (und einzige) Namespace in der Liste der Namespaces in unsererclientconfig.xml-Datei.
Die PLCnext Runtime muss nach Änderungen an den OPC UA Client-Konfigurationsdateien neu gestartet werden.
Industrietechnik
- Die Evolution präventiver Wartungssysteme in CMMS-Software
- 4-Kanal IR-Fernbedienung selbst bauen: Haushaltsgeräte steuern
- Energiesparen mit Elektromotoren: 4 bewährte Strategien
- Agilent 8890 GC: Präzise Schwefelanalyse in Diesel & Schweröl
- Einstieg in Industrie 4.0: Praktischer Leitfaden für Hersteller
- Verborgene Gefahr: Wie Smartphone-Akkus persönliche Daten ausspähen können
- Warum Consumer-Product-Marken ihre Digital-Budgets verschwenden
- Wann On-Demand-Fertigung auslagern für optimale Ergebnisse
- Fortgeschrittene Motorkontrollschaltungen: Selbsthaltung, Stopp und Zeitverzögerung
- LM723 meistern: Umfassender Leitfaden zur einstellbaren Spannungsregelung