INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Problem mit while Schleifen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

24.04.2008, 15:18
Beitrag #1

Regenwurm Offline
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?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.04.2008, 15:42
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Problem mit while Schleifen
' schrieb: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.
Dann resette den Button halt per lokaler Variablen VOR der äußeren While-Schleife. Beachte, dass eine Sequenzierung zwischen Resetten und Abfragen vorhanden sein muss.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.04.2008, 10:52
Beitrag #3

Regenwurm Offline
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.04.2008, 16:52
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Problem mit while Schleifen
' schrieb:Wenn ich dann mein Programm so beende, hab ich im schlechtesten Fall die Hardware in einem undefinierten Zustand.
Hm. Das ist ein Denkfehler. Du hast die Hardware nie in einem undefinierten Zustand. Wink

Wenn du jetzt schon genau weißt, dass du demnächst das Programm beenden wirst - sei es per "normalem" Weg oder per Stop-VI - dann kann du doch die Hardware entsprechend bearbeiten. Da du als guter Programmierer sowieso alles in SubVIs (also Klassen etc.) vorliegen hast, rufst du einfach beim Beenden das entsprechende "Hardware-VI" auf und lässt z.B. die Tasks schließen und freigeben.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2008, 17:32
Beitrag #5

Regenwurm Offline
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. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2008, 18:24
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
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).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.04.2008, 08:54
Beitrag #7

Regenwurm Offline
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.04.2008, 10:18
Beitrag #8

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Problem mit while Schleifen
Also meines Wissens nach beendet die Stop Funktion das Vi sofort. Da wird absolut nichts mehr abgearbeitet.
Ist im Allgemeinen nicht zu empfehlen, da da (gegebenenfalls) auch deinitialisierungen nicht ausgeführt werden.

Warum probierst du nicht einfach mal eine State Maschine statt deiner Flatsequenz. Da tust du dir vermutlich leichter Abbruchbedingungen zu implementieren.

Gruß

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Übergabe-Problem zweier While-Schleifen mit Queue onsight8c 1 3.387 10.10.2014 16:42
Letzter Beitrag: jg
  DAQ While-Schleifen Problem xxmoritzon360xx 6 4.423 09.03.2014 18:26
Letzter Beitrag: GerdW
  While-Schleifen-Problem Baaand 3 3.522 19.12.2012 22:48
Letzter Beitrag: BNT
  While Schleifen Problem bolle 7 5.387 04.12.2008 12:40
Letzter Beitrag: bolle
  Problem mit while-schleifen teirack 4 4.204 23.10.2007 05:31
Letzter Beitrag: Achim
  problem mit paralellen schleifen gottfried 7 4.971 31.05.2007 10:41
Letzter Beitrag: gottfried

Gehe zu: