Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich habe einen Cluster, der im Frontpanel durch eine selbstgebaute DropletsControl.ctl dargestellt wird.
Dieser Cluster beinhatet drei Booleans, die ich als Knoepfe nutze.
Jetzt moechte ich gerne von jedem der drei Booleans B1, B2, B3 eine lokale Variable erstellen und diese am Anfang meiner Schleife einbauen, so dass diese anfangs immer auf false eingestellt sind, damit versehentliches Druecken im Offlinemodus nicht das Programm gleich ausloest.
Wie geht das bitte mit einem Cluster von Booleans bitte?
Oder muss ich den Cluster wieder in drei einzelne Booleans auseinanderreissen, damit es funktioniert?
Programm ist inlv09angehaengt. Ganz links in der aeusseren while-Schleife sieht man, was ich mit den Booleans machen moechte. DropletControls ist mit einem Kommentar in rot hervorgehoben.
Variante 1 und 2 ist vorzuziehen, da hier bei typisierten Elementen keine Fehler auf Grund geänderter Standardwerte auftreten können, wie es bei 3 passieren kann.
' schrieb:Jetzt moechte ich gerne von jedem der drei Booleans B1, B2, B3 eine lokale Variable
Es geht so wie immer: rechte Maustaste auf Element im Cluster --> erstellen --> lokale Variable,
Allerdings, und jetzt kommt der große Trick: das muß auf dem FP gemacht werden, auf dem BD würde das ja überhaupt nicht gehen. Und keine Angst: Die erzeugte lokale Variable erscheint natürlich im BD.
Falls das nicht funktioniert, hat des Element falsches Schaltverhalten (Latch).
Falls es Dir nur im die Initialisierung der Werte geht, würde ich es aber anders machen: Rechte Maustaste (FP oder BD) auf gesamten Cluster --> erstellen --> Methodenknoten --> Standard wiederherstellen. Dann kann auch das Latch-Verhalten der Elemente beibehalten werden.
Edit: Habe mich geirrt, es gibt kein lokalen Variablen von Clusterelementen, man kann sie so auch nicht erstellen. S. Beitrag weiter unten
24.05.2010, 13:37 (Dieser Beitrag wurde zuletzt bearbeitet: 24.05.2010 13:37 von bluesaturn.)
Ich habe mich auch an etwas probiert. Es ist noch nicht fertig, aber waere sowas auch gegangen?
Allerdings hat das Cluster rechts im FP 8 LEDs. Ich glaube, das ist murks. Viel Spass beim Lachen:)Mit autoindexing hatte ich eben so meine Probleme. Ich schaue mir Eure Beispiele einmal an.
Lucki, wenn ich z.B. versuche auf den Air-Button Rechtsklick im FP zu machen, dann erlaubt mir das LabVIEW nicht, diesen Button alleine auszuwaehlen.
Create->Lokale Variable ist ausgegraut. Macht ich etwas falsch, wenn es bei dir klappt?
' schrieb:Falls das nicht funktioniert, hat des Element falsches Schaltverhalten (Latch).
Falls es Dir nur im die Initialisierung der Werte geht, würde ich es aber anders machen: Rechte Maustaste (FP oder BD) auf gesamten Cluster --> erstellen --> Methodenknoten --> Standard wiederherstellen. Dann kann auch das Latch-Verhalten der Elemente beibehalten werden.
Hallo Lucki.
Mechanical action is switch when released.
Der Standardwert wäre dann wohl false, oder?
Ich habe jetzt Schrottis Version genommen, weil ich nicht weiß, wie man wiederum den Standardwert tatsächlich zusichert und ich das andere Konzept bisher so gut anwenden konnte. Entschuldigung, aber danke für deine zusätzliche Erklärung und weitere Ausführung.
24.05.2010, 15:57 (Dieser Beitrag wurde zuletzt bearbeitet: 24.05.2010 16:53 von Lucki.)
' schrieb:Ich habe jetzt Schrottis Version genommen, weil ich nicht weiß, wie man wiederum den Standardwert tatsächlich zusichert und ich das andere Konzept bisher so gut anwenden konnte. Entschuldigung, aber danke für deine zusätzliche Erklärung und weitere Ausführung.
Asche über mein Haupt. Was ich sagte, geht nicht, das funktioniert nur mit Eigenschaftknoten und Methodenknoten direkt von Clusterelement (s. Beispiele 4 und 6). Der Beispielsammlung von Schrotti füge ich noch diese Beispiele hinzu:
Herausragend durch seine Einfachheit ist Beispiel 5, allerdings hattest Du nach dieser Variante nicht gefragt.
Guten Morgen, Lucki.
Ich bin gerade nicht an meinem LabVIEW-Rechner, aber ich frage trotzdem einmal.
Wo und wie werden bitte die Standardwerte definiert? Ist das nicht notwendig, damit LabVIEW weiß, was überhaupt Standard sein sollte?
Ich bedanke mich für Eure vielen Beispiele, ich finde sie alle gut. Ich kann leider nur eins nutzen. Aber ich habe mir diesen Thread schon gebookmarkt, damit ich auch in Zukunft etwas davon habe.
Gruß
Blue
26.05.2010, 10:05 (Dieser Beitrag wurde zuletzt bearbeitet: 26.05.2010 10:06 von Lucki.)
' schrieb:Wo und wie werden bitte die Standardwerte definiert?
Man muß hier unterscheiden:
Auch ohne daß man es extra definiert (setzt), haben die Elemente beim Aufruf einen Standardwert. z.B. ist das Null bei numerischen Elementen, oder false bei boolschen Elementen.
Standardwerte manuell setzen oder wiederherstellen:
entweder rechte Maustaste / Datenoperationen (für einen Wert)
oder: Menuezeile /Bearbeiten (für alle markierten Werte)
Ich ärgere mich hier übrigens immer wieder, daß die Möglichkeit, Werte als Standard zu setzen, zu wenig beim Posting von VIs benutzt wird. Die geposteten VIs funktionieren dann nicht auf Anhieb, weil z.B die Samplingrate Null ist, und der tatsächlich benutzte Wert nicht als Standard gesetzt wurde. (Der Witz des Standardwertes ist ja, daß die Elemente beim Aufruf des VIs diesen Wert haben)
Das Setzen eines anderen Standardwertes kann aber auch suboptimal sein. Z.B. bei einem Graphen ist der Standardwert ein leerer Graph. Wenn man einen Graph mit 1 Mb Inhalt als neuen Standardwert setzt, dann bläht sich das gespeicherte VI natürlich vom z.B 20 kB auf 1020 kB auf..