OPC UA-Client auf PLCnext Control konfigurieren:Schritt-für-Schritt-Anleitung
Die Firmware-Version 2023.0 enthält eine lang erwartete OPC UA-Client-Komponente. Das PLCnext-Infocenter enthält eine gute technische Referenz für diese Funktion.
Dieses Tutorial ist eine Schritt-für-Schritt-Anleitung, die zeigt, wie Sie den OPC UA-Client in einem PLCnext-Steuerungsgerät konfigurieren, damit es Daten mit einem OPC UA-Server austauscht.
Sie benötigen:
- Ein PLCnext-Steuerungsgerät mit der Firmware-Version 2023.0 oder höher, das als OPC UA-Client fungiert. Wenn Sie die Firmware Ihres PLCnext-Steuerungsgeräts aktualisieren müssen, können Sie der im Info Center angezeigten Vorgehensweise folgen.
- PLCnext Engineer Version 2023.3 oder höher.
- Ein OPC UA-Server. In diesem Artikel wird ein zweites PLCnext Control-Gerät als OPC UA-Server verwendet. Sie können jedoch dasselbe PLCnext Control-Gerät verwenden, das Sie zum Hosten des Clients verwenden, oder alternativ einen beliebigen OPC UA-Server eines Drittanbieters, der beispielsweise auf einem Windows-PC ausgeführt wird. Bei Servern von Drittanbietern müssen Sie herausfinden, wie Sie die folgenden „Server“-Schritte für Ihren Server anpassen können.
- 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, die Sie bei der Konfiguration der OPC UA-Kommunikation beachten sollten, ist, dass sich der OPC UA-Client und der OPC UA-Server aus Sicherheitsgründen gegenseitig vertrauen müssen. Daher müssen Sicherheitszertifikate zwischen den Client- und Servergeräten ausgetauscht werden. Bei diesem Verfahren muss zwischen dem Client-Gerät und dem Server-Gerät gewechselt werden, was etwas verwirrend sein kann. Wenn Sie Vorschläge haben, wie Sie den Vorgang vereinfachen können (ohne die Sicherheitsüberprüfungen zu deaktivieren!), können Sie diese gerne in den Kommentaren hinzufügen.
Vorgehensweise
OPC UA-Servergerät
-
Öffnen Sie die Web Based Management (WBM)-Site, indem Sie zur IP-Adresse der SPS navigieren.
-
Wählen Sie die Systemdienste aus Element aus dem Konfigurationsmenü.
-
Aktivieren Sie den OPC UA Server Dienst, falls er nicht bereits aktiviert ist.
-
Klicken Sie auf Übernehmen und neu starten Klicken Sie ggf. auf die Schaltfläche.
-
Öffnen Sie PLCnext Engineer.
-
Erstellen Sie ein neues PLCnext Engineer-Projekt mit der Vorlage für Ihr PLCnext-Steuerungsgerät.
-
Stellen Sie die IP-Adresse der SPS im PLCnext Engineer-Projekt ein.
-
Auf dem OPC UA Server Konfigurationsseite:
-
Legen Sie den DNS-Namen/die IP-Adresse fest an 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 Informationen werden in das Sicherheitszertifikat des OPC UA-Servers aufgenommen. Viele OPC UA-Clients lehnen das Serverzertifikat ab, wenn diese Informationen im Zertifikat nicht mit der Server-URL übereinstimmen.
-
Legen Sie Sichtbarkeit von Variablen fest bis Markiert . Dies bedeutet, dass alle mit dem OPC-Attribut gekennzeichneten Variablen über den OPC UA-Server zugänglich sind.
-
-
Erstellen Sie Variablen, die vom OPC UA-Server verfügbar gemacht werden. Stellen Sie sicher, dass OPC Das Kontrollkästchen für diese Variablen ist aktiviert. Im folgenden Beispiel wurden zwei Variablen im Hauptprogramm erstellt.
-
Fügen Sie Logik hinzu, um die Ausgabevariable zu ändern, wenn ein neuer Eingabewert empfangen wird. In diesem Beispiel hat das Hauptprogramm den folgenden Code ausgeführt:
Server_Data_Out := Server_Data_In + 1; -
Schreiben und starten Sie das Projekt.
Beachten Sie, dass PLCnext Engineer ab Version 2025.0 eine „Durchsuchen“-Funktion enthält, mit der Variableneinträge im OPC UA-Client erstellt werden können. Wenn diese Suchfunktion verwendet wird, ist es nicht erforderlich, UaExpert zu verwenden, um Informationen über Servervariablen abzurufen, und die nächsten drei Schritte können übersprungen werden.
-
Verwenden Sie UaExpert, um mit dem SPS-Benutzernamen und Passwort eine Verbindung zum OPC UA-Server herzustellen. Sie sollten eine Warnung sehen, dass das Zertifikat „Nicht vertrauenswürdig“ ist, es sollten jedoch keine weiteren Warnungen angezeigt werden.
-
Vertrauen Sie dem Serverzertifikat, entweder dauerhaft oder nur für diese Sitzung.
-
Notieren Sie für jede Servervariable den Namen der Node-ID und der Namespace für diese Variable.
-
Öffnen Sie erneut die WBM-Site für die Server-SPS.
-
Wählen Sie die Zertifikatauthentifizierung aus Element aus dem Menü „Sicherheit“.
-
Wählen Sie die Identitätsspeicher aus Tab.
-
Laden Sie das Zertifikat vom OPC UA-selbstsignierten herunter [Server] Identitätsspeicher. Das Schlüsselpaar muss nicht heruntergeladen werden.
OPC UA-Client-Gerät
-
Öffnen Sie die Web Based Management (WBM)-Site, indem Sie zur IP-Adresse der SPS navigieren.
-
Wählen Sie die Systemdienste aus Element aus dem Konfigurationsmenü.
-
Aktivieren Sie den OPC UA Client Dienst, falls er nicht bereits aktiviert ist.
-
Klicken Sie auf Übernehmen und neu starten Klicken Sie ggf. auf die Schaltfläche.
-
Wenn der Neustart abgeschlossen ist, melden Sie sich erneut bei der WBM-Site an und wählen Sie die Zertifikatauthentifizierung aus Element aus dem Menü „Sicherheit“.
-
Wählen Sie die Trust Stores aus Tab.
-
Fügen Sie das OPC UA-selbstsignierte hinzu [Server]-Zertifikat (zuvor heruntergeladen) im Trust Store mit dem Namen OPC UA Client . Jetzt vertraut der OPC UA-Client dem Sicherheitszertifikat, das vom OPC UA-Server zur Überprüfung seiner Identität verwendet wird. Dieser Schritt muss jedes Mal wiederholt werden, wenn sich das Serverzertifikat ändert.
-
Wählen Sie die Identitätsspeicher aus Registerkarte .
-
Laden Sie das Zertifikat vom selbstsignierten OPC UA-Client herunter Identitätsspeicher. Das Schlüsselpaar muss nicht heruntergeladen werden.
OPC UA-Servergerät
-
Öffnen Sie die Web Based Management (WBM)-Site, indem Sie zur IP-Adresse der SPS navigieren.
-
Wählen Sie die Zertifikatauthentifizierung aus Element aus dem Menü „Sicherheit“.
-
Wählen Sie die Trust Stores aus Tab.
-
Fügen Sie den selbstsignierten OPC UA-Client hinzu Zertifikat (zuvor heruntergeladen) im Trust Store mit dem Namen OPC UA-konfigurierbar . Jetzt vertraut der OPC UA-Server dem vom OPC UA-Client verwendeten Sicherheitszertifikat, um seine Identität zu überprüfen. Dieser Schritt muss jedes Mal wiederholt werden, wenn sich das Client-Zertifikat ändert.
OPC UA-Client-Gerät
-
Öffnen Sie PLCnext Engineer.
-
Erstellen Sie ein neues PLCnext Engineer-Projekt mit der Vorlage für Ihr PLCnext-Steuerungsgerät. Wenn Sie dasselbe Gerät sowohl für den OPC UA-Client als auch für den OPC UA-Server verwenden, wird dasselbe PLCnext Engineer-Projekt verwendet.
-
Stellen Sie die IP-Adresse der SPS im PLCnext Engineer-Projekt ein.
-
Nur für SPS erforderlich, auf denen Firmware-Versionen vor 2023.6 ausgeführt werden: Auf dem OPC UA Server Legen Sie auf der Konfigurationsseite die Sichtbarkeit von Variablen fest bis Markiert . Ja, es erscheint seltsam, diese OPC UA-Servereinstellung für den OPC UA-Client zu erfordern. Dies ist in den Firmware-Versionen 2023.6 und höher behoben.
-
Erstellen Sie Variablen, die mit Variablen im OPC UA-Server verbunden werden. Nur für SPS erforderlich, auf denen Firmware-Versionen vor 2023.6 ausgeführt werden: Stellen Sie sicher, dass OPC Das Kontrollkästchen ist für diese Variablen aktiviert (das Kontrollkästchen muss nicht für SPS aktiviert werden, auf denen die Firmware-Version 2023.6 oder höher ausgeführt wird).
Im folgenden Beispiel wurden zwei Variablen im Hauptprogramm erstellt.
-
Fügen Sie auf der Registerkarte „OPC UA-Clientverbindungen“ einen Server und zwei Variablengruppen hinzu, wie unten gezeigt.
Die Server-URL, der Benutzername und das Passwort sollten entsprechend dem von Ihnen verwendeten OPC UA-Server geändert werden.
-
Fügen Sie in der Variablengruppe „Abonnieren“ eine Variablenzuordnung hinzu, wie unten gezeigt.
Dadurch wird der Wert automatisch von der Remote-Variable (auf dem OPC UA-Server) an die lokale Variable im PLCnext Engineer-Projekt übertragen.
-
Fügen Sie in der Variablengruppe „Schreiben“ eine Variablenzuordnung hinzu, wie unten gezeigt.
Dadurch wird der Wert automatisch von der lokalen Variablen im PLCnext Engineer-Projekt an die Remote-Variable (auf dem OPC UA-Server) übertragen.
-
Schreiben und starten Sie das PLCnext Engineer-Projekt.
-
Ändern Sie im Debug-Modus den Wert der Variablen
Client_Data_out. Der Wert wird in die VariableServer_Data_Ingeschrieben auf dem OPC UA Server. Dieser Wert wird vom Server erhöht und in die VariableServer_Data_Outgeschrieben . Der Wert dieser Variablen wird dann an die VariableClient_Data_Inübertragen auf dem Client.
Es funktioniert nicht?
Bitte lesen Sie die Fehlerbehebungsanleitung im PLCnext Info Center (unten auf der Seite).
Häufig gestellte Fragen
F:Kann der Client mithilfe der Zertifikat-/Schlüsselauthentifizierung eine Verbindung zu einem OPC UA-Server herstellen?
A:Nein, im Moment nicht.
F:Wie speichert der OPC UA-Client das Serverkennwort?
A:Im Moment wird das OPC UA-Server-Passwort als Klartext in der Client-Konfigurationsdatei gespeichert, aber die PLCnext Runtime-Entwickler arbeiten an einer sichereren Methode zur Passwortspeicherung.
F:Kann ich Qualitätsinformationen (z. B. Statuscode, Zeitstempel) für Daten erhalten, die von einem OPC UA-Server gelesen werden?
A:Im Moment leider nicht.
Dieser Artikel wurde am 24.03.2025 aktualisiert und enthält nun Informationen über die Server-Browse-Funktion, die jetzt in PLCnext Engineer verfügbar ist.
Anhang:Dateibasierte Konfiguration
Die OPC UA Client-Konfiguration im PLCnext Engineer wird im XML-Format auf der Steuerung gespeichert. Für Anwendungen, die PLCnext Engineer nicht nutzen, besteht die Möglichkeit, den OPC UA Client zu konfigurieren, indem die XML-Konfiguration direkt auf die Steuerung geschrieben wird.
Die in diesem Beispiel vorbereitete Konfiguration wird in den folgenden XML-Dateien dargestellt:
-
Alle erforderlichen Änderungen an den Standardeinstellungen des OPC UA-Clients 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="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.phoenixcontact.com/schema/opcuaclientmoduleconfig" xmlns="http://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 werden in der Datei
/opt/plcnext/projects/current/Services/OpcUA/Modules/Client/Configs/ clientconnections.xmldefiniert :<?xml version="1.0" encoding="utf-8"?> <eUAClientConfigurationDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns="http://phoenixcontact.com/OpcUA/PLCnext/UAClientConfig/Types.xsd"> <eUAClientConfiguration> <Name>ClientConnectionsConfiguration</Name> <NamespaceArray> <uax:String>http://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>http://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 den Namespace und Knoten-ID Zuvor aufgezeichnete Informationen (mit UaExpert), um anzugeben, auf welche Servervariablen der Client zugreifen wird.
-
Ändern Sie in der obigen Datei Folgendes entsprechend Ihrer Anwendung:
-
Das Element
uax:EndpointUrlmuss die IP-Adresse (oder den DNS-Namen) Ihres OPC UA-Servers enthalten. -
Der
UsernameundPasswordElemente müssen die für den OPC UA-Server erforderlichen Anmeldeinformationen enthalten.
WICHTIG: In diesem Beispiel die Knoten-ID Zeichenfolgen in UaExpert enthielten den Text
ns=6. In der obigen XML-Datei wurde dies inns=1geändert , da der Parameter „namespace“ (ns) ist ein Index in der Liste der Namespaces auf dem lokalen Client . In diesem Beispiel der Namespace Der von UaExpert kopierte Name ist der erste (und einzige) Namespace in der Liste der Namespaces in unseremclientconfig.xmlDatei. -
Die PLCnext Runtime muss neu gestartet werden, nachdem Änderungen an den OPC UA Client-Konfigurationsdateien vorgenommen wurden.
Industrietechnik
- Ein definitiver Leitfaden für die Lights-Out-Fertigung
- Fast Minute:Vergleich von 3-Achsen- und 5-Achsen-CNC-Bearbeitung
- Grundlegendes zum Brandschutz von Staubabscheidern
- Die Bedeutung der Asset-Verfolgung mithilfe von Asset-Tags und Asset-Labels
- Effektive Waffenverfolgung ist ein globales Anliegen
- 5 Gründe für Geschäfte mit einer Maschinenwerkstatt im Großraum Montreal
- Die sieben Arten der additiven Fertigung verstehen
- Das richtige Unternehmen für Stahldetaillierung finden
- VIDEO:Schoeneck Container verwendet i-Alert2, um Fehler zu vermeiden
- Wie Automatisierung Abfall in der Lebensmittelversorgungskette reduzieren kann