Wie kann man Lokale Variablen sauber verpacken? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Wie kann man Lokale Variablen sauber verpacken? (/Thread-Wie-kann-man-Lokale-Variablen-sauber-verpacken) Seiten: 1 2 |
Wie kann man Lokale Variablen sauber verpacken? - Tobzn - 27.02.2018 17:40 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 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: Im Anhang befindet sich ein Bild mit einem Beispiel. hier bitte 20x solche Lokale Variablen mit entsprehcendem Unbundle By Name Funktion vorstellen =) RE: Wie kann man Lokale Variablen sauber verpacken? - Lucki - 27.02.2018 19:08 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. RE: Wie kann man Lokale Variablen sauber verpacken? - Tobzn - 28.02.2018 11:04 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? RE: Wie kann man Lokale Variablen sauber verpacken? - jg - 28.02.2018 11:22 Bündeln = Cluster. Was hindert dich daran, auch Cluster auf der Anzeige-Oberfläche anzulegen? Gruß, Jens RE: Wie kann man Lokale Variablen sauber verpacken? - Freddy - 28.02.2018 12:01 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. RE: Wie kann man Lokale Variablen sauber verpacken? - Tobzn - 02.03.2018 11:27 (28.02.2018 11:22 )jg schrieb: Bündeln = Cluster. Was hindert dich daran, auch Cluster auf der Anzeige-Oberfläche anzulegen? 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 RE: Wie kann man Lokale Variablen sauber verpacken? - GerdW - 02.03.2018 11:32 Hallo Tobi, Zitat:wie könnte ich dann die Werte in die einzelnen "geclusterten" Bedienelemente anzeigen lassenUm 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… RE: Wie kann man Lokale Variablen sauber verpacken? - Tobzn - 02.03.2018 11:39 (28.02.2018 12:01 )Freddy schrieb: Es gibt auch noch die Möglichkeit, die Variablen in ein Variant zu packen. Für meine aktuelle Anwendung leider zu Aufwendig aber durchaus schöne Idee. Vielen Dank für diesen Tipp! Tobi RE: Wie kann man Lokale Variablen sauber verpacken? - GerdW - 02.03.2018 11:51 Hallo Tobi, hier noch etwas Hintergrund zu Freddys Vorschlag. Variant-Attribute können sehr hilfreich sein… RE: Wie kann man Lokale Variablen sauber verpacken? - Lucki - 03.03.2018 09:07 @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. |