LabVIEWForum.de - Case einmalig ausführen

LabVIEWForum.de

Normale Version: Case einmalig ausführen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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…
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
Hallo Tobolf,

Zitat:Beide deine Lösungen können das lösen?
Einfach mal ausprobieren - und vielleicht auch noch mit Highlighting zugucken…
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:
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.)
Referenz-URLs