24.04.2008, 15:18
Beitrag #1
|
Regenwurm
LVF-Grünschnabel
Beiträge: 16
Registriert seit: Feb 2008
7.1
2008
kA
81825
Deutschland
|
Problem mit while Schleifen
Tach zusammen!
Habe ein Problem mit dem Beenden von meinen while-Schleifen. Das beigefügte Bild zweigt schematisch, was ich realisiert habe.
Also, außen hab ich meine eigentliche Endlosschleife. Diese wird durch das Betätigen des Stop Buttons beendet. Nun gibt es in dieser noch zwei while Schleifen, wo es passieren kann, dass diese sich "aufhängen" (das ist so gewollt). Nun möchte ich diese ebenfalls beenden können indem ich den Stop-Button betätige.
Wenn ich das mit lokalen Variablen löse, habe ich das Problem, dass der Stop-Button beim nächsten Neustart des Programmes noch immer gedrückt erscheint. Kann den ja nicht auf "Latch" setzen.
Kann mir wer helfen?
|
|
|
24.04.2008, 15:42
Beitrag #2
|
|
|
25.04.2008, 10:52
Beitrag #3
|
Regenwurm
LVF-Grünschnabel
Beiträge: 16
Registriert seit: Feb 2008
7.1
2008
kA
81825
Deutschland
|
Problem mit while Schleifen
Jawohl, klappt. Danke!
Jetzt noch eine Frage. In meiner "flachen Sequenzstruktur" hab ich ja ne while-Schleife. Wenn ich diese beende, will ich, dass der Rest des Programms nicht mehr abgearbeitet wird sondern das Programm komplett beendet wird. Zurzeit löse ich das mit Hilfe von "Stop" was ja die gleiche Auswirkung hat wie "Ausführung abbrechen". Zur Zeit macht das noch nichts, da keine Hardware angeschlossen ist. Irgendwann soll das aber (in einer folgenden Diplomarbeit) noch realisiert werden. Wenn ich dann mein Programm so beende, hab ich im schlechtesten Fall die Hardware in einem undefinierten Zustand. Wie kann ich es also realisieren, dass egal zu welchem Zeitpunkt ich den Stop-Button drücke "alles" beendet wird.
|
|
|
25.04.2008, 16:52
Beitrag #4
|
|
|
29.04.2008, 17:32
Beitrag #5
|
Regenwurm
LVF-Grünschnabel
Beiträge: 16
Registriert seit: Feb 2008
7.1
2008
kA
81825
Deutschland
|
Problem mit while Schleifen
So, jetzt habe ich einiges Probiert und komme einfach nicht auf ein vernünftiges Ergbnis.
Habe mir das folgendermaßen gedacht. Ich packe meine Endlosschleife in eine Flache Sequenzstruktur welche aus zwei Rahmen besteht. In den linken Rahmen pack ich meine while Schleife und im rechte Rahmen rufe ich das SubVI für das beenden meiner Hardware auf. Wenn ich allerdings jetzt meinen Stop-Button drücke, dann wird der rechte Rahmen der Sequenzstruktur abgearbeitet, der linke allerdings nicht. Egal was ich mache, so funktioniert das nicht. Woran liegt das? Mein Wissensstand ist, dass bei einer Flachen Sequenzstruktur die Rahmen von links nach rechts abgearbeitet werden.
Ich habe versucht dem Geheimnis mit hilfe der Highlight-Funktion auf den Grund zu kommen, aber dabei sehe ich nur, dass der rechte Rahmen nicht erreicht wird, sondern vorher schon alles beendet ist.
|
|
|
29.04.2008, 18:24
Beitrag #6
|
IchSelbst
LVF-Guru
Beiträge: 3.696
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Problem mit while Schleifen
' schrieb:Wenn ich allerdings jetzt meinen Stop-Button drücke, dann wird der rechte Rahmen der Sequenzstruktur abgearbeitet, der linke allerdings nicht.
Ist das jetzt alles richtig beschrieben - so mit rechts und links?
Zitat:Mein Wissensstand ist, dass bei einer Flachen Sequenzstruktur die Rahmen von links nach rechts abgearbeitet werden.
Genau soll es ja sein. Eine Sequenz ist ja eben dazu da, den Ablauf zu sequenzieren - also von links nach rechts ( offtopic: Wie ist das eigenlich bei der chinesichen Version von LV?).
Zitat:dass der rechte Rahmen nicht erreicht wird
Ja ich würde mal sagen, da musst du mal etwas Sourcecode zeigen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
30.04.2008, 08:54
Beitrag #7
|
Regenwurm
LVF-Grünschnabel
Beiträge: 16
Registriert seit: Feb 2008
7.1
2008
kA
81825
Deutschland
|
Problem mit while Schleifen
Zitat:Ist das jetzt alles richtig beschrieben - so mit rechts und links?
Nee, ist falsch beschrieben. Der LINKE Teil wird abgearbeitet und der rechte nicht.
Hab hier mal ein Beispiel eingefügt.
Das läuft so natürlich nicht, soll nur schematisch darstellen, was ich fabriziert habe.
Der linke Teil wird abgearbeitet und wenn ich dann den STOP Button drücke, wird alles beendet und der rechte Teil der Sequenz nicht mehr abgearbeitet.
Da fällt mir gerade was auf.
Liegt das daran, dass ich diese Funktion für Stop noch drin habe, was die gleiche Auswikung wie "ausführung abbrechen" hat? Wenn ich das rausschmeiße, müsste es ja eigentlich klappen. *grübel*
Werde das gleich mal ausprobieren. Jetzt hab ich erstmal nen Meeting.
|
|
|
30.04.2008, 10:18
Beitrag #8
|
|
|
| |