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 

Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi



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!

17.05.2010, 19:59 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2010 06:47 von IchSelbst.)
Beitrag #26

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi
' schrieb:3. Druecke ich Stop inner in der Main, gibt es einen Error 1 at Generate User Event in Experiment.vi
Möglicherweise hängt alles an einem einzigen falsch plazierten Befehl.

Du hast folgendes gemacht: Im Hauptprogramm hast du "Benutzerereignis erstellen" gemacht - aber "Benutzerereignis löschen" hast du im Unterprogramm gemacht. Dieses Vorgehen - "Erstellen" und "Löschen" von was auch immer, besonders aber von Referenzen, in unterschiedlichen VIs (eigentlich sogar: unterschiedlichen Ebenen) - widerspricht jeder objektorientierten Kapselung! Dieses Vorgehen muss man (nach Möglichkeit) prinzipiell vermeiden!

Dieses Vorgehen bewirkt bei dir nun, dass alles nur ein einziges Mal funktioniert. Wird nämlich das SubVI beendet, löscht du das Benutzerereignis. Beim nächsten Durchlauf kann das SubVI nicht mehr abgebrochen werden. Auch kann in der StoppInner-WhileSchleife kein Benutzerereignis mehr gesendet werden - weil das Benutzerereignis nicht mehr existiert.

Du musst also das Löschen des Benutzerereignisses aus dem SubVI entfernen. Hingehören tut es nach der While-Schleife im Haupt-VI. Nachher deswegen, weil das Erstellen vor der WhileSchleife gemacht wird. "Benutzerereignis registrieren" und "Registrierung löschen" kannst du vorerst im SubVI lassen (da sich beides im selben SubVI befindet.)

Du hast halt Pech gehabt, dass das Benutzereignis kein Datum im Sinne eines Datenflusses ist, sondern eine Referenz. Wären es Daten, würden sie ja im Tunnel der While-Schleife stehen. Da es aber eine Referenz ist, gehen praktisch auch die "Daten" im Tunnel verloren.


Hier ein weiterer Fehler:
Du musst den Button StoppInner auf False setzen, bevor deine beiden inneren WhileSchleifen im HauptVI beginnen. Bisher bleibt der, einmal gedrückt, immer auf True. Mach also vor den Schleifen eine Sequenzierung und lösch StoppInner per Lokaler Variable.

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
Antwort schreiben 


Nachrichten in diesem Thema
Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi - IchSelbst - 17.05.2010 19:59

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Eigenversuch einer ComboBox - Optimierung und Kritik gesucht TpunktN 2 2.456 30.05.2023 07:56
Letzter Beitrag: TpunktN
  HTML-Datei - Name einer PNG bzw. JPG ändern Dsans 1 2.144 09.02.2023 04:42
Letzter Beitrag: Martin.Henz
Music FGEN Erzeugung eines Signalverlaufs anhand einer Mathematischen Funktion DavidStefan 11 7.452 29.05.2021 07:03
Letzter Beitrag: GerdW
  MainVI sucht nach gelöschter .lvlib Bibliothek kwz 5 4.102 04.05.2021 16:11
Letzter Beitrag: kwz
  Mehrere Spitzenwerte aus einer Messreihe erkennen niklas2016 8 5.366 15.02.2021 14:27
Letzter Beitrag: BNT
  benutzerdefinierte Error Codes in einer zentralen Datei im Projekt verwalten t.hipp 6 6.720 26.10.2020 16:08
Letzter Beitrag: Jessel_de

Gehe zu: