Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich benutze zur Abspeicherung diverser Messreihen das TDMS Datenformat mit den normalen Funktionen von LabVIEW.
Jetzt habe ich das Problem, dass zur Archivierung der Messungen nicht alle Kanäle nötig sind.
Meine Frage:
Wie kann ich mit LabVIEW Mitteln einen Kanal aus einem TDMS File löschen, bzw. ist dies überhaupt möglich?
(03.07.2012 14:13 )Lutzi schrieb: Ich benutze sehr grosse Dateien auf einem Rechner mit Flash Speicher. Alles klar?
Mittlerweile habe ich über die Hotline die Empfehlung gleich aus tdm Dateiformat zu wechseln, dort funktioniert das löschen nämlich.
Ist zwar doof, aber wohl nicht zu ändern
Das TDMS Format ist sehr gut geeignet um effizient neue Daten (und Kanäle) hinzuzufügen, aber absolut ungeeignet um Daten danach wieder zu entfernen ohne das ganze File komplet einzulesen und nur noch die gewünschten Daten zurückzuschreiben. Theoretisch könnte man Daten eventuel markieren als gelöscht aber damit würde das File kein einziges Byte kleiner und das ist meist nicht das Ziel der Übung.
Das Problem ist universel und auch NI kann sich diesen Sachzwängen nicht entziehen.
(04.07.2012 09:45 )Lutzi schrieb: Es geht ja nicht um das Verkleinern der Dateien, sondern um das entfernen von Einträgen.
Ich denke NI sollte die Option "markieren als gelöscht" einbauen.
Zweck der Übung ist ja nur, dass bei Excel Import (oder ähnlichen) diese Daten nicht erscheinen.
Das ist Dein Zweck, aber mit ziemlicher Sicherheit nicht der von den meisten anderen. Und dann implementiert NI dieses Feature so wie Du es denkst zu wollen weil die andere Art schlicht nicht möglich ist ohne das ganze File komplet neu zu schreiben und dann beklagen sich zig Anwender aufs Äusserste dass das File noch genau so gross bleibt, obwohl man die Daten gelöscht hat, und dass das eine absolut unzumutbare Belastung für ihre Archivierungslösung ist.
Manchmal ist etwas gar nicht zu implementieren nicht nur einfacher sondern verursacht auch weniger Irritationen dann etwas zu implementieren, das ein eher unintuitives Ergebnis hat.
Ich kenne den genauen Einsatzzweck nicht, habe aber einen Vorschlag:
Du könntest die zu archivierenden Daten gleich bei der Erzeugung in ein extra File speichern, dass nur die gewünschten Daten enthält. Also schon vorher bei der Erzeugung selektieren/aussortieren.
Optional speicherst du (temporär) eine Datei mit sämtlichen Daten.
So kann dann ohne großen Aufwand eine der beiden Dateien gelöscht werden, und man hat keine doppelten Daten.
Gruß
26.09.2013, 10:05 (Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2013 10:17 von BissI.)
ich bin neu hier und grüße erst mal das ganze Forum. Ich habe schon viele Lösungen von euch verwendet. Danke schon mal.
Ich habe in diesen Beitrag geschrieben weil ich das ähnliches Problem wie mein Vorredner habe. Ich habe ein NI PXle-1075 System, welches voll belegt mit Spannungen- und Temperaturmodulen ist. Es sollen nun Spannungen auf Knopfdruck und die Temperauren kontinuierlich gespeichert und dargestellt werden. Da bei einer Abtastrate von 10kHZ und manchmal höher eine ziemlich große Menge an Daten zusammen kommen habe ich mich mit der TDMS-Format entschieden. Es gibt für jede Messung andere Einstellungen (z.B. Wandler, Grunddaten), welche von Anfang an eingestellt werden. Diese Einstellungen und alle Messungen würde ich gerne in eine einzige TDMS-Datei unterbringen.
Jetzt kommt es zu einem Problem. Was ist wenn die Einstellungen nachträglich geändert werden müssen und ein Kanal überschrieben werden muss?
Ich hab aus dem Beispielarchiv von Labview mal ein Beispiel abgeändert wodurch ich eine Datei immer wieder überschreiben will. Die Funktion wird dort asynchron geschrieben. Spielt aber erst mal keine Rolle. Das überschreiben ist das wichtige.
Warum kriege ich jetzt immer einer Fehlermeldung das ein Kanalname und/oder Gruppenname falsch ist?
Gruß Alex
Labview 2012
PS: Hab das VI noch mal für User ab Labview 2010 eingestellt.