LabVIEWForum.de
Datenspeichern wenn Knopf gedrückt - 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: Datenspeichern wenn Knopf gedrückt (/Thread-Datenspeichern-wenn-Knopf-gedrueckt)



Datenspeichern wenn Knopf gedrückt - chaos2009 - 25.05.2009 14:08

Hallo leute

ich komm gerade nicht weiter hab durch das Forum schon viele hilfreich Tipps und Anregungen für mein Programm bekommen.

Meine Programm soll die Daten von den Messkarten speichern das hat alles auch soweit funktioniert.
Da das Programm in dem Modus bis jetzt Daten ohne Ende produziert wollte ich mittels einem schalter (toggle switch) das speichern ein und ausschalten. Die Daten sollen in eine Binary file geschrieben werden.
Hab auch schon mehrere Strukturen (case, event, flat sequence) probiert. Meiner Meinung sollte es mit einer event schon klappen aber es geht gar nicht in die Schleife die ich im Anhang angefügt habe hinein, sondern sobald ich den Schalter betätige geht nichts mehr. Ich kann es nur noch über den roten Ausknopf abbrechen.
Meine Frage ist kann mir jemand helfen dies umzusetzen oder mal nen Blick auf meine Idee werfen.

Für Anregungen und Kritik bin ich sehr dankbar

Danke schon mal

gruß chaos2009


Datenspeichern wenn Knopf gedrückt - Y-P - 25.05.2009 15:57

Da wäre der Rest von Deinem VI auch interessant, um Dir helfen zu können.

Gruß Markus


Datenspeichern wenn Knopf gedrückt - chaos2009 - 25.05.2009 16:29

Okay da geb ich dir vollkommen recht.
Nur ich weiß nicht ob du mit dem vi was anfangen kannst da es nur ein subvi ist und von den anderen Beiden gesteuert wird.
Welche ich ungern öffentlich stellen will.
Ich hab mal meinen jetztigen speicher versuch hochgeladen es ist in LV 8.6 geschrieben worden.
Danke nochmals für den Hinweiß mit dem komplett VI

gruß chaos2009


Datenspeichern wenn Knopf gedrückt - jg - 25.05.2009 19:38

Dein VI zeugt davon, dass du die Grundprinzipien von LabVIEW offenbar noch nicht richtig verstanden hast.
Dies betrifft zuerst einmal das Datenflussprinzip!
1. Das Setzen von lokalen Variablen ohne Datenflussabhängigkeit im BD ist extrem gefährlich. Du weisst nicht, wann dieses Stück Code wirklich ausgeführt wird. LabVIEW kann so einen Code parallel abarbeiten, und wann dies geschieht, dass weisst du nicht.
[attachment=18638]
2. Eine Struktur (wie z.B. eine While-Schleife) wird erst ausgeführt, wenn alle Eingänge anliegen.
Dies hat in deinem VI zur Folge: Deine While-Loop, in die du sehr blauäuigig eine Event-Struktur platziert hast, wird erst ausgeführt, wenn du die Datenerfassungs-Loop UND die "Consumer-Loop" per Stop-Button beendet hast. Somit kannst du maximal den letzten per Queue übertragenen Datensatz speichern.
[attachment=18639]
3. Auch bei der Behandlung von Events gehst du komplett falsch vor. Eine While Loop, die du auch noch über ein User-Event abbrechen willst, gehört nie und nimmer in einen Event-Case hinein. Du erzeugst dir selber deinen Lock-Up hierüber:
[attachment=18640]
Die Event-Struktur reagiert auf das Value-Change Event des Buttons "Speichern". Dann ist aber das FP gesperrt, und zwar solange, bis der Event-Case abgearbeitet ist. Das geht aber nicht, weil du über den Button "Speichern" auch wieder die While-Schleife abbrechen willst.

Mein Tipp: Mache dich erst einmal an Hand der Beispiele im NI-Examplefinder mit der Event-Struktur viel vertrauter. Da lernst du sicher eine ganze Menge dabei. Und wenn du das dann kapiert hast, dann kriegst du selber das mit dem Speichern hin.

Gruß, Jens


Datenspeichern wenn Knopf gedrückt - chaos2009 - 26.05.2009 07:25

Hallo Jens

vielen dank für deine konstrucktive Kritik und die Hinweise wie ich es zum laufen bringen kann.
Ja du hast recht so ganz hab ich das noch nicht mit dem Fluss in LabVIEW verstanden.
Werd mich jetzt nochmal an den Exampel finder machen und hoffentlich kann ich da meine Probleme lösen.

vielen dank nochmal

gruß chaos2009