LabVIEWForum.de - Globalen Button

LabVIEWForum.de

Normale Version: Globalen Button
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Tach Leute,

ich bräuchte einen globalen Knopf auf meinem Haupt-VI , mit dem ich innerhalb einer Case-Struct nacheinander while-Schleifen beenden möchte.

wie geht das denn?

Bis denn Glorfindel
tach auch,

hab mal ein kleines vi gemacht. hierbei kannst du halt erst mit deinem hauptprogramm weitermachen, wenn alle while-schleifen beendet sind.
Ob es das ist was du brauchst, weiss ich nicht. Kannst ja bei bedarf nochmal genauer schreiben, wo die while-schleifen und die case.struktur stehen sollen. dass du als knopf einen booleschen operator meinst, habe ich vorausgesetzt. ein drehregler wäre noch eine spur einfacher.
gruß
skob
Um den Zustand eines Knopfes mehrmals lesen zu können must du die Mechanische Aktion des Knopfes auf "non-Latched" setzen (rmb auf den Knopf, "Mechanical Action" wählen, dann eines der oberen Bildchen wählen), dann kannst du mehrere lokale Variablen vom Knopf kreieren.

Allerdings musst du nach dem letzten lesen den Knopf mit mit "False" beschreiben, denn er wird nicht mehr von selbst zurückgesetzt.
Das will alles nicht hinhauen!

Also nochmal:

ich habe eine Case-Anweisung mit circa 50 Schritten. In denen werden unterschiedliche Messungen an einem Verstärker vorgenommen. Immer wenn der Verstärker am Eingang ein Signal bekommt und am Ausgang das richtige Signal ausgibt, wird die Case-Anweisung weiter geschaltet.

In den letzten Prüfungen soll vom Prüfer über einen Kopfhörer geprüft werden, ob die eingebauten Effekte(Hall,Chorus,usw) funktionieren. Hierzu generiere ich, z.B. für den Hall eine kurzen Sinus-Impuls am Eingang und kann so am Ausgang(Kopfhörer) den Nachhall beobachten. Die Generierung mache ich in einer While-Schleife die kontinuierlich den Sinuspuls ausgibt(50 ms Sinus 1500ms Pause).

Jetzt soll es so sein, dass wenn der Prüfer den erwarteten Effekt gehört hat, er zur nächsten Effektprüfung mit einem Weiter-Button wechseln kann, wenn er den Effekt nicht gehört hat ist das Gerät defekt und ein neues wird geprüft.(so mache, bzw. will ich die die Effektprüfung abarbeiten lassen).

Das Problem ist, das ich um die While-Schleifen beenden zu können einen Button in jeder Schleife habe. Es soll aber nur einen, zentralen Knopf auf der Hauptoberfläche geben.

Die Frage ist also, wie kann ich eine While-Schleife ausserhalb dieser beenden?

Danke für eure Hilfe und bis denn,

Glorfindel
hallo,
hab dir nochmal das programm kommentiert und ein wenig abgeändert.
es existiert ein zentraler button, der die while-schleifen nacheinander beendet. dieser button liegt in einer separaten schleife und lässt bei betätigung eine nummerische variable hochzählen. die numerische variable beendet dann letztendlich die while-schleifen sequentiell.
vielleicht hilft es dir ja so.
gruß
skob
Als Lösung würde ich dir eine funktionale Variable vorschlagen. Es ist eine Varable in einem eigenen VI, die über eine Funktion geschrieben und über eine zweite Funktion gelesen wird. Jede Schleife kann die Variable, das VI, lesen oder beschreiben, so wie du es brauchst. Es existiert nur 1ne Instanz dieser Variablen.
Anbei ein Beispiel für z.B. einen STOP-Button. Der Stop-Button ist in meinem Beispiel einem Typedef abgelegt und kann dadurch in eine beliebige andere Struktur geändert werden. Der Typedef ist nicht notwendig!
Referenz-URLs