LabVIEWForum.de - Verschachtelte while-Schleifen beenden

LabVIEWForum.de

Normale Version: Verschachtelte while-Schleifen beenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich habe ein Programm, welches drei while-Schleifen besitzt. Die eine befindet sich um das gesamte "Programm" herum,
um es dauerhaft laufen zu lassen.
In dieser befindet sich zwei weitere parallele while-Schleifen.

Wie kann ich nun das Programm mit nur einem Stop-Button stoppen?

Ich bekomm das einfach nicht hin, dass die inneren Schleifen anhalten.
Wo muss ich den Knopf platzieren? In der äußeren (wie bei mir) oder in der inneren Schleife?

Stefan

[attachment=6511]
Hallo,
Stop-Button gehört natürlich in eine der beiden inneren Schleifen (am besten in die, die schneller läuft). Die 2. parallele und die äußere könntest du z.B. über lokale Variablen des Stop-Buttons anhalten.
MfG, Jens
Jens was schneller, hier noch das geänderte VI. Beachten: Schaltverhalten das Stop-Buttons ist geändert
' schrieb:Hallo,
Stop-Button gehört natürlich in eine der beiden inneren Schleifen (am besten in die, die schneller läuft). Die 2. parallele und die äußere könntest du z.B. über lokale Variablen des Stop-Buttons anhalten.
MfG, Jens

Die zwei inneren Schleifen laufen beide gleich lange, das bedeutet, dass beide gleichzeitig durch einen Knopf gestartet werden und so lange laufen, bis sie durch den Stopp-Button abgebrochen werden. Daher weiss ich nicht, welche länger läuft.

Und das mit den lokalen Variablen hab ich auch schon probiert. Das geht nicht. Da erscheint folgende Meldung in der Fehlerliste: "Boolsche 'Stopp': Schaltverhalten ist mit lokalen Variablen nicht verienbar"
' schrieb:Und das mit den lokalen Variablen hab ich auch schon probiert. Das geht nicht. Da erscheint folgende Meldung in der Fehlerliste: "Boolsche 'Stopp': Schaltverhalten ist mit lokalen Variablen nicht verienbar"
Ich würde sagen, darauf hat Lucki die Antwort gegeben. Das mit lokalen Variablen eines Buttons geht nur, wenn du das Schaltverhalten auf "Switch when..." änderst.
MfG, Jens
Uii...sorry.
hab das wohl überlesen. Jedenfalls geht das so jetzt.

Danke.
Hallo,

ich bins nochmal. Ich bekomm das einfach nicht zum laufen. Ich stell mal meine VI's in den Anhang.
Ich hoffe, es kann mir wer weiterhelfen.

Ich will die Möglichkeit haben, dass entweder die Schleifen durch den Stopp-Button abgebrochen werden oder nach der definierten verstrichenen Zeit.
Das klappt nicht. Ich vermute mal, dass hängt mit den for-Schleifen und dem SubVi in der oberen inneren while-Schleife zusammen.
Bin mir allerdings nicht sicher.
Kann mir jemand helfen?

Danke
Stefan
[attachment=6523][attachment=6522][attachment=6521]
Hallo Stefan,

das sind grundlegende Probleme.
Jede While-Schleife wird erst nach dem kompletten Durchlauf abgebrochen und es dauert eben bei Deinem Programm etwas länger bis die obere Schleife abgearbeitet ist (siehe die beiden FOR-Schleifen und die 20s Wartezeit).
Um einen schnelleren Abbruch zu realisieren würde ich die FOR-Schleifen durch While-Schleifen ersetzen und jeweils den Laufindex selbst erzeugen, so kannst Du dann auch diese nach jedem Durchlauf und nicht erst nach 511 Durchläufen abbrechen.
Die Wartezeit kannste Du für den Abbruchfall auch noch auf null setzen.
Wird der Abbruch-Button allerdings während der Wartezeit betätigt muß gewartet werden bis die Zeit verstrichen ist.

Gruß,
Marko
' schrieb:Hallo Stefan,

das sind grundlegende Probleme.
Jede While-Schleife wird erst nach dem kompletten Durchlauf abgebrochen und es dauert eben bei Deinem Programm etwas länger bis die obere Schleife abgearbeitet ist (siehe die beiden FOR-Schleifen und die 20s Wartezeit).
Um einen schnelleren Abbruch zu realisieren würde ich die FOR-Schleifen durch While-Schleifen ersetzen und jeweils den Laufindex selbst erzeugen, so kannst Du dann auch diese nach jedem Durchlauf und nicht erst nach 511 Durchläufen abbrechen.
Die Wartezeit kannste Du für den Abbruchfall auch noch auf null setzen.
Wird der Abbruch-Button allerdings während der Wartezeit betätigt muß gewartet werden bis die Zeit verstrichen ist.

Gruß,
Marko

So...das klappt eigentlich nun alles. Wie kann jetzt noch den Abbruch nach der definierten Zeit mit einbringen?
Wie muss ich die untere WHILE-Schleife verbinden, damit die ebenfalls stoppt und somit das ganze Programm stoppt, wenn die Zeit abgelaufen ist?
[attachment=6524]
Hallo,

leider bin ich noch immer nicht weiter und weiß nicht, wie ich das Programm dazu bekomm, dass es nach der verstrichenen Zeit stoppt.
Hat jemand eine Idee???
Seiten: 1 2
Referenz-URLs