LabVIEWForum.de
2 Parallele While-Schleifen mit unterschiedlichen Timer beenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: 2 Parallele While-Schleifen mit unterschiedlichen Timer beenden (/Thread-2-Parallele-While-Schleifen-mit-unterschiedlichen-Timer-beenden)



2 Parallele While-Schleifen mit unterschiedlichen Timer beenden - Tomate27 - 18.08.2020 12:24

Hallo,

ich habe 2 parallel laufende While Loops. Davon arbeitet einer mit einer Zeitverzögerung von 1000ms.

Nun möchte ich gerne mittels einem Stop Button beide Schleifen beenden und das nur mit 1x klicken des Buttons.

Ich habe dies mit einer lokalen Variablen umgesetzt. Jetzt verstehe ich bloß folgendes Verhalten nicht:
Wenn ich als Mechanische Aktion "Switch Until Released" (Schalter bis zur Freigabe) auswähle, wird nur eine der beiden Schleifen beendet.
Mit "Switch When Released" (Schalter beim Loslassen) werden beide Schleifen beendet. Jedoch müsste ich somit Doppelt Klicken, damit der Stop Button wieder "frei wird" und ich erneut starten kann.

Kann mir jemand erklären was mein (Denk) Fehler ist bzw was ich machen muss damit beide While Schleifen mit 1x Stop Klicken beenden werden??

Viele Grüße

Tomate27


RE: 2 Parallele While-Schleifen mit unterschiedlichen Timer beenden - GerdW - 18.08.2020 12:35

Hallo Tomate,

Zitat:Ich habe dies mit einer lokalen Variablen umgesetzt. Jetzt verstehe ich bloß folgendes Verhalten nicht:
Wenn ich als Mechanische Aktion "Switch Until Released" (Schalter bis zur Freigabe) auswähle, wird nur eine der beiden Schleifen beendet.
Deine "schnelle" Schleife bekommt mit, wenn du den Schalter drückst und stoppt.
Dann lässt du den Schalter nach kurzer Zeit wieder los (weniger als 1s), was bei "Switch until released" den Schalter auch wieder zurücksetzt: die zweite Schleife benötigt aber bis zu 1000ms, um wieder den Schaltzustand abzufragen. Und der ist dann mittlerweile wieder zurück zu FALSE…

Zitat:Mit "Switch When Released" (Schalter beim Loslassen) werden beide Schleifen beendet.
Hier bleibt der Schalter gesetzt, auch wenn du ihn loslässt: auch die zweite Schleife bekommt nun ein TRUE geliefert…

Zitat:Kann mir jemand erklären was mein (Denk) Fehler
Schau dir mal die Icons zu diesen verschiedenen Schaltmodi mal ganz genau an…

Generelle Empfehlung:
Lokale Variablen führen über kurz oder lang zu Problemen, wie z.B. RaceConditions. Deshalb solltest du dir mal die Grundlagen zu Queues, Notifiern, ChannelWires anschauen…


RE: 2 Parallele While-Schleifen mit unterschiedlichen Timer beenden - Tomate27 - 18.08.2020 13:16

Hallo Gerd,

danke für die Infos. Ich habe mir nochmal die Beschreibungen dazu durchgelesen und es ergibt Sinn warum es das tut.

Jedoch finde ich mit der Verwendung von lokaler Variable und 1x Stop klicken keine Lösung.. oder gibt es da doch was?
Denn wie du schon gesagt hattest erreiche ich nur mit "Switch when Released" meinen Zustand aufgrund der 1000ms Verzögerung.

Deine Empfehlung habe ich mir bereits fest vorgenommen.


RE: 2 Parallele While-Schleifen mit unterschiedlichen Timer beenden - GerdW - 18.08.2020 13:29

Hallo Tomate,

du könntest auch "Switch when pressed" nehmen - nur eben nicht "…until released"!