LabVIEWForum.de - OPC-UA Verbindung klappt zum Teil nicht

LabVIEWForum.de

Normale Version: OPC-UA Verbindung klappt zum Teil nicht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, vielleicht kann mir hier jemand weiterhelfen.

Ich probierte gerade als OPC-Neuling in das Thema einzuarbeiten.
Aber wie es halt so ist, aller Anfang ist mit Hürden verbunden.

Im Anhang habe ich eine ZIP-Datei in der sich zwei Projekte befinden.
Einmal der Server und einmal der Client.
Im Server schicke ich Daten raus die dann im Client angezeigt werden sollten.
Die Betonung liegt auf „sollten“.
Ein Teil der Daten wird angezeigt und ein Teil nicht.
Insbesondere habe ich bei den Daten im Client Probleme.

Die Daten die im Array angezeigt werden machen die Probleme.

Hier scheint es so, dass die Daten immer wieder überschrieben werden und immer nur der letzte Datensatz im Array angezeigt wird.
Das habe ich kurz gesehen, wenn ich im Client das Timeout im Ereignis auf 100ms einstelle.
Da sieht man das die Daten kurz durchhuschen.

Bitte vergesst nicht den Server End Point im Client einzutragen der im Server angezeigt wird.
Noch ein Hinweis. Ich verwende das OPC-UA Toolkit (Version ist unklar sollte eigentlich für lv19_img sein aber im Lizenz Manager wird 16 angezeit).

Gruß Hubert
Die Version 2016 vom OPC UA Toolkit ist zumindest nicht falsch. NI macht nichts mehr an dem Toolkit und hat
es IMHO auch nie wirklich nach dem damaligen Stand zu Ende entwickelt.

Nun zu deinem Server und Client.

- Wieso du in der Server Applikation einen Client öffnest, erschließt sich mir nicht. Das geht alles über den Server.
Um hier im Text nun Server und Client unterscheiden zu können schreibe ich für den in der Server Applikation
vorhandenen Client im folgenden immer "Server-Client" und für die Client Applikation verwende ich nur "Client".

- Du schreibst die Daten aller Parameter in der For Loop (also so schnell es eben geht) in den Server-Client.
Alle Parameter Namen werden dabei in die gleiche Node-ID "ns=2;s=PA" geschrieben, alle MIN Werte in
die Node-ID "ns=2;s=MIN".

Der Client zeigt die genau das an, was du im Server-Client gemacht hast. Da zwischen den Schreibvorgängen
etwa eine Sekunde liegt, siehst du im Client nahezu immer nur den letzten Parameter (Parameter_9).


Du musst also einfach nur das machen, was du mit dem Daten aus deinem Machine_header machst: Jeder
Wert muss in eine eigene Node-ID geschrieben werden.

Alternativ dazu könntest du auch die einzelnen Werte aus deinem "Machine value" Cluster mit einem Array
Datentyp anlegen also z.B. MIN als Array of Float und dann alle MIN Werte in einem Array zusammenfassen
und so in deinen Server-Client schreiben.
Hallo Martin,
danke für deine Antwort.
Zu Punkt 1: Wurde denn das OPC UA Toolkit ab LV21 weiter Entwickelt?

Zu Punkt 2: Als ich damit angefangen habe wollte ich es genauso realisieren.
Das hat aber nicht funktioniert. Ich gebe dir Recht, wenn du das merkwürdig findest.
Ich werde mich heute nochmal hinsetzen und das probieren. So ist mir das wesentlich lieber und auch sinnvoll.

Zu Punkt 3: Du hast ebenfalls recht. Den Fehler den habe ich gestern selber gefunden und behoben.
Und läuft nun.

Zu Punkt 4: Mein Server-Client dient mir nur zur Simulation.
Der Hardware (Server) auf die ich später zugreifen möchte unterstützt leider keine Arrays oder Variant das ist schade und wäre mir auch lieber.

Grüß Hubert
(11.02.2024 10:28 )Hubert R. schrieb: [ -> ]Hallo Martin,
danke für deine Antwort.
Zu Punkt 1: Wurde denn das OPC UA Toolkit ab LV21 weiter Entwickelt?
Die letzte Version des Toolkits ist 2016 und es wird auch keine neuere Version mehr geben.
Hallo Martin,

ich habe das nun nochmal ausprobiert nur Server R-W und ein Client.
Was soll ich sagen es hat geklappt. Keine Ahnung warum das beim ersten Mal nicht funktioniert hat.
Vielleicht war es zu diesem Zeitpunkt einfach fehlendes Wissen. Das macht die Sache mit dem Simutator
um einiges einfacher. Hierzu nochmal herzlichen Dank für den Hinweis.

Ich habe mir auch die Beispiele in LV angesehen. Die bauen da viel mehr aus der OUC UA Palette ein.
Ist das für einen stabilen Betrieb später besser. Was sind so deine Erfahrungen damit?

Gruß Hubert
Hallo Hubert,

(11.02.2024 11:39 )Hubert R. schrieb: [ -> ]Ich habe mir auch die Beispiele in LV angesehen. Die bauen da viel mehr aus der OUC UA Palette ein.
Ist das für einen stabilen Betrieb später besser.

Nachdem die Basis nun funktioniert macht es schon Sinn, sich die anderen VIs auch noch anzusehen und die Daten hierarchisch abzubilden. Das sieht sonst reichlich unübersichtlich aus, wenn alles einfach ganz oben angeordnet ist. Der Server selbst hat schließlich auch noch jede Menge Daten, von denen zu zur Zeit vielleicht noch nichts ahnst.

Zitat:Was sind so deine Erfahrungen damit?

Ähm ... es gibt bei mir nicht viele Projekte mit UPC UA und alle sind durchweg sehr einfach gehalten. Ich habe keine Ahnung, was die Kunden damit anstellen und ob sie es überhaupt verwenden.
Referenz-URLs