08.05.2007, 14:14
(Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2007 14:28 von skywalker.)
Beitrag #1
|
skywalker
LVF-Gelegenheitsschreiber
Beiträge: 154
Registriert seit: Jan 2007
2020
2007
DE
99310
Deutschland
|
Verschachtelte while-Schleifen beenden
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
schleifen.vi (Größe: 6,48 KB / Downloads: 311)
|
|
|
08.05.2007, 14:44
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Verschachtelte while-Schleifen beenden
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.05.2007, 14:54
(Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2007 14:55 von Lucki.)
Beitrag #3
|
|
|
08.05.2007, 15:19
Beitrag #4
|
skywalker
LVF-Gelegenheitsschreiber
Beiträge: 154
Registriert seit: Jan 2007
2020
2007
DE
99310
Deutschland
|
Verschachtelte while-Schleifen beenden
' 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"
|
|
|
08.05.2007, 15:23
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Verschachtelte while-Schleifen beenden
' 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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.05.2007, 15:31
Beitrag #6
|
|
|
09.05.2007, 06:14
Beitrag #7
|
skywalker
LVF-Gelegenheitsschreiber
Beiträge: 154
Registriert seit: Jan 2007
2020
2007
DE
99310
Deutschland
|
Verschachtelte while-Schleifen beenden
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
Ausz_hlen_auf_LtAnp2_test.vi (Größe: 16,78 KB / Downloads: 233)
Einz_hlen_auf_LtAnp1_test.vi (Größe: 16,77 KB / Downloads: 235)
Schleifen.vi (Größe: 49,45 KB / Downloads: 270)
|
|
|
09.05.2007, 07:17
(Dieser Beitrag wurde zuletzt bearbeitet: 09.05.2007 07:17 von marker.)
Beitrag #8
|
marker
LVF-Gelegenheitsschreiber
Beiträge: 226
Registriert seit: Feb 2005
8.2.1
2002
kA
Deutschland
|
Verschachtelte while-Schleifen beenden
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
"Make it simple, make it strong!"
|
|
|
| |