LabVIEWForum.de
TDMS Richtig programmieren - 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: TDMS Richtig programmieren (/Thread-TDMS-Richtig-programmieren)

Seiten: 1 2


TDMS Richtig programmieren - NoD - 21.09.2009 20:45

Hallo Jungs,

ich würde gerne Daten (also mehrere Kanale) mittels TDMS speichern.
ich möchte dabei bewusst eine forschleife verwenden und nicht immer einzeln (für jeden kanal) einen signalverlauf erstellen.
ich übertrage die daten mittels array und von der master in die slave schleife in der sie anschließend gespeichert werden sollen.
Wie geh ich dann vor, wenn ich die daten in der slave schleife hab und diese mit der forschleife in ein file schreiben will???


[attachment=21384]

danke an euch.Huh


TDMS Richtig programmieren - schrotti - 22.09.2009 18:46

Du hast doch eigentlich schon alles. Oder willst du wissen, ob und wie es besser ginge?


TDMS Richtig programmieren - NoD - 22.09.2009 18:53

Nein, so klappts irgendwie nicht richtig. es werden kanäle und daten dazu in folgender reihenfolge abgespeichert:
1. Kanal : Zufallszahlen bis 1
2. Kanal : 0 (also nix)
3. Kanal : Zufallszahlen bis 100
wo ist dann mein 10 er Kanal plötzlich hin?
ja und wie könnte man das anders/besser machen?

Dank dir!


TDMS Richtig programmieren - NoD - 22.09.2009 19:03

Ich hab mir mal das übertragene array anzeigen lassen (siehe Bild)
und.... dann geht der File input auf einmal!
Kann das sein dass das ein BUG ist?

[attachment=21412]

wie kann das sein!??!?!!?


TDMS Richtig programmieren - schrotti - 22.09.2009 19:42

Hm, lässt sich bestimmt nicht reproduzieren.

Du könntest das Array mit der Funktion "Array umformen" umformen, wodurch sich die Anzahl der Kanäle auch zur Laufzeit ändern ließe.
[attachment=21413]

Ich weiß jetzt natürlich nicht, ob es nur im Beispiel so ist, aber nur einen Wert pro Kanal zu schreiben ist nicht sehr elegant. Es wäre auch besser, alle Kanäle auf einmal zu schreiben.


TDMS Richtig programmieren - NoD - 22.09.2009 20:01

Stimmt...das gleichzeitig schreiben aller kanäle klinkt sinnvoll...
nur wie würdest du das programmatisch machen? auch im hinblick darauf, dass man nicht
ewig viele signalverlauf erstellen benötigt?!??!


TDMS Richtig programmieren - IchSelbst - 22.09.2009 20:21

' schrieb:Stimmt...das gleichzeitig schreiben aller kanäle klinkt sinnvoll...
nur wie würdest du das programmatisch machen?
Einfach die For-Schleife weglassen.
Wenn am Eingang für die Kanalnamen ein 1DArray anliegt (aus "Kanal1", "Kanal2" ...) muss am Dateneingang ein 2D-Array anliegen. Dann werden in der TDMS-Datei drei Kanäle erstellt die jeweils ein 1D-Array haben.

Kannst du den Sourcecode nicht mal als VI hier posten?


TDMS Richtig programmieren - schrotti - 22.09.2009 20:22

Wenn die Daten nicht als Waveform vorliegen wäre es sinnvoll, erst für jeden Kanal ein Array zu erstellen um anschließend, wenn es ans Speichern geht, dieses Array in ein Waveform zu packen. Aus den Waveforms ein 1D Array bauen und dass dann schreiben. Die Frage ist auch, ob Waveforms überhaupt gefordert sind.


TDMS Richtig programmieren - NoD - 22.09.2009 20:28

also so?!?!?!?
was hält ihr davon?

[attachment=21414]


TDMS Richtig programmieren - NoD - 22.09.2009 20:34

' schrieb:Wenn die Daten nicht als Waveform vorliegen wäre es sinnvoll, erst für jeden Kanal ein Array zu erstellen um anschließend, wenn es ans Speichern geht, dieses Array in ein Waveform zu packen. Aus den Waveforms ein 1D Array bauen und dass dann schreiben. Die Frage ist auch, ob Waveforms überhaupt gefordert sind.

Das problem ist nur, dass das daten streaming erst mit knopfdruck beginnen soll und auch enden!