LabVIEWForum.de
TDMS-Datei lesen und ausgeben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: TDMS-Datei lesen und ausgeben (/Thread-TDMS-Datei-lesen-und-ausgeben)



TDMS-Datei lesen und ausgeben - Sakis - 26.09.2018 11:04

Hallo zusammen!

Ich habe mir ein Programm geschrieben, mit dessen Hilfe ich eine TDMS-Datei Channel für Channel einlese und parallel dazu ausgebe.

Nun habe ich zwei Probleme (vielleicht hängen diese auch zusammen):

1. Mit der flachen Sequenzstruktur und einem Timer messe ich die Zeit, die das Programm zum Ausgeben der Daten braucht. Ich erwarte hier Werte von 10000ms pro Signal. Wenn ich alles richtig verstanden habe, sollten meine Signale in der TDMS-Datei nämlich eine Länge von je 10 Sekunden haben (100000 Samples und 0,0001 Inkrement). In der Realität messe ich hier aber Werte zwischen 15 und 150 ms pro Signal.

2. Bei der Ausgabe der Signals "Rauschen" und "Sinus" bekomme ich folgenden Error-Code: -200288
Zitat:Mögliche Ursachen:

Es wurde versucht, einen Wert nach dem zuletzt erzeugten Wert zu schreiben. Die Generierung wurde gestoppt. Daher wird der Wert, der durch die Kombination von Position und Offset angegeben wurde, nicht mehr verfügbar.

Geben Sie Position und Offset so an, dass nur Werte bis zum zuletzt erzeugten Sample ausgewählt werden, aber nicht danach. Das zuletzt erzeugte Sample kann ermittelt werden, wenn die Gesamtzahl der Samples ermittelt wird, nachdem die Erzeugung gestoppt wurde.

Es wurde versucht, ein Sample zu schreiben: 101000
Eigenschaft: RelativZu
Zugehöriger Wert: Aktuelle Schreibposition
Eigenschaft: Offset
Zugehöriger Wert: 0

Task-Name: _unnamedTask<12>

Wo ist der Unterschied zur DC-Ausgabe? Diese funktioniert einwandfrei. Die Signale "Rauschen" und "Sinus" unterscheiden sich doch nur in den Zahlenwerten von "DC".

Vielleicht hat ja jemand mal ein ähnliches Problem gehabt und kann mir einen Tipp geben.

EDIT: Ich habe festgestellt, dass der Fehler immer auftritt, wenn es mehrere Signale sind. Ob ich nur "DC" oder nur "Rauschen"/"Sinus" macht keinen Unterschied.

Vielen Dank im voraus

Jens


RE: TDMS-Datei lesen und ausgeben - GerdW - 26.09.2018 11:28

Hallo Sakis,

1. Du misst die Zeit, die du benötigst, um deine Waveform an den DAQmx-Treiber zu übergeben. Das hat überhaupt nichts damit zu tun, wie lange das DAQmx-Gerät dann danach beschäftigt ist, diese Waveform auszugeben…

2. Du versuchst, eine zweite Waveform auszugeben, bevor die erste "abgespielt" wurde. Und da der Buffer auf deinem DAQ-Gerät endlich ist, kommt es zum Überschreiben von noch nicht "gespielten" Samples…


RE: TDMS-Datei lesen und ausgeben - Sakis - 26.09.2018 12:12

Hallo Gerd,

vielen Dank für die schnelle Antwort.

Zu 1.: Du hast natürlich absolut Recht, hätte ich mir denken können.

Zu 2.: Ich habe jetzt in jedem True-Case 10000ms Wartezeit eingefügt. Leider ändert das nichts an der Fehlermeldung.


RE: TDMS-Datei lesen und ausgeben - GerdW - 26.09.2018 12:14

Hallo Sakis,

LabVIEW bringt einen Beispielfinder mit.
Und es gibt da Beispiel-VIs, die zeigen, wie man große Waveforms ausgeben kann, die nicht (komplett) in den internen Buffer eines DAQmx-Gerätes passen…


RE: TDMS-Datei lesen und ausgeben - Sakis - 26.09.2018 13:38

Hallo Gerd,

ich weiß leider nicht genau welches Beispiel mir weiterhelfen soll. Das Beispiel "Spannung (ohne Regeneration) - Kontinuierliche Ausgabe" kommt meinem Problem aber am nähsten. Ob ich mein "DAQmx write" VI in einer while-Schleife aufrufe oder in einer Sequenzstruktur macht doch keinen Unterschied, oder?Huh


RE: TDMS-Datei lesen und ausgeben - GerdW - 26.09.2018 14:44

Hallo Sakis,

Zitat:Das Beispiel "Spannung (ohne Regeneration) - Kontinuierliche Ausgabe" kommt meinem Problem aber am nähsten. Ob ich mein "DAQmx write" VI in einer while-Schleife aufrufe oder in einer Sequenzstruktur macht doch keinen Unterschied, oder?
Ob Schleife oder Sequenz macht wirklich keinen Unterschied. Aber die DAQmx-Einstellungen davor.

Funktioniert dieses Beispiel mit deiner Hardware?


RE: TDMS-Datei lesen und ausgeben - Sakis - 26.09.2018 15:32

Hallo Gerd,

ja, das Beispiel funktioniert mit meiner Hardware. ich verwende hier die NI USB-6211.

Ich denke mal, dass ich mich morgen mit den Timing und Puffer Einstellungen was genauer befassen muss. Heute habe ich leider keine Zeit mehr.

Gruß

Jens