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.


Thema geschlossen 

Absturz beim Beenden



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!

14.01.2010, 18:16
Beitrag #1

Maze82 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Oct 2009

2010
2006
DE

74076
Deutschland
Absturz beim Beenden
Hallo zusammen!
Ich habe ein LV Programm geschrieben, mit dem 4 Pumpen über die serielle Schnittstelle gesteuert werden können. Das Programm funktioniert prima aber wenn es lange läuft (> 20 min) und ich es dann beenden will hängt sich LV auf bzw. dauert es eine halbe Ewigkeit bis das VI geschlossen wird.
Wenn es nur kurz läuft lässt es sich ohne Probleme schließen. Dabei ist es egal ob ich das VI mit dem LV eigenen „Ausführung Stoppen“ Button aus der Menüleiste oder über meinen eigenen EXIT-Button beende.
Das Programm ist als Zustandsautomat aufgebaut, der über eine Queue gesteuert wird und verfügt über eine Event-Struktur mit dynamischen Events.

Das Problem tritt sowohl unter LV8.6 wie auch unter LV9 auf.

Habe bereits versucht die Queue-Referenzen innerhalb bzw. außerhalb der While-Schleife freizugeben. Das hat aber auch keinen Unterschied gemacht.
Wenn ich mir die Speicherauslastung im Task-Manager anschaue während das Programm läuft, kann ich nichts Auffälliges feststellen. Auch wenn ich unter Profil->Leistung und Speicher nachschau finde ich nichts was mir weiterhilft. Langsam gehen mir die Ideen ausSad

Vielleicht weis ja jemand woran das liegen könnte.

Gruß Matthias

Lv86_img


Angehängte Datei(en)
Sonstige .llb  QSM_PC_Pumpe.llb (Größe: 502 KB / Downloads: 232)
Alle Beiträge dieses Benutzers finden
to top
Anzeige
14.01.2010, 19:13
Beitrag #2

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
Absturz beim Beenden
Ich hatte jetzt gerade noch keine Möglichkeit Deinen Code anzuschauen, aber wenn du von Queue sprichst, könnte es sein, dass deine Queuelänge auf unendlich steht und sich mittlerweile so viele Elemente dort angesammelt haben, dass es eben so lange dauert diese abzuarbeiten, bevor dann die Schleife beendet werden kann.

Einfach mal so ins Dunkle hineingeraten... Big Grin

Tobias Brüggemann
Dipl.-Ing.(FH) Nachrichtentechnik/Elektronik
Alle Beiträge dieses Benutzers finden
to top
14.01.2010, 19:42
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Absturz beim Beenden
' schrieb:Das Programm funktioniert prima aber wenn es lange läuft (> 20 min) und ich es dann beenden will hängt sich LV auf bzw. dauert es eine halbe Ewigkeit bis das VI geschlossen wird.
Kenn ich.

Zitat:der über eine Queue gesteuert wird
Ja was seh ich denn da: Eine Überprüfung des Füllstands der Queue. => Alles ok mit der Queue.

Zitat:und verfügt über eine Event-Struktur mit dynamischen Events.
Ich würde das Management (create, close) der Events außerhalb der Schleife machen.

Zitat:Das Problem tritt sowohl unter LV8.6 wie auch unter LV9 auf.
Für beides gibt es Updates. Hast du die installiert?

Zitat:Habe bereits versucht die Queue-Referenzen innerhalb bzw. außerhalb der While-Schleife freizugeben.
Ich ziehe außerhalb vor.

Außerdem:
Das mit dem STOPP-VI im Exit-Case gefällt mir nicht. STOPP hat den Hauch eines brachialen Abbruchs.
In den beiden Masken zum Konfigurieren solltest du in die While-Schleifen eine kurze Wartezeit machen. Sonst läuft der Prozessor auf 100%.
Auch die 1-ms-Wait in der Haupt-While-Schleife muss so klein nicht sein. Da geht bestimmt doch auch 100ms.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
to top
14.01.2010, 20:46
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Absturz beim Beenden
Mal was nebenbei: Unsure

Wie kommst du denn darauf, ein Anzeigeelement zu beschreiben mittels Referenz und Property VALUE? Hier wäre eine lokale Variable doch viel einfacher. Und in READ STRING.VI geht alles mit Datenfluss. Da brauchst du doch weder Property noch lokale Variable.

Hat es einen bestimmten Grund, warum du die Variante mit Referenz und Property verwendest?

Im übrigen geht bei mir mit 8.6.1f1 (bisher) alles richtig. Allerdings hab ich halt keine Pumpen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
to top
15.01.2010, 10:41
Beitrag #5

Maze82 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Oct 2009

2010
2006
DE

74076
Deutschland
Absturz beim Beenden
Erst mal Danke für die schnellen Antworten!
@ Tobias:
Richtig geraten ;)hab die Anzahl jetzt mal begrenzt und getestet. Braucht aber nach ner halben Stunde Laufzeit immer noch fast 30 sec bis es sich schließen lässt (immerhin ist es nicht abgestürzt Rolleyes)

@IchSelbst
Das Eventmanagement hatte ich zuerst auch außerhalb der Schleife. Habs dann beim Fehlersuchen (genauso wie die Queue-Referenz) mal innerhalb und mal außerhalb gehabt. Hat an meinem Problem aber nichts geändert.

Das STOPP-VI ist auch erst nachträglich dazugekommen. (Hab gedacht wenn ich das VI nicht „normal“ beenden kann dann vielleicht mit der Holzhammer-Methode) geht aber auch nicht.

Das VI EXIT LabVIEW kann ich nicht verwenden, da das Programm auf einem Prüfstandsrechner läuft, auf dem parallel noch weitere Instanzen von LabVIEW laufen. (Das hat mit meinem Problem aber nichts zu tun, da es sich auch auf meinem Rechner aufhängt).

Danke für den Hinweis mit den Konfigurationsmasken. Hab ich schlichtweg übersehen.

Wunder Dich nicht über meinen eigensinnigen Programmierstiel. Hab das Programm als Vorbereitung für meine Diplomarbeit geschrieben. Meine bisherigen LabVIEW-Kenntnisse waren auf rudimentäre Funktionen beschränkt (was einem halt in einer 2-Semesterwochenstunden Vorlesung beigebracht werden kann).
Kannte weder Queues noch Event-Strukturen geschweige denn Referenzen. Hab hier mal wild ausprobiert und nicht unbedingt die beste Lösung gesucht.

Das Du keine Pumpen hast hab ich mir schon fast gedacht;)macht aber nichts ich bekomm das Programm auch ohne zum Absturz.

Thema Update:
Für die 2009 Version musste ich das VISA Update ziehen.
Wenn ich bei NI nach Updates such find ich 2537 Stück.
Gibt’s da sowas wie ein Hauptprogramm Update ???

LG Matthias
Alle Beiträge dieses Benutzers finden
to top
15.01.2010, 11:21
Beitrag #6

Maze82 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Oct 2009

2010
2006
DE

74076
Deutschland
Absturz beim Beenden
Habs gefunden... LV8.6.1f1
Alle Beiträge dieses Benutzers finden
to top
Anzeige
15.01.2010, 12:20
Beitrag #7

Maze82 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Oct 2009

2010
2006
DE

74076
Deutschland
Absturz beim Beenden
mit LV8.6.1f1 ist es aber auch nicht besser Angry
Alle Beiträge dieses Benutzers finden
to top
15.01.2010, 12:53
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Absturz beim Beenden
' schrieb:ich bekomm das Programm auch ohne zum Absturz.
Das ist doch schön.

Ich bringe es nicht zum Abstürzen.

Ich habe auch nur eine interne COM-Schnittstelle. Ich habe es eine Stunde laufen lassen und konnte hinterher alles gut beenden. Stürzt es bei dir auch ab, wenn du keine physikalischen COM-Ports hast. Was hast du denn für COM-Ports? USB-Simulierte? MultiPort-COM? Nicht dass da ein Treiber Probleme macht.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
to top
15.01.2010, 13:06
Beitrag #9

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
Absturz beim Beenden
Habe mir dein Programm mal kurz angeschaut. Warum führst du das release queue nicht im Exit-State aus?

Ausserdem solltest du an deinem errorhandling arbeiten. In deinem Q-Manager-Vi änderst du bspw nicht den Status des Errors wenn die Q nicht mehr existiert. Darauf könnte man auch den Abbruch des Programmes triggern...

Hab mal mein VI hochgeladen, mit dem ich unseren Praktikanten einige Grundschritte in Sachen Queues (Erzeuger-Verbraucher) zeige. Im Grunde genau wie die Beispiele die es auch von NI gibt. :-) Aber so wird klar, was ich mit Errorhandling meine.

Sonstige .vi  Queue_handling.vi (Größe: 12,36 KB / Downloads: 241)
(LV 2009)

Edit: 8.6 Version hochgeladen

Sonstige .vi  Queue_handling__8_6.vi (Größe: 8,62 KB / Downloads: 217)
(LV 8.6)

Grüße,
Tobias
Alle Beiträge dieses Benutzers finden
to top
15.01.2010, 13:58
Beitrag #10

Maze82 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Oct 2009

2010
2006
DE

74076
Deutschland
Absturz beim Beenden
@IchSelbst
An meinem Rechner hier habe ich keinen nativen COM-Port, sondern verwende USB-Serial-Bridges.
Der Prüfstandsrechner hat auch einen physikalischen COM-Port, aber die Pumpen werden ebenfalls über die USB-Serial-Bridge angeschlossen.
Das Programm hängt aber auch wenn ich die USB-Bridge nicht anschließe und die VISA Ressource leer lass.
Du könntest es nach einer Stunde problemlos beenden???
Bei meinem letzten Versuch ist es zwar nicht abgestürzt aber LabVIEW blockiert für gut 30 sec alle anderen Prozesse und lastet den Prozessor mit 100% voll aus.

@Tobias
sehr schön sowas kann ich gut gebrauchen aber kannst Du das VI für LV8.6 hochladen?? LV2009 ist nur auf den Prüfstandsrechner drauf und der ist meistens belegt...
Alle Beiträge dieses Benutzers finden
to top
Thema geschlossen 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Absturz von Applikation wegen Fehler in lvrt.dll dereinzug 5 3.053 20.10.2023 11:06
Letzter Beitrag: Martin.Henz
  Absturz von LabView 2016 MarcoN 9 5.277 21.07.2020 09:15
Letzter Beitrag: MicroScoop
  Frontpanel wird beim beenden nicht immer geschlossen Winterkind 4 3.534 08.04.2020 08:30
Letzter Beitrag: Freddy
  Mehrfacher Absturz von LabView 2010 Sade 3 3.513 24.09.2018 14:46
Letzter Beitrag: GerdW
  Absturz bei Öffnen eines sub VI oe-ms1 7 6.102 19.03.2018 06:58
Letzter Beitrag: oe-ms1
  Datenverlust in XY Graph beim automatischen Beenden des Programms Atlaspremier 6 5.069 24.08.2016 11:27
Letzter Beitrag: Freddy

Gehe zu: