LabVIEWForum.de - Load Cluster (XML) aus SubVI in ein weiteres SubVI?

LabVIEWForum.de

Normale Version: Load Cluster (XML) aus SubVI in ein weiteres SubVI?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,


Ich höchte Daten aus einem Cluster Daten abspeichern und diese wieder laden.
Diese Funktionen funktionieren problemlos im MainVI.

Jetzt habe ich die "Load"-Funktion in einem eigenen VI ausgelagert.
Damit möchte ich unterschiedliche Cluster einlesen und nicht
jedesmal eine eigene Sequenz dazu schreiben.

Ein - und Ausgänge habe ich mit Bedienelementen etc versehen.
Einzig mit einem allgemeinen Cluster als Platzhalter habe ich Probleme.
Er wird nicht angenommen.

Oberhalb der CASE-Sequenz habe ich die Boundle / Unbundle gezeichnet, die ich in dem MainVI, allerdings mit mehr Einträgen, verwendet habe.

Was kann ich tun, um diese LOAD-Funktion als VI auszulagern?

BTW: wie wird das z.B. bei der "Unflatten From XML" gemacht, müsste doch sehr ähnlich sein?

Danke
messbuchse
Hallo messbuchse,

LabVIEW ist bei seinen Datentypen sehr strikt im Umgang. Du kannst nicht zwei verschiedene Clustertypen an ein- und denselben Eingang anschließen!

Du kannst den Cluster in ein Variant verpacken oder ihn in einen String serialisieren. Aber ob dir das beim Speichern mit XML hilft, bleibt dahingestellt...
Ich habe eine Lösung gefunden. Ob diese allerdings elegant ist, weiß ich nicht.

Ich reiche den Cluster aus dem MainVI per Umgebungsvariable an das SubVI weiter. Dort werden die Daten als XML abgespeichert.

Das Abspeichern ist mit Hilfe eines weiteren VIs ebenfalls möglich.
Also für die Umwandlung in den Datentypen Variant brauchst du keine Umgebungsvariablen. Engineering Overkill...

Gruß, Jens
Hallo Jens,

das dachte ich mir auch, als ich diese Bilder gesehen habe...

Der zweite Gedanke: Erzeugt man sich mit dieser Vorgehensweise nicht auch wunderbare RaceConditions? Big Grin

@Messbuchse:
Das, was du mit den 2 Umgebungsvariablen (warum keine einfachen globalen Variablen?) machst, lässt sich viieeel einfacher mit Drähten und Ein-/Ausgängen des subVI erledigen...
Doch. Hehe
Das fiel mir auch als allererstes auf.
Der Errorcluster wäre in dem Fall sehr wichtig.
Wobei wie schon gesagt, Shared Variables sind für diese Aufgabe mit Kanonen auf Spatzen geschossen.

Gruß Markus

(19.06.2012 21:00 )GerdW schrieb: [ -> ]Der zweite Gedanke: Erzeugt man sich mit dieser Vorgehensweise nicht auch wunderbare RaceConditions? Big Grin
Danke für Eure Hinweise.

Als Anfänger braucht man durchaus mal den einen oder anderen Klopfer in den Nacken Big Grin

Ich habe es jetzt wie angehängt gelöst und benötige nun keine Variable mehr
für die Übergabe eines beliebigen Clusters an das SubVI.
Beim linken Bild verwendest du die Value-Eigenschaft der Property Nodes um deine Eingangscontrols mit (neuen) Werten zu versorgen. Wenn es nur darum geht, die Werte zu setzen (und ansonsten keine anderen Properties) solltest du lokale Variablen verwenden, da dies wesentlich effizienter ist als der Weg über die Property Nodes.
Referenz-URLs