LabVIEWForum.de - Wie kann man Lokale Variablen sauber verpacken?

LabVIEWForum.de

Normale Version: Wie kann man Lokale Variablen sauber verpacken?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen, das ist mein erster Eintrag und mein erstes LabVIEW Programm!

Ich würde gerne wissen ob hier jemand einen Tipp kennt wie man Lokale Variablen schön verpacken kann?

Ich erstelle gerade ein Konfigurator der mehrere Parameter einstellen darf und habe mich in einen Queue Event State-Machine-Handler eingearbeitet und bis jetzt funktioniert alles reibungslos Smile

Da ich mehrere Parallele SUB VI's verwende und diese, Parameter-Einstellungen miteinander austauschen, welche wieder in ein Bedienelement angezeigt werden sollen, benutze ich Lokale Variablen.

Nun werden es leider bald ziemlich viele Lokale Variablen die ich anlegen müsste...ca. >20 und ich würde diese ungern alle untereinander platzieren. Hat hier jemand einen kleinen Tipp für mich?

Viele Grüße

Tobzn

Version: lv17_img

Im Anhang befindet sich ein Bild mit einem Beispiel. hier bitte 20x solche Lokale Variablen mit entsprehcendem Unbundle By Name Funktion vorstellen =)
Für allgemeine Parameter, die sich nicht oder nicht oft ändern, während das VI läuft, und die in verschiedenen Sub-VIs verwendet werden, benutze ich lieber globale Variable (Die man alle in einem einzigen Global.gbl kreieren kann). Man hat dann im Haupt-VI entscheidend weniger Spaghetti, da alle SUB-Vis die diese Parameter brauchen keinen äußeren Anschluß mehr haben müssen. Es geht die Saga um, das Globals langsam sind. Stimmt nicht oder ist Schnee von gestern. Langsam sind nur Eigenschaftsknoten. (Also nicht etwa die Eigenschaft "Wert" in einer zeitkristischen Schleife verwenden.)
Der globale Parameter kann natürlich auch ein Cluster mit allen Einzelparametern sein.
Vielen Dank Lucki für deine schnelle Antwort!

Ich finde deine Idee sehr gut, allerdings habe ich bei meiner Anwendung die Bedienelemente über mehrere Registerkarten ("TAB's") aufgeteilt und müsste somit recht häufig ein "Globales-Cluster" erzeugen.

Also um meine Frage zu konkretisieren, in meinem Programm werden die Parameter mit einem SAVE-Button in ein XML-File gespeichert und können anschließend mit OPEN wieder eingelesen werden. Für das einlesen benutze ich Lokale Variablen und diese hätte ich gerne gebündelt.

Hat jemand eine Idee?
Bündeln = Cluster. Was hindert dich daran, auch Cluster auf der Anzeige-Oberfläche anzulegen?

Gruß, Jens
Es gibt auch noch die Möglichkeit, die Variablen in ein Variant zu packen.
Damit bin ich flexibel, wenn es um spätere Erweiterungen geht.
Die VI's haben nur einen Variant als Eingang und holen sich Ihre Information aus dem Variant.

Gruß
Freddy
Habe mal schematische Darstellung dazu gemacht.
(28.02.2018 11:22 )jg schrieb: [ -> ]Bündeln = Cluster. Was hindert dich daran, auch Cluster auf der Anzeige-Oberfläche anzulegen?

Gruß, Jens

Hallo Jens, danke für deine Frage.

Da ich meine Bedienelemente über mehrere Tab's aufgeteilt habe, müsste ich ziemlich viele Cluster erzeugen, die dann nur wenig clustern würden.

Gegenfrage,
selbst wenn alle in einem Tab wären, wie könnte ich dann die Werte in die einzelnen "geclusterten" Bedienelemente anzeigen lassen ohne für jedes Bedienelemente eine Lokale Variable anlegen zu müssen? Beim erzeugen einer lokalen Variable eines Clusters schreibt LabVIEW die Werte leider nicht direkt in das Bedienelement.

Gruß
Tobi
Hallo Tobi,

Zitat:wie könnte ich dann die Werte in die einzelnen "geclusterten" Bedienelemente anzeigen lassen
Um ein Control mit einem Wert zu beschreiben, kannst du entweder eine lokale Variable oder eine Propertynode verwenden…
Lokale Variablen kennst du schon: Propertynodes haben den Vorteil, dass man sie mit Referenzen verwenden und damit auch in subVIs auslagern kann…

Zitat:Beim erzeugen einer lokalen Variable eines Clusters schreibt LabVIEW die Werte leider nicht direkt in das Bedienelement.
Allein das Anlegen einer lokalen Variable reicht natürlich nicht aus, du musst schon noch einen Draht dort dann anschließen: THINK DATAFLOW…
(28.02.2018 12:01 )Freddy schrieb: [ -> ]Es gibt auch noch die Möglichkeit, die Variablen in ein Variant zu packen.
Damit bin ich flexibel, wenn es um spätere Erweiterungen geht.
Die VI's haben nur einen Variant als Eingang und holen sich Ihre Information aus dem Variant.

Gruß
Freddy
Habe mal schematische Darstellung dazu gemacht.

Für meine aktuelle Anwendung leider zu Aufwendig aber durchaus schöne Idee.

Vielen Dank für diesen Tipp!

Tobi
Hallo Tobi,

hier noch etwas Hintergrund zu Freddys Vorschlag.
Variant-Attribute können sehr hilfreich sein…
@Gerd
Der gelinkte Vorschlag ist sehr gut, werde ich mir merken.

Noch eine Amerkung zum Thema "Aufteilung der Bedienelemente auf mehrere Registerkarten"
Ich habe das immer genau so gemacht, aber auf einem Labview-Anwendertreffen machte ein Vortragender mal die Bemerkung, das die Verwendung von Subpanels anstelle von Registerkarten die bessere Alternative wäre.
Hat da jemand Erfahrung? Auf jeden Fall hätte man mehr Ordnung im Haupt-VI. Und das Besondere an SubPanels (gegenüber SubVIs) ist ja auch, dass die Ereignisbehandlung für die Bedienelemente weiterhin im Haupt-VI stattfinden kann.
Seiten: 1 2
Referenz-URLs