TIA OPC UA Server-Client Verbindung klappt nicht

Jens Knebel

Level-2
Beiträge
21
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich versuche gerade eine OPC UA Verbindung zu erstellen und testen zwischen 2 SPSen von Siemens in TIA V17

OPC UA Server: CPU 1512C1PN V2.8 Firmware 6ES7 5121CK00-0AB0 Ethernet 10.98.66.193 255.255.255.192 Router 10.98.66.254
Es wurde eine Server-Schnittstelle_1 angelegt

OPC UA Client: CPU 1512SP1PN V2.9 Firmware 6ES7 5121DK01-0AB0 Ethernet 10.98.66.225 255.255.255.192 Router 10.98.66.254
Es wurde eine Client-Schnittstelle angelegt: Eine Leseliste_1 und eine Schreibliste_1

Verbindung als Gast erstmal ohne Security, bis ich das zum Laufen bekomme.

Bitte um Support!

Mir fehlen da auch Grundkenntnisse: Was ist denn z.B. eine Methodenliste? Wozu braucht man das?
In dem .rar File findet man viele Screenshots, wie Einstellungen, Aufrufe SFB, ...

Wäre für jeden Tipp Dankbar!
 

Anhänge

Zuletzt bearbeitet:
Hi Jens,

Hinweis: Versuche Sonderzeichen in den Variablennamen zu vermeiden. Würde mich bei Variablennamen auf "[a-z][A-Z[]0-9]_-" beschränken.
Zum Testen würde ich klare C-Netzwerk Parametrierungen nehmen IP:10.98.6.1 SN:255.255.255.0 usw.

Methoden Listen werden gebraucht, wenn der Client auch OPC UA Methoden aufrufen soll.

Wird beim Zugriff auf die Nodes auch der korrekte Namespace verwendet? Hier kann man sich schnell vertuen, weil die Nodes normalerweise bei einer PLC im NS3 angelegt werden. NS0 und NS1 meist schon belegt. Kann man im UA Expert sehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Michitronik,

zuerst mal vielen Dank für deine Antwort.
Also durchblicken tue ich da nicht so sehr. Am liebsten würde ich dir mal den Programmcode schicken wollen.
Ich teste mit den original-CPUs, und den original IP-Adressen, wie Sie dann auch verwendet werden.

Ich rufe zur Zeit keine Methoden auf, weil ich nicht weiß, was es damit auf sich hat.
Welche Sonderzeichen hast du denn entdeckt bei mir, was zu Fehlern führen kann?

Kannst du das anhand meiner Word-Datei, die ich angehängt hatte, prüfen, ob da Fehler bei der Verknüpfung Nodes/Namespaces vorliegen?

Ich versuche mal das Programm anzuhängen. Also Ich brächte da echt deine Hilfe nochmal, da ich das noch nie gemacht hatte vorher.
Ich komme da alleine nicht weiter!

Datei wohl zu groß (50MB) - Kann ich dir das irgendwo anders als Download parken?

Also erste Tests mit UAExpert waren alle erfolgreich! Ich konnte lesen und schreiben zwischen Server und Client! Da habe ich auch ein Screenshot in mein Word mit drinnen

Viele Grüße

Jens
 
Schau dir mal die Kompaktanweisungen an. Damit haben wir uns das Namespacehandling usw. sparen können.
Im Prinzip brauchst du dann nur
* OPC_UA_ReadList_C
Eine Instanz pro Clientschnittstelle bei dem Daten gelesen werden.
* OPC_UA_WriteList_C
Eine Instanz pro Clientschnittstelle bei der Daten geschrieben werden.

Hast du in der Gerätekonfiguration auch den OPC UA-Client aktiviert und die Client-Schnittstelle konfiguriert?
 
Hi hannesS,

in meinem Anhang kannst du die ganzen Einstellungen sehen.
Was sind denn Kompaktanweisungen. Wo kann ich die denn ansehen?

Gruß
Jens
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das nächste Problem was ich habe:
Wollte heute nochmal online auf die CPUs, da kommt nun ein Fehler beim Übersetzen der Hardware:
"Das OPC UA-Server Zertifikat unterstützt nur die kryptografische RSA-Methode. Ändern Sie die Server-Berechtigungen nach RSA"
Sagt mir auch nix.
Also ich will als erstes eine zertifikatsfrei, unsichere, ohne Passwörter-Verbindung zwischen den 2 SPSen.
Danach will ich das härten mit Schutz und Verschlüsselung und Zertifikaten, usw.

Jens
 
Das nächste Problem was ich habe:
Wollte heute nochmal online auf die CPUs, da kommt nun ein Fehler beim Übersetzen der Hardware:
"Das OPC UA-Server Zertifikat unterstützt nur die kryptografische RSA-Methode. Ändern Sie die Server-Berechtigungen nach RSA"
Sagt mir auch nix.
Also ich will als erstes eine zertifikatsfrei, unsichere, ohne Passwörter-Verbindung zwischen den 2 SPSen.
Danach will ich das härten mit Schutz und Verschlüsselung und Zertifikaten, usw.

Jens
Ich glaube nicht, dass Siemens ganz unsichere Verbindungen zulässt..
 
Hi hannesS,

in meinem Anhang kannst du die ganzen Einstellungen sehen.
Was sind denn Kompaktanweisungen. Wo kann ich die denn ansehen?

Gruß
Jens

Die findet man in den normalen OPC Anweisungen, siehe Screenshot. Allerdings nutzen wir TIA V18. Möglich, dass es diese in V17 noch nicht gab.

Clientaktivierung musst du in der Gerätekonfiguration anhaken, siehe Screenshot 2.
 

Anhänge

  • Screenshot 2024-12-10 113206.png
    Screenshot 2024-12-10 113206.png
    77,7 KB · Aufrufe: 23
  • Screenshot 2024-12-10 113611.png
    Screenshot 2024-12-10 113611.png
    36,6 KB · Aufrufe: 24
Hi Jens,

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

Das ist ein recht gutes Tutorial für deine Anwendung.

Gruß
 
Hi Jens,

habe leider nur immer Abends etwas Zeit um im Forum was zu machen.

...
Welche Sonderzeichen hast du denn entdeckt bei mir, was zu Fehlern führen kann?
...
Die Werte in dem DB, die du nutzt haben z.B. "(kg)" usw.
...
Kannst du das anhand meiner Word-Datei, die ich angehängt hatte, prüfen, ob da Fehler bei der Verknüpfung Nodes/Namespaces vorliegen?
...
Kann ich so auf anhieb nicht direkt sehen.
...
Also erste Tests mit UAExpert waren alle erfolgreich! Ich konnte lesen und schreiben zwischen Server und Client! Da habe ich auch ein Screenshot in mein Word mit drinnen
...
Der Test Zeigt ja schon mal, dass der Server soweit läuft.

Wie @hannesS schon schrieb, ist es einfacher die Bausteine "OPC_UA_ReadList_C" und "OPC_UA_WirteList_C" zu verwenden. Diese handeln den Verbindungsaufbau.

Um mehr Informationen zu den Bausteinen zu bekommen, ist die TIA Hilfe sehr nützlich. Diese kann über das "extended" Tooltip, welches beim schweben mit dem Mauszeiger über die Anweisung erscheint, abgerufen werden. Ansonsten kann man die Hilfe mit F1 öffnen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Jens,

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

Das ist ein recht gutes Tutorial für deine Anwendung.

Gruß
Hi Bsccb,

ich weiß jetz, was du meinst mit Compact-Bausteinen. Ich kann die nicht auswählen. Bei mir in TIA V17 gibt es nur die normalen Read und Write Bausteine ohne das -C also keine Compact. Geht das nur in TIA V18?
 
Habs gefunden! Da muss da auf Version V3.0 umstellen auf OPC-UA Client Ordner.
Mit den Compakt Bausteinen läuft meine OPC UA Kopplung!!!

Ich dachte schon, das wird nix mehr...
Viele liebe Grüße an alle!

DANKE
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur nochmal aus reiner Neugierde:
Wie würdet ihr diese Begriffe mit euren Worten beschreiben:

Was sind Nodes?
Was sind Namespaces?
Was sind Namespaceindexes?
Was sind Methoden??

Danke euch!
 
Zuletzt bearbeitet:
Nur nochmal aus reiner Neugierde:
Wie würdet ihr diese Begriffe mit euren Worten beschreiben:

Was sind Nodes?
Was sind Namespaces?
Was sind Namespaceindexes?
Was sind Methoden??

Danke euch!
Nodes (Knoten): OPC UA bietet Daten in der Form eines Informationsmodells an. Dieses Modell ist ein Graph bestehend aus Knoten, die mit Referenzen untereinander verbunden sind. Es gibt mehrere Klassen von Knoten, u.A. Objekte, Variablen und Methoden.

Namespaces (Namensräume): Wenn sich das Gesamtmodell auf dem Server aus verschiedenen Teil-Modellen zusammensetzt, und diese Teil-Modelle von ganz unterschiedlicher Seite unabhängig voneinander entwickelt werden, dann könnte es zu Namenskonflikten kommen. Um das zu verhindern, und komplexe Abstimmungen zwischen unterschiedlichen Organisationen zu vermeiden, gibt es Namensräume. Sowohl die NodeId (die einen Knoten eindeutig auf einem Server identifiziert) als auch der BrowseName (ein sprachunabhängiger Name des Knoten) "leben" daher in einem Namensraum. Man sagt auch, diese ID bzw. Name sind "qualifiziert" durch einen Namensraum. Ein Namensraum wird durch eine URI (entweder eine URN oder eine URL) identifiziert.

Namespaceindex: Da so eine URI recht lang werden kann (theoretisch beliebig lange, in der Praxis max. 2000 Zeichen), möchte man diesen String nicht bei jeder NodeId und jedem BrowseName mit dazuspeichern müssen. Daher gibt es eine Tabelle, die NamespaceTable, in der alle URIs der Namespaces stehen, und man verwendet nur den Index in diese Tabelle statt der URI selbst. Sehr wichtig: Ein NamespaceIndex ist immer nur lokal in dem jeweiligen Kontext gültig! In einem NodeSet (einer XML-Datei, die ein (Teil-)Modell beschreibt) bezieht sich der NamespaceIndex nur auf die Tabelle, die in diesem NodeSet steht. Auf dem Server bezieht sich der NamespaceIndex immer auf die NamespaceTable, die man an einem Property am Server-Objekt auslesen kann. Genauer gesagt: auslesen MUSS.

Methoden: Wie Prozeduren/Funktionen in einer Programmiersprache. Man kann sie aufrufen und dabei mehrere Input-Argumente mitgeben und bei der Rückkehr bekommt man mehrere Output-Argumente wieder zurück. Der Vorteil: Konsistenz der Argumente zueinander, und zeitliche Steuerung (Antwort kommt erst, wenn die Methode durchgelaufen ist). Ohne Methoden müsste man das Bereitstellen der Input-Argumente, das Triggern einer Aktion, die Erkennung des Endes, und die Auswertung der Output-Argumente über viele Variablen steuern - sehr umständlich und fehlerträchtig.
 
Zurück
Oben