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 

Abbruch eines Sub Vi



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!

23.05.2006, 07:09
Beitrag #1

Saltlaker Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2006

8.00
2006
kA


Deutschland
Abbruch eines Sub Vi

Sonstige .vi  messung.vi (Größe: 38,38 KB / Downloads: 238)

Sonstige .vi  Haupt.vi (Größe: 77,66 KB / Downloads: 271)
Guten Morgen


Ich denke ich habe da mal ein ganz einfache Frage. Ich komme aber nicht auf die Lösung.

Folgendes Problem.

Mein Haupt Vi beinhaltet zwei schleifen. Die Äußere ist eine Case abfrage. Die Innere besteht aus eine zeitgesteuerten While Schleife. In dieser wird die Regelung eines Motors vorgenommen. Sie wird also mehrfach ausgeführt.

In der Äußeren Case Struktur befindet sich noch ein Sub Vi. In diesem Sub Vi wird die Messung durchgeführt. Sie besteht aus einer While Schleife. Die Abbruch Bedingung ist bisher eine Abgelaufene Zeit die ich grob geschätzt habe.

Nun hätte ich aber lieber das bei beendigung der inneren Zeitgesteuerten While Schleife ein Signal ausgegeben wird ,dass das Sub Vi beendet.

Ein FlipFlop wäre eine gute Lösung. So das das Sub Vi aufgerufen wird sobald die Case Struktur bearbeitet wird und eine Flanke die bei Beendigung der While Schleife kommt das Sub Vi beendet.

Habe mal versucht das Prinzip nachzustellen. Das Original Programm ist zu gross

Hoffe mir kann da jemand helfen.

Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.05.2006, 09:14
Beitrag #2

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Abbruch eines Sub Vi
Hab mir dein Vi nicht angesehen, aber wie wäre es mit einem Methodenknoten. Damit kannst du ein Vi abbrechen. Achtung: Dein Vi wird damit nicht beendet, sondern abgebrochen. Also so als ob du den Abbruchknopf in der Symbolleiste drückst.


Angehängte Datei(en) Thumbnail(s)
   

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
23.05.2006, 09:44
Beitrag #3

Saltlaker Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2006

8.00
2006
kA


Deutschland
Abbruch eines Sub Vi
Hallo.

Danke für deine schnelle Antwort.

Ich muss sagen das ich mich mit den Knoten noch nicht wirklich gut auskenne. Da könnte vielleicht eine Lösung liegen.Wird ein Knoten denn nicht erst nach beenden der Schleife übergeben?

Aber ein Programmabbruch darf es nicht geben. Nach der Case Schleife kommt noch die Speicherung der Werte. Diese muss auf jeden Fall stattfinden.

Ein Möglichkeit wie ich sie mir noch gedacht hätte wäre wie bei einem Bedienelement. Das ist so loange True bis aus der Zeitgesteuerten While schleife ein True kommt und wechselt dann zu Fals somit wäre das Sub Vi auch beendet. Leider geht diese mit einem Bedienelement nur wenn man den Knopf drückt oder gibt es da noch eine andere Möglichkeit?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2006, 11:16 (Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2006 11:17 von Kvasir.)
Beitrag #4

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Abbruch eines Sub Vi
Wenn ich dich richtig verstanden habe, willst du, dass dein SubVi beendet wird, sobald im HauptVi deine getimte While Schleife beendet wird.

Das kannst du z.B. über einen Methodenknoten oder über eine globale Variable erreichen.

Den Methodenknoten musst du so platzieren, dass der Vi Abbruch am Ende deiner While Schleife durchgeführt wird. z.B.: Kannst du den Pfad in die Schleife setzen, den Knoten außerhalb.
Beendet wird hierbei nur das SubVi. Nicht dein HauptVi. Du kannst also noch in Ruhe deine Messung speichern.

Der Nachteil ist aber, dass das Vi sofort abgebrochen wird. Das ist im allgemeinen nicht wünschenswert, da dadurch oft deiintialisierungen nicht mehr durchgeführt werden. (z.B.: Datei schließen, VISA close, ...)

Um das Problem zu umgehen kannst du auch eine globale Variable benutzen. Diese schließt du an die Stop Bedingung deiner While Loop im SubVi. Im HauptVi setzt du den Wert auf True, sobald deine timedloop beendet wird.

Beim HauptVi hab ich dir beide Methoden eingebaut. Du brauchst natürlich nur eine.


Angehängte Datei(en) Thumbnail(s)
       

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
23.05.2006, 12:25
Beitrag #5

Saltlaker Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2006

8.00
2006
kA


Deutschland
Abbruch eines Sub Vi
Das mit der globalen Variablen könnte funktionieren.

Leider verstehe ich das noch nicht so genau. Ich habe mir eine globale Variabel erstell mit einer Leuchte im Frontpanel. Dort kann ich dann im Haupt Vi auch die True Konstante anschließen. Im Sub Vi wird mir die Leuchte ebenfalls als Eingang angezeigt. Somit kann ich diese nicht mit dem Stop verbinden.

Wie löse ich das?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2006, 12:31
Beitrag #6

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Abbruch eines Sub Vi
rechte Maustaste auf die Variable -> in Control ändern.

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
Anzeige
23.05.2006, 12:44
Beitrag #7

Saltlaker Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2006

8.00
2006
kA


Deutschland
Abbruch eines Sub Vi
Besten Dank wollte gerade schreiben das ich es doch hinbekommen habe. Aber du warst schneller.

Es funktioniert auf jeden Fall.

Nochnal Danke für deine Hilfe.

Vielleicht kannst du mir noch eine Frage beantworten aber nur wenn du Zeit hast.

Und zwar dachte ich das globale Variablen eigentlich nur eingesetzt werden wenn die Wege zu lang sind und man zb durch mehere Sub Vi den Wert übergeben muss. Das wäre bei meinem Programm ja eigentlich nicht sehr aufwendig. Wenn ich aber anstatt der globalen Variable den stopp mit der True Konstante verbinde, startet das Sub Vi nicht.

Ich verstehe nicht wieso

Gruß Saltlaker
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2006, 12:55
Beitrag #8

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Abbruch eines Sub Vi
Helfe doch gerne.

Hab im Moment leider viel zu viel Zeit, weil ich hier bei meinem Projekt nicht so recht weiterkomme und gerade etwas unmotiviert mir mehr oder weniger die Zeit totschlage.

Mit dem Einsatz lokaler/globaler Variable sollte man im allgemeinen vorsichtig sein. Siehe hierzu z.B.: diesen Thread http://www.LabVIEWforum.de/index.php?showtopic=2533

Wenn du deinen Stop mit einer True Konstante verbindest kann das SubVi nicht laufen, da die Schleife ja nach dem ersten Durchlauf schon abbricht.
Deine globale Variable hingegen wird erst dann auf True gesetzt, sobald deine Schleife im Hauptprogramm zu Ende ist.

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
23.05.2006, 13:07
Beitrag #9

Saltlaker Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2006

8.00
2006
kA


Deutschland
Abbruch eines Sub Vi
Ich meinte das schon so wie du es gemacht hast. Also die True Konstante steht im Haupt Vi. Genau an der stelle wo du deine hingesetzt hast.
Nur gehe ich dann über einen Eingang in das Sub Vi und dort an das Stop. So das auch erst ein True kommt sobald die Zeitgesteuerte Schleife abgelaufen ist.
So wie es mit der Lampe aussieht scheint das Sub Vi nicht zu starten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2006, 13:21
Beitrag #10

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Abbruch eines Sub Vi
Ach ok, nun weiß ich was du meinstSmile

LabVIEW arbeitet nach dem Flußprinzip. D.h. dein SubVi kann nur starten, wenn es von allen Eingängen Daten erhält. Da dein "True" aber erst am Ende der getimten While Schleife gesetzt wird, kann dein SubVi auch erst dann starten. (Und bricht gleich wieder ab, da der Wert ja True ist)

Mit der Variable umgehst du dieses Prinzip. Dein SubVi kann starten, da es einen Wert erhält (False), weil die globale Variable schon einen Wert hat. Am Ende deiner getimten While änderst du diesen Wert nur.

Dass du mit den Variablen das Flußprinzip umgehst ist auch einer der Gründe, warum man vorsichtig mit den Variablen umgehen sollte. Dadurch entstehen leicht Fehler, weil man in die Reihenfolge der Abarbeitung der Funktionen eingreift.

War das verständlich? Blink

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
Question Abfrage Abbruch eines asynchronen VI Aufrufs olmethn 2 3.565 17.06.2015 09:38
Letzter Beitrag: olmethn
  Erzeuger-Verbraucher Muster Abbruch Verbraucherschleife mit Abarbeitung der Queue lumaxo 5 6.703 12.02.2015 13:55
Letzter Beitrag: Lucki
  Abbruch while-Schleife alex2705 5 5.837 04.02.2015 15:25
Letzter Beitrag: alex2705
  analoge Signale nach Abbruch zurücksetzen nils2000 3 3.431 10.11.2014 18:53
Letzter Beitrag: Lucki
  Abbruch einer Whileschleife Quantenpunkt 6 5.777 27.03.2013 21:48
Letzter Beitrag: Quantenpunkt
  Abbruch einer Event-Schleife THL 5 5.084 02.11.2012 09:35
Letzter Beitrag: THL

Gehe zu: