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!
' schrieb:Sag mal bitte, klappt es bei dir so wie du gezeigt hast? Denn irgendwann war es ein Bug. Also der Eingang war ignoriert worden (ob True oder False), für das VI hatte es keine Auswirkung.
Das klappt schon immer so, wie ich mir es wünsche: Die EXE wird geschlossen und während der IDE bleibt das BD/FP erhalten. Hat in LV 7.1.1 und LV 8.2 (und jetzt in LV 8.5) geklappt. Einem Bug kann ich nicht feststellen.
[*grübel*]
Falls das mit dem Exit Zufall sein sollte: Gibt es in den Einstellungen (des MainVIs) einen Punkt "Entladen beim Beenden"?
Zitat:P.S. bei dem anderen will ich auch nicht zustimmen, denn FP Close sollte(IMHO) genauso funktionieren wie das Window-Kreuz zum Schliessen, ob IDE oder EXE. Und in LV habe ich noch nicht ein offenes BD mit geschlossenem (nicht minimiertem, sondern geschlossenem) FP gesehen.
Ja, da magst du schon Rechts haben. Nur: Was nützt es mir, wenn ich in der IDE bin und bei Programmende jedesmal das BD verschwindet. Ich jedenfalls bleib bei dem Exit.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Anzeige
01.07.2008, 23:37 (Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2008 23:47 von eg.)
Zitat:Note: To exit LabVIEW, you can use the Quit LabVIEW function located on the Functions>>All Functions>>Application Control palette. This function aborts all running VIs and ends the current session of LabVIEW. The function has one input. If it is wired, the end of the LabVIEW session occurs only if that input is True. If the input is not wired, the end of the session occurs when the node executes.
' schrieb:Ich hab das jetzt mal ausprobiert mit der Methode FP.Close und der Eigenschaft FP.Open=false. Ich muss schon sagen - lange nicht mehr so viel Mist gesehen.
Warum?
Ich muss natürlich genauso prüfen, ob ich in der IDE bin, weil ich dann ja das FP geöffnet lassen will:
Trotzdem halte ich meine Methode für mindestens genauso gut...und auch irgendwie nachvollziehbarer, weil ich - wie schon gesagt - ja nicht die LV(-RTE) abschießen will, sondern meine eigene Applikation!
Zitat:P.S. bei dem anderen will ich auch nicht zustimmen, denn FP Close sollte(IMHO) genauso funktionieren wie das Window-Kreuz zum Schliessen, ob IDE oder EXE. Und in LV habe ich noch nicht ein offenes BD mit geschlossenem (nicht minimiertem, sondern geschlossenem) FP gesehen.
@eg:
Der zweite Satz ist doch vollkommen am Thema vorbei! In der EXE gibts doch gar kein Blockdiagramm mehr! Wenn ich also bewusst das FP schließe, dann ist halt alles aus, so wie du's im ersten Satz auch vollkommen richtig feststellst!
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
02.07.2008, 06:24 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2008 06:26 von Grobi.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Installiertes Programm macht Fehler beim Beenden
:DDas Bild soll aber bleiben?
Jetzt zum Thema: Ich mache es auch so wie Achim und verwende (bis jetzt) kein "Quit" oder "Exit".
Gruß Markus
' schrieb:Hier stand Blödsinn.. sorry
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Ich nutze auch Quit LV, aber mich interessiert was anderes. Wenn Quit LV komplette Run Time beenden soll, dann sollten eigentlich auch alle LV-Exes mit beendet werden. Oder gibt es pro Exe eine eigene Run Time Instanz?
pro Exe (zumindest bei LV 8.x) gibt es eine eigene Applikations-Instanz. die Primitive "Quit LabVIEW" schließt diese Instanz.
Ich benutze diese Funktion in fast ALLEN meinen Applikationen um LV zu schließen, wenn eine EXE beendet wird (aber nur bei der Exe)
In LV 8.2.1 habe ich auch solche Probleme gehabt: die Funktion "Quit LabVIEW" hat die ab und zu Exe zum Absturz gebracht - wenn sie aufgerufent wurde, ich hatte also die Wahl zwischen Frontpanel bleibt offen oder Windows Fehlermeldung. Ich hab mich dann für die Fehlermeldung entschieden, so schlimm war das dann auch nicht.
Nach meinen Beobachtungen gab es dieses Verhalten aber nur, wenn ich die TCP/IP VIs in meinem Programm verwendet habe. Da ich in letzter Zeit fast nur verteilte Anwendungen mit PC + RT + FPGA schreibe also in fast jeder
Das Problem war weg, wenn ich die Funktion "quit LabVIEW" mit einer Disable-Struktur daktiviert habe, ok, dafür blieb dann das Frontpanel offen.
Mein Verdacht ist: irgendwas in den TCP/IP VIs von LV 8.2.1 ist nicht sauber programmiert, vermutlich wird da was nicht sauber deallokiert wenn die EXE geschlossen wird, was Windows (und dem gehört der TCP/IP Stack ja) dazu veranlaßt eine "Schutzverletzung" rauszuwerfen.
die gute Nachricht ist: mit LabVIEW 8.5.1 ist das weg.
Also, ich verwende auch immer das "Quit LV" um die EXE richtig zu beenden.
Was ich verwende ist ein "VI Stop or Exit LV". Der unterschied ligt darin, das in der IDE das "QUIT" (Stop) aufgerufen wird und in der EXE das "Quit LV" (Exit)
Da kann der Bug, der scheinbar in der 8.2.1 drinn ist, vermutlich nicht auftretten.
In Applikationen, wo mehrere FP geöffnet (aber nicht sichtbar) sind, ist es eher mühsam jedes einzeln mit FP.Close zu beenden.
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
' schrieb:In Applikationen, wo mehrere FP geöffnet (aber nicht sichtbar) sind, ist es eher mühsam jedes einzeln mit FP.Close zu beenden.
Ok, das stimme ich zu!
Gleichzeitig aber auch nicht! Wenn das QUIT verwendet wird, werden die Schleifen, die das jeweilige VI (MainVI und NebenVIs) "treiben", ja mehr oder weniger gewaltsam gekillt. Das finde ich ziemlich unsauber! Warum beendet ihr eure VIs nicht mit dem "Conditional Terminal"?
Wenn ihr tatsächlich im MainVI (oder auch in einem NebenVI) die Applikation über das Conditional Terminal beendet, und danach als letzten Schritt noch das QUIT für die anderen VIs aufruft, werden diese dann ja wieder "einfach so" gekillt...Dann sollte man doch lieber z.B. über Notifier o.ä. ein Stop an die anderen VIs senden und damit sauber anhalten. Wenn dann sicher ist, das alle stehen, kann man meinetwegen in irgendeinem der VIs das QUIT einbauen.
Naja, dieser Anwendungsfall ist für mich nicht relevant, weil ich finde, das bei mehreren geöffneten Frontpanels ruckzuck die Übersicht verloren geht...
Wie auch immer...sollte sich nichts gravierendes ändern, werde ich bei meiner Variante bleiben!
Gruß
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
' schrieb:Gleichzeitig aber auch nicht! Wenn das QUIT verwendet wird, werden die Schleifen, die das jeweilige VI (MainVI und NebenVIs) "treiben", ja mehr oder weniger gewaltsam gekillt. Das finde ich ziemlich unsauber! Warum beendet ihr eure VIs nicht mit dem "Conditional Terminal"?
Bei mir ist es so, das meine Anwendungen noch alle mit LV7.1 sind und dort gibt es das nicht.
' schrieb:...Dann sollte man doch lieber z.B. über Notifier o.ä. ein Stop an die anderen VIs senden und damit sauber anhalten. Wenn dann sicher ist, das alle stehen, kann man meinetwegen in irgendeinem der VIs das QUIT einbauen.
Da hast du auch wieder recht.
' schrieb:Wie auch immer...sollte sich nichts gravierendes ändern, werde ich bei meiner Variante bleiben!
Ich auch....
Ich mache das einfach so, weil ich damals in LV4.1 angefangen habe damit. Ob man das heute noch so machen soll/muss weis ich auch nicht.
Hautsache es funktioniert wie erwartet.
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.