While-Schleife erst nach "längerem" TRUE-Wert beenden
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!
29.11.2010, 21:13 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2010 21:15 von 2ndsky.)
While-Schleife erst nach "längerem" TRUE-Wert beenden
Hallo,
als LabVIEW-Neuling bin ich auf ein Problem gestoßen und hoffe, dass mir in diesem Forum jemand weiterhelfen kann.
Ich habe einen Sensor der bei einem bestimmten Ereignis den Wert TRUE ausgibt. Bei diesem Ereignis möchte ich, dass eine While-Schleife beendet wird. Bis hierhin ist eigentlich alles klar. Jedoch möchte ich, dass die Schleife erst beendet wird, wenn der Sensor den TRUE-Wert für einige Zeit (beispielsweise 2 sec) ausgibt. Ich möchte somit verhindern, dass die Schleife fälschlicherweise durch einen kurzen Impuls oder "Rauschen" verfrüht beendet wird.
Weiss jemand wie ich dieses Problem löse?
Vielen Dank für Eure Hilfe
Gruß
Anzeige
29.11.2010, 21:56 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2010 22:16 von psutester.)
While-Schleife erst nach "längerem" TRUE-Wert beenden
Simple Lösung, evtl. geht das auch anders.
Ein AND-Gatter, auf dem einem Eingang dein Sensor-Signal, auf dem anderen eine Flat/Stacked Sequenz, mit einem TRUE, und davor ein Wait mit deiner gewünschten Wartezeit
edit/
sorry, um die Sequenz noch ein Case Selector, und dein Sensor Signal drauf, damits gleichzeitig startet, False bleibt leer
29.11.2010, 22:11 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2010 08:59 von jg.)
While-Schleife erst nach "längerem" TRUE-Wert beenden
Ich denke, dass der Vorschlag von psutester vielleicht nicht optimal funktionieren wird, da voraussichtlich der Sensor kurz hintereinander ausgelesen wird. Dann steht der Eingang für das Und-Glied und die Fallunterscheidung fest. Falls der Sensor nun TRUE für die Fallunterscheidung geliefert hat, dann wird gewartet...
Damit der Sensor zu zwei Zeiten geprüft wird gehört die 2. Sensorabfrage in das 2. Feld der Sequenz, so dass die Sensorabfrage nach einer gewissen Zeit (2 s) stattfindet. Man kann nun entweder das Und-Glied oder die Fallunterscheidung weglassen, je nachdem welche Sensorabfrage die 2. geworden ist.
Jedoch wird die Schleife während der Wartezeit blockiert sein und damit keine andere Aktion ausführen. Ist das Ausführen weiterer Funktionen notwendig während der Sensor mit einem gewissen Zeitabstand abgefragt wird?
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
While-Schleife erst nach "längerem" TRUE-Wert beenden
Ups, war wohl schon ein bischen spät gestern auf der Arbeit..
Ich versuchs nochmal mit der 8er Version.
Zum Vi: Wenn der Eingang true wird (und bleibt) wird der Ausgang nach 'ms to wait' auch true.
Das ist doch das gesuchte Verhalten oder versteh ich da was falsch?
While-Schleife erst nach "längerem" TRUE-Wert beenden
Muss das nach einer gewissen Zeit sein, oder geht das auch mit einer gewissen Anzahl von Messwerten?
Wenn ja würde ich ganz einfach die Anzahl der True-Werte zählen und diese wenn ein false auftritt zurück setzen. Das globale Schleifenende wird dann erreicht, wenn eine gewisse Anzahl von true Werten erreicht wurde.
While-Schleife erst nach "längerem" TRUE-Wert beenden
Hey,
Vielen Dank für die Zahlreichen Antworten.
Die Version von dir psutester ist tatsächlich nicht geeignet da der Sensor kurz hintereinander ausgelesen werden sollte. Die anderen Möglichkeiten funktionieren recht gut. Nur leider besteht jetzt noch das Problem das in der Schleife weiterhin Anweisungen sind die abgearbeitet werden sollten. Die Schleife wird jedoch während der Wartezeit blockiert.