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 

VI wird nicht beendet wenn Event case schleife benutzt wird



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!

02.05.2012, 13:15
Beitrag #1

frischling Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2012

8.2 bis 2011
2012
EN


Deutschland
VI wird nicht beendet wenn Event case schleife benutzt wird
Hallo,

Ich lese über die serielle Schnittstelle Daten ein und möchte diese gezielt schließen wenn das VI beendet wird.
Wenn ich das nicht tue bleibt die Schnittstelle solange blockiert bis Labview komplett geschlossen wird, und das möchte ich verhindern.

Um das schließen der Applikation abzufangen benutze ich die Event cases "Application close?" und "Panel close?" und schliesse dort die Schnittstell mit VISA close.

Das gleiche tue ich wenn meine "main"-Schleife verlassen wird. Sind aber nun die Event Cases in dem VI drin, dann wird das vi nach Abbruch der Schleife nicht beendet.

Ich habe sehr wenig Erfahrung mit Labview und kann mir dieses Verhalte nicht erklären, geschweige denn etwas dagegen unternehmen.

Ich bin also für jede Hilfe dankbar!!

Viele Grüße,
Bob
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.05.2012, 13:20
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Hallo bob,

Zitat:Das gleiche tue ich wenn meine "main"-Schleife verlassen wird. Sind aber nun die Event Cases in dem VI drin, dann wird das vi nach Abbruch der Schleife nicht beendet.
Wieso sollten diese Events (App.Close, Panel.Close) nicht abgearbeitet werden?
Schon mal Debugging mit Sonden und HighlightExecution betrieben?

Alles weitere ist nur Glas1, solange du kein VI anhängst...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 13:29
Beitrag #3

frischling Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2012

8.2 bis 2011
2012
EN


Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Hallo GerdW,

Ähm soweit ich dieFunktionalität kenne habe ich debugging versucht, d.h. eine conditional probe an den Stop-Knopf der die Schleife abbricht.
Die Schleife wird noch einmal fertig durchlaufen und dann das Visa Close ausserhalb und danach passiert nichts mehr... aber das Vi rennt weiter.

Ich hab das betreffende VI mal angehängt, abgespeichert als 8.2er VI.


Angehängte Datei(en)
8.2 .vi  Spektren-Aufnehmer AcetoScan_test.vi (Größe: 49,81 KB / Downloads: 317)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 13:33 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2012 13:35 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Hallo Frischling,

THINK DATAFLOW!

- Deine Eventstruktur wird evtl. abgearbeitet - aber die andere Schleife bekommt davon ja nichts mit! Wie soll also die (innere) Schleife beendet werden, wenn der User auf "Panel.Close" klickt?
- Dein "Spektrum Beginn" kann ohne lokale Variablen auskommen, nimm ein Schieberegister und Drähte!
- Es gibt noch keine lv12_img-Version (offiziell), also bitte Profil anpassen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 13:38 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2012 13:39 von frischling.)
Beitrag #5

frischling Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2012

8.2 bis 2011
2012
EN


Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Das hatte ich befürchtet dass ich hier grundlegendes nicht kapiert hab...

Mit Panel.Close hab ich noch nicht ausprobiert.
Bisher hab ich nur den eigenen STOP-Button genutzt und dann passiert das was ich beschrieben habe.
Der Button beendet ja beide Schleifen, oder sehe ich das falsch?
Lösche ich die Event-Struktur wieder raus, dann wird das VI beendet.

Danke schonmal für die schnelle Hilfe.

P.S. das mit den Schieberegister statt lokale Variable muss ich auch erstmal durch-grübeln, im Moment kapier ich's nicht :/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 13:40 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2012 13:42 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Hallo frischling,

dann halt anders herum: wie soll deine Eventstruktur mitbekommen, dass du den STOP-Button gedrückt hast?
Lösung: ein entsprechendes Event definieren (STOP.ValueChange)...

- Eine Eventstruktur reagiert nur auf die konfigurierten Events, nicht mehr und nicht weniger!
- Da die Programmstruktur sowieso noch verbesserungswürdig ist, wäre jetzt ein guter Zeitpunkt, mal alles zu überdenken...
- Grundlagen zu Schieberegistern findest du im Link meiner Signatur...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.05.2012, 13:55
Beitrag #7

frischling Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2012

8.2 bis 2011
2012
EN


Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Bedeutet das, dass die eventstruktur immer noch wartet dass eins der definierten events eintrifft und das VI deshalb nicht beendet wird?

Ich hab jetzt ein Schieberegister eingebaut und den case Stop.ValueChange auch eingebaut.
An dem Verhalten beim Beenden hat sich nichts geändert :/
Ich sehe nur wie jetzt der Stop-event abgearbeitet wird und danach hängt's wieder.

Danke für den Hinweis mit der Programmstruktur, aber wäre es dir möglich mir etwas genauer zu sagen was da falsch ist? Ich denke das könnte mir helfen.


Angehängte Datei(en)
8.2 .vi  Spektren-Aufnehmer AcetoScan_test.vi (Größe: 50,45 KB / Downloads: 255)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 14:09
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Hallo frischling,

du hast immer noch grobe Datenfluss-Verstöße in deinem Aufbau. Versuche dir eine ordentliche Struktur zu überlegen!

- Verzichte auf die Eventstruktur und regele das PortSchließen über simplen Dataflow, einfach die VISA-Referenz durch die Whileschleife führen und nach der Schleife dann den Port schließen...
- Verwende die Eventstruktur in der Schleife, evtl. mit TimeOut, und dann aber auch für alle Events, die auftreten können...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 14:33
Beitrag #9

frischling Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2012

8.2 bis 2011
2012
EN


Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Wenn ich auf die Event-Struktur verzichte, wie kann ich die Schnittstelle schließen wenn das VI-Fenster geschlossen wird?
Funktioniert im Moment auch nicht, wenn ich das Fenster schließe passiert genau nichts :/

Event-Struktur in der äußeren while-Schleife bewirkt daß zumindest der Stop-Button richtig funktioniert!
Schonmal Vielen Dank dafür!


Angehängte Datei(en)
8.2 .vi  Spektren-Aufnehmer AcetoScan_test.vi (Größe: 50,32 KB / Downloads: 253)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 14:44
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI wird nicht beendet wenn Event case schleife benutzt wird
Hallo Frischling,

siehe Anhang. Ich behaupte nicht, dass die Programmstruktur als solches schon "schön" ist...

Du hast deine LV-Version im Profil noch nciht korrigiert...


Angehängte Datei(en)
9.0 .vi  Spektren-Aufnehmer AcetoScan_test.vi (Größe: 37,46 KB / Downloads: 280)

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
  LabVIEW NXG wird eingestellt... jg 9 15.927 05.03.2023 15:02
Letzter Beitrag: cb
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 6.833 02.02.2021 15:05
Letzter Beitrag: Lucki
  Frontpanel wird beim beenden nicht immer geschlossen Winterkind 4 3.534 08.04.2020 08:30
Letzter Beitrag: Freddy
  Bestimmte Zeilen im Array löschen wenn Bedingung nicht erfüllt ist bachatero18 4 5.350 31.03.2020 14:49
Letzter Beitrag: bachatero18
  Default Wert wird nicht gespeichert ares2013 8 6.715 27.02.2020 12:51
Letzter Beitrag: jg
  Sequenz wird zweimal durchlaufen mprocket 7 5.696 21.01.2018 18:59
Letzter Beitrag: mprocket

Gehe zu: