16.05.2006, 14:10
Beitrag #1
|
Holger.S
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: May 2006
7.1
2005
kA
Deutschland
|
Mögliche Ursache für Programmhänger?
Hallo alle zusammen,
ich habe ein Problem bei einem VI unter LabVIEW 7.0/7.1. (Win2000)
Das Programm liest 6 serielle Schnittstellen gleichzeitig ein, sowie die Werte von 6 Analogeingängen einer IO-Karte. Die eingelesenen Werte werden am Monitor dargestellt und in einer Datei protokolliert.
Das Problem besteht darin, daß sich LabVIEW nach einer gewissen Zeit (1..5h) "aufhängt", d.h., es sind keine Eingaben mehr möglich, es läßt sich nicht beenden und auch ein Abbruch über den Taskmanager ist nicht möglich. Die Anzahl der LabVIEW zugeordneten Handles im Taskmanager scheint während der Laufzeit ständig zu steigen (bis zu 3000), was dann anscheinend zu dem Hänger führt.
Hat irgendjemand eine Idee wo man in diesem Fall mit einer Fehlersuche ansetzen könnte?
Beste Grüße
Holger
|
|
|
16.05.2006, 14:17
Beitrag #2
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Mögliche Ursache für Programmhänger?
Pufferüberlauf denke ich. Da muss man das Programm genau anschauen. Ich habe mal vom 8 seriellen Schnittstellen gleichzeitig eingelesen und protokolliert, sollte also kein Problem sein. Betrachte mal mit dem Taskmanager deinen PC-Speicher und CPU-Auslastung genauer.
Versuche mal die Tasks sauber zu trennen. Kommuniziere zwischen den Tasks über Queues mit einer festdefinierten Grösse.
Gruss, Eugen
|
|
|
16.05.2006, 15:39
Beitrag #3
|
|
|
16.05.2006, 16:44
Beitrag #4
|
Svenni
LVF-Gelegenheitsschreiber
Beiträge: 227
Registriert seit: Mar 2005
7.1, 8.0, 8.2, 8.21, 8.5, 8.6, 2009, 2010, 2011, 2012, 2013, 2014
2000
DE
23843
Deutschland
|
Mögliche Ursache für Programmhänger?
Hallo,
also, an den Schnittstellen kann es, glaube ich, nicht liegen. Ich habe Testprogramme laufen, die über den ganzen Tag mit sechs seriellen Schnittstellen kommunizieren und gleichzeitig von vier Messkarten(PCI6071) Werte holt. Das klappt ohne Probleme.
Starte mal den VI-Profiler und schaue dir Speicherauslastung an.
Gruß
sven
|
|
|
17.05.2006, 12:55
Beitrag #5
|
Holger.S
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: May 2006
7.1
2005
kA
Deutschland
|
Mögliche Ursache für Programmhänger?
Halllo,
danke für Eure Antworten. Da ich noch nicht sehr viele Erfahrungen mit LabVIEW habe, muß ich allerdings noch mal nachfragen:
Eugen: Welche Tasks meinst Du? Die Windows-Tasks? Die sollten doch nicht kommunizieren. Oder die einzelnen Schnittstellentasks meines Programmes? Diese laufen auch unabhängig voneinander parallel, schreiben allerdings Daten in die gleiche (Text-)Datei.
Jürgen: Was meinst Du mit Referenzen? Ich habe in der mir verfügbaren Literatur zum Thema den Begriff nicht gefunden.
Sven: Die Speicherauslastung der einzelnen Module im Profiler bleibt konstant, während die Anzahl der Handles und Threads im Taskmanager für LabVIEW langsam, aber ständig steigt.
Noch einmal vielen Dank
Holger
|
|
|
19.05.2006, 10:05
Beitrag #6
|
Holger.S
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: May 2006
7.1
2005
kA
Deutschland
|
Mögliche Ursache für Programmhänger?
Ich habe den Fehler inzwischen gefunden:
Ich hatte die seriellen Schnittstellen bei jedem Lesevorgang zuerst initialisiert und am Ende wieder geschlossen. Da dies zu Lese(Timing-)problemen geführt hat, habe ich die Initialisierung weggelassen und die Einstellung der Schnittstellen-Parameter in der Systemsteuerung vorgenommen. Die verbliebenen CloseVisa-VIs haben anscheinend den o.g. Fehler bewirkt, denn nachdem ich diese jetzt auch entfernt habe, läuft das Programm inzwischen seit 2 Tage absturzfrei durch.
Nochmal danke für alle Tips
Holger
|
|
|
| |