09.06.2015, 16:03
Hallo zusammen,
ich versuche derzeit eine Datenaufzeichnung mittels einer boolschen Variable zu steuern. Ausgangssituation ist ein Sub-VI, welches Daten aus einer Queue bekommt und mit der globalen Variablen "datenaufzeichnung" die Aufzeichnung starten bzw. beenden soll. Die Daten werden in eine TDMS Datei geschrieben.
Das Hauptproblem war zunächst, dass die erstellte TDMS nach der Datenaufzeichnung, jedoch bei weiter laufendem Programm (das Programm soll praktisch durchlaufen) schon geöffnet werden können muss. Dazu muss die While-Schleife, in der die Datei beschrieben wird beendet werden. Versuche ich nun den Beginn und das Ende des Schreibvorgangs mit einer Variable zu lösen, funktioniert das nicht, da ich mit datenaufzeichnung = false sowohl die While-schleife beende, als auch den Case auf False setze und die Schleife so nicht sauber beendet wird.
Ich bin nun dazu übergegangen das Problem mit einer State-Machine zu lösen. Es funktioniert auch soweit. Im Case "Idle" wird abgewartet bis datenaufzeichnung = true ist, danach wird die Datei erstellt und beschrieben. Schalte ich nun jedoch datenaufzeichnung = false, so wird zwar der Schreibvorgang beendet, im nächsten Durchlauf von "Idle" jedoch steht Datenaufzeichnung immernoch auf "true" (warum???), so dass der Case "Idle" direkt durchlaufen und die Datei wieder geöffnet wird.
Irgendwo habe ich da einen Fehler drin, aber ich komme nicht weiter. Vielleicht könnt ihr mir weiter helfen. Ich habe zu diesem Zweck das VI mal angehangen.
Vielen Dank,
Mathes
ich versuche derzeit eine Datenaufzeichnung mittels einer boolschen Variable zu steuern. Ausgangssituation ist ein Sub-VI, welches Daten aus einer Queue bekommt und mit der globalen Variablen "datenaufzeichnung" die Aufzeichnung starten bzw. beenden soll. Die Daten werden in eine TDMS Datei geschrieben.
Das Hauptproblem war zunächst, dass die erstellte TDMS nach der Datenaufzeichnung, jedoch bei weiter laufendem Programm (das Programm soll praktisch durchlaufen) schon geöffnet werden können muss. Dazu muss die While-Schleife, in der die Datei beschrieben wird beendet werden. Versuche ich nun den Beginn und das Ende des Schreibvorgangs mit einer Variable zu lösen, funktioniert das nicht, da ich mit datenaufzeichnung = false sowohl die While-schleife beende, als auch den Case auf False setze und die Schleife so nicht sauber beendet wird.
Ich bin nun dazu übergegangen das Problem mit einer State-Machine zu lösen. Es funktioniert auch soweit. Im Case "Idle" wird abgewartet bis datenaufzeichnung = true ist, danach wird die Datei erstellt und beschrieben. Schalte ich nun jedoch datenaufzeichnung = false, so wird zwar der Schreibvorgang beendet, im nächsten Durchlauf von "Idle" jedoch steht Datenaufzeichnung immernoch auf "true" (warum???), so dass der Case "Idle" direkt durchlaufen und die Datei wieder geöffnet wird.
Irgendwo habe ich da einen Fehler drin, aber ich komme nicht weiter. Vielleicht könnt ihr mir weiter helfen. Ich habe zu diesem Zweck das VI mal angehangen.
Vielen Dank,
Mathes