LabVIEWForum.de
FGV Funktionale Globale Variable - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: FGV Funktionale Globale Variable (/Thread-FGV-Funktionale-Globale-Variable)

Seiten: 1 2 3 4


FGV Funktionale Globale Variable - cabua - 25.08.2009 06:57

Hallo LabVIEW User,

Ich habe das Problem, dass ich bei einem vorhandenen Projekt Daten abgreifen muss. Diese Daten werden über das komplette Projekt hinweg erzeugt. Bei einer hierarchischen Tiefe von ~ 10 (SubVI 1 ruft SubVI 2 auf, SubVi 2 ruft SubVI 3 auf, ...) ist es quasi unmöglich ohne starke Eingriffe in den Vis diese Daten zu bekommen.

Im LVOOP Thread deutete der Member "IchSelbst" an, dass FGV soetwas wie Datenspeicher sind. Und genau soetwas wäre ja ideal für mein Vorhaben.
Meine ersten Gehversuche sind schiefgegangen. Inzwischen denke ich aber, dass ich das Konzept verstanden habe.


Als Beispiel habe 2 Controls für die Datenspeicherung und 2 Indicatoren für das Auslesen.
Lv86_img
[attachment=20749]
[attachment=20748]
[attachment=20751]

Dieses neue SubVI kann man nun als Datenspeicher verwenden.
Ist diese Vorgehensweise korrekt? Gibt es bessere Lösungen? Ich habe nur einfache Datentypen gewählt (String), wie schauts mit Cluster aus? Kann ich mittels FGV ein einzelnes Element im Cluster verrändern? Es wäre nett, wenn "IchSelbst" vielleicht noch etwas von seinem Wissen preisgeben würde. Alle anderen natürlich auch.

Auf eine rege Diskussion
Big Grin


FGV Funktionale Globale Variable - Y-P - 25.08.2009 07:16

Hallo,

im Großen und Ganzen sieht das doch schon mal gut aus.
Ich habe i. d. R. aber noch einen Initialisierungscase.
Cluster kannst Du natürlich auch verwenden. Ist nur eine Frage des Aufbaus.

Gruß Markus


FGV Funktionale Globale Variable - cabua - 25.08.2009 07:28

Hallo Markus,

ein Init Case um Standardwerte festzulegen, falls der Datenspeicher nicht beschrieben wurde?


FGV Funktionale Globale Variable - Y-P - 25.08.2009 07:54

Einen Init-Case, um die FGV (bzw. die enthaltenen Elemente) mit einem Standardwert vorzubelegen.

Gruß Markus


FGV Funktionale Globale Variable - IchSelbst - 25.08.2009 08:18

' schrieb:Ist diese Vorgehensweise korrekt?
Im Prinzip ja.

Zitat:Gibt es bessere Lösungen?
"Besser" ist immer vom Standpunkt anhängig. In manchen Fällen ist die von dir gefundene Lösung ideal, weil ausreichend.

Zitat:wie schauts mit Cluster aus?
Geht genau so. Auch ein Cluster ist nur ein Wire.
Bei (großen) Datenclustern verwende ich als Eingang in die FGV einen Variant und der Enumerator enthält ggf. sehr viele Werte. Ein Muster werde ich heute abend posten.

Zitat:Kann ich mittels FGV ein einzelnes Element im Cluster verrändern?
Klar: Über den Variant den Wert des Unterelementes hereingeben und im Enumerator sagen, welches Unterelement ersetzt werden soll. Im Übrigen kommt dieses Verfahren einem Property sehr nahe.


FGV Funktionale Globale Variable - MichaDu - 25.08.2009 15:18

Gibt es auch eine Möglichkeit außer der Verwendung von Arrays oder Clustern, zwei identische FGVs (z.B. vom Typ Double) zu verwenden? Sobald ich einen Wert in das zweite VI (Kopie des ersten) schreibe, wird der Wert aus dem ersten VI ja überschrieben. Die Ausführung als reentrant funktioniert auch nicht, da ich die Werte aus den Kopien dann nicht mehr lesen kann.


FGV Funktionale Globale Variable - IchSelbst - 25.08.2009 15:25

' schrieb:Die Ausführung als reentrant funktioniert auch nicht, da ich die Werte aus den Kopien dann nicht mehr lesen kann.
Geht doch. Tongue

Mach die reentranten VIs in ein SubVI rein. Diesem SubVI gibst du zusätzlich zu den Parametern, die in die FGV sollen (und dorthin weitergeleitet werden), einen Enumerator z.B. mit den Werten "FGVx". In diesem SubVI liegen die FGVs in unterschiedlichen Cases, die durch den zusätzlichen Enumerator ausgewählt werden. Alle Cases führen zum selben Ausgang. Das aufrufende VI weiß, welches der reentranten FVGs verwendet werden soll.


FGV Funktionale Globale Variable - MichaDu - 25.08.2009 15:49

Hallo IchSelbst,

das werde ich mal ausprobieren. Ich hatte mir auch schon überlegt, ob man mit eindeutigen Labels arbeiten kann. Dein Vorschalg kommt dem ja nahe.

Vielen Dank!


FGV Funktionale Globale Variable - IchSelbst - 25.08.2009 16:53

Ich hab mal ein Muster ohne Wert erstellt für eine reentrante FGV.

Lv80_img


FGV Funktionale Globale Variable - MichaDu - 25.08.2009 17:32

@IchSelbst:

Vielen Dank! Das hat mich aber jetzt spontan etwas überfordert ;-) Werde mir das mal in Ruhe anschauen.

Deinen Tipp habe ich schon umgesetzt. Es funktioniert.

Ich wollte für meine FGV möglichst wenig Zusatzeingänge haben, deswegen hatte ich mal überlegt, ob ich das VI-Label dafür verwenden kann. Klappt aber nicht, weil das Label im Blockdiagramm nicht editierbar ist. Schade...