LabVIEWForum.de
Case einmalig ausführen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Case einmalig ausführen (/Thread-Case-einmalig-ausfuehren)



Case einmalig ausführen - Tobolf - 28.11.2016 19:37

Hallo,

ich habe folgendes Problem: ich möchte innerhalb einer Schleife einen Case einmalig ausführen, sobald am Eingang "True" anliegt. Ich habe gelesen, dass man das Ganze über Schieberegister lösen soll. Meinen Ansatz habe ich angehängt. Allerdings wird am Eingang ja nur einmalig der Wert des Schalters in den Schieberegister initialisiert und dann innerhalb des Cases auf False gesetzt.
Würde ich das Ganze lösen, indem ich eine weitere Schleife um das Ganze lege?
Diese Idee ist mir gerade beim Schreiben gekommen..
In dem eigentlichen Programm wird das Ganze nicht über einen Schalter initialisiert, sondern über eine lokale Variable. Macht das einen Unterschied? Eigentlich nicht, oder?

Freundliche Grüße
Tobolf


RE: Case einmalig ausführen - GerdW - 28.11.2016 19:56

Hallo Tobolf,

Zitat:ich habe folgendes Problem: ich möchte innerhalb einer Schleife einen Case einmalig ausführen, sobald am Eingang "True" anliegt.
Du willst also ein TRUE haben, wenn am Eingang jetzt auch ein TRUE anliegt, aber in der Iteration davor ein FALSE?
Warum programmierst du das dann nicht einfach?

Gleich 2 Methoden:
[attachment=56975]

Zitat:über eine lokale Variable. Macht das einen Unterschied? Eigentlich nicht, oder?
An sich nicht - es sei denn, du hast dir damit eine RaceCondition eingefangen…


RE: Case einmalig ausführen - Tobolf - 28.11.2016 20:12

Genau, in den Iterationen davor ist der Wert auf False, sobald die lokale Variable auf Tru springt soll einmal der Case ausgeführt werden und danach nicht mehr;
Praktisch in dem Programm wird eine Spannung erreicht bei der in dem Case die Last ausgeschaltet werden soll. Das Ausschalten darf aber nur einmal passieren, da es sonst zu einem Schreibfehler kommt. Beide deine Lösungen können das lösen?

Freundliche Grüße


RE: Case einmalig ausführen - GerdW - 28.11.2016 20:22

Hallo Tobolf,

Zitat:Beide deine Lösungen können das lösen?
Einfach mal ausprobieren - und vielleicht auch noch mit Highlighting zugucken…


RE: Case einmalig ausführen - Tobolf - 28.11.2016 21:02

Danke Gerd für deine schnelle Hilfe!
Auf Highlight Execution hätte ich auch selbst kommen können, anstatt direkt blöd zu fragen, wie das VI funktioniert. Sorry 2hands

Was mich etwas irritiert.. die untere Lösung mit der "Boolean Crossing.vi" macht genau das was ich möchte. Die obere VI schaltet allerdings nicht auf False nach einem Durchlauf, sondern zeigt durchgängig True an. Eventuell hab ich auch was falsch gemacht beim zusammenklicken.. :Bluse:


RE: Case einmalig ausführen - GerdW - 28.11.2016 21:21

Hallo Tobolf,

Zitat:Eventuell hab ich auch was falsch gemacht beim zusammenklicken..
Ja.

Schau dir meine Lösung genau an - und korrigiere dann deinen Versuch…
(Tipp: der Fehler ist bei der CompoundArithmetic.)