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.
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.
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:
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