LabVIEWForum.de
Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden (/Thread-Programm-laesst-sich-nach-laengerer-Datenaufzeichnung-nicht-mehr-beenden)



Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden - schurzgasschweisser79 - 17.06.2010 09:59

Hallo
ich hab hier ein Loop das Daten aus einer Queue bekommt und die in eine Datei schreibt (1 Messwert pro Sekunde)

Das funktioniert auch ganz gut. Auch der Abbruch der Messreihe über das Zerstören der Queue und dann das erneute Starten einer Messung in einer neuen Datei klappt.

Wenn ich allerdings das Programm über Nacht laufen lasse und ich am nächsten Morgen dann die Messreihe abbrechen und eine neue Messung starten will, dann reagiert das Programm nicht. Also Abbrechen klappt noch, aber beim Starten der neuen Messreihe bekomme ich z.b. schon keinen Auswahldialog mehr, wo die Datei denn hinsoll.
Es sei noch angemerkt dass ich das Programm als Applikation erstellt habe und diese verwende. Im Labor ist nämlich kein LabVIEW installiert :/

Hat da jemand ne Idee woran das liegen könnte?
[attachment=27191]


Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden - IchSelbst - 17.06.2010 10:21

Zu jedem "Melder anfordern" muss es ein "Melder freigeben" geben. Also: Den "Melder anfordern" für "Anzeige" aus der While-Schleife herauslegen und nach der While-Schleife freigeben. Genau so wie du das für den Melder "Go" gemacht hast. Für den Melder "Stop" gilt analoges. Am besten ist natürlich, das Anfordern und Freigeben außerhalb der äußeren While-Schleife zu machen.

Pro "Melder Anfordern" wird ein Handle erzeugt, der Speicher benötigt. Macht man das Anfordern (ohne Freigeben) in einer While-Schleife, so sind letztendlich genau so viele Handle vorhanden wie Schleifendurchläufe waren. "Über Nacht" sollten also sehr viele Handle aufgelaufen sein, die das System lahm legen könnten.

Erst diese notwendigen - siehe auch Onlinehilfe zu Meldern und Queues - Anpassungen vornehmen und dann wieder probieren


Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden - schurzgasschweisser79 - 17.06.2010 11:28

Sehr cool, IchSelbst. Ich versteh was ich machen sollWink- Ich werd es gleich ma ausprobieren. Bzw. dann beim nächsten Versuch über Nacht.
Vielen herzlichen Dank

Wo ich das Bild schon gepostet hab, habe ich noch eine Frage :] - und zwar bei dem
"Datei öffnen" - VI kann man die Pufferung deaktivieren.
Ich dachte Pufferung bei Datei schreiben heißt, dass zuerst in einen Puffer geschrieben wird, und wenn der voll ist in die Datei. Nachdem ich aber wirklich immer sofort schreiben wollte (falls der PC mal abstürzen sollte..Tongue), habe ich diesen Puffer mal bei dem VI deaktiviert. Die Konsequenz war blöderweise, dass die Datei komplett leer geblieben ist. Bei jedem "in Datei schreiben" schreiben werden ungefähr 80 Zeichen geschrieben.

Kann man das auch erklären?Wink
Lg


Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden - schurzgasschweisser79 - 08.07.2010 10:16

Hat übrigens geklappt! Programm stürzt nicht mehr ab. Die Frage in meinem letzten Post hier drüber mit der Pufferung beim "in Datei speichern" wäre allerdings noch offenWink


Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden - jg - 08.07.2010 11:27

Mit dieser Option bei File-Open habe ich noch nie gearbeitet, alsoKA.

Aber wie wäre es stattdessen, nach jedem Write-Vorgang ein Flush-File einzufügen:
[attachment=27699]

Gruß, Jens


Programm lässt sich nach längerer Datenaufzeichnung nicht mehr beenden - RoLe - 08.07.2010 14:11

' schrieb:Ich dachte Pufferung bei Datei schreiben heißt, ....

Kann man das auch erklären?Wink
Wenn jemand Lust hat schon, zwischenzeitlich kannst du beides in der LabVIEW Hilfe nachlesen?Wink