INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

TDMS-Datei mit XML header konvertieren



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!

22.03.2020, 01:11
Beitrag #1

Jarrao Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2014

2013
2014
DE



TDMS-Datei mit XML header konvertieren
Hallo Zusammen,

leider habe ich ein kleines Problem mit TDMS-Dateien. Das Problem kann ich leider nicht näher beschreiben, da ich nur indirekt damit zu tun habe.
Aber vielleicht kann mir Jemand dabei helfen das Problem zu lösen, was mir sehr helfen würden.

Ich habe mir ein ziemlich aufwendiges Python Script geschrieben, um eine vielzahl von TDMS-Dateien auszulesen, zu sortieren, bearbeiten, plotten und umzuwandeln.
Das hat mir extrem viel Arbeit abgenommen.
Leider ist es so, dass es im LabView Programm, weches die TDMS-Daten erzeugt, vor einigen Monaten ein Update gab. Seither funktioniert das einlesen der TDMS-Daten nicht mehr. Zwar habe ich nun einen Workaround mit VBA, der aber nicht annähernd an Python heran kommt und auch nur CSV-Dateien verarbeiten kann, womit diese zuerst alle manuell per Excel-Addin geöffnet und abgespeichert werden müssen.

Versuche ich die TMDS-Dateien zu exportieren, gibt es die Meldung, dass extended float nicht mehr unterstützt werden. Der Programmierer des Python Paketes hat auch darauf hingewiesen:

Limitations
This module doesn’t support TDMS files with XML headers or with extended floating point data.
TDMS files support timestamps with a resolution of 2^-64 seconds but these are read as numpy datetime64 values with microsecond resolution.


Ich habe nachgefragt, um herauszufieden warum die TDMS-Dateien auf einmal nicht mehr kompatiebel sind, jedoch haben mir die LV Expterten gesagt, dass es keinen Unterschied gäbe.
Als Test habe ich mir eine TDMS-Datei genommen, welche vor dem Update erzeugt wurde und eine neue. Von den Informationen die dort enthalten sind und von den Datentypen scheint es keinen Unterschied zu geben.
Lade ich die alten Dateien ins Skript, funktioniert alles ohne Probleme, lade ich die neuen rein, bekomme ich die oben genannte Fehlermeldung.

Falls mir Jemand sagen kann, was zu dieser Änderung geführt haben könnte und was ich den LV Menschen sagen kann, damit sie die Dateien wieder so abspeichern können, dass diese geladen werden können, wäre ich euch wirklich sehr dankbar !
Meine Vermutung ist, dass es evt. eine eine neue Version von LV aufgespielt wurde und nun die Datentypen unterschiedlich sind, so dass man nichts daran ändern kann, aber ggf. gibt es ja eine Möglichkeit die ganzen Dateien Batchmäßig in andere TDMS zu konvertieren ? Oder auch mit einer neureren LV Version im alten Format zu speichern ?
Am schönsten wäre es, wenn die Dateien sofort als CSV, txt gespeichert würden, wobei ich nicht weiß ob das bei LV standardmäßig möglich ist?

Vielen Dank schon einmal im Voraus !
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.03.2020, 17:43
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 16.301
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 19)
1995
DE_EN

10×××
Deutschland
RE: TDMS-Datei mit XML header konvertieren
Hallo Jarrao,

Zitat:Leider ist es so, dass es im LabView Programm, weches die TDMS-Daten erzeugt, vor einigen Monaten ein Update gab. Seither funktioniert das einlesen der TDMS-Daten nicht mehr.
… This module doesn’t support TDMS files with XML headers or with extended floating point data. … Falls mir Jemand sagen kann, was zu dieser Änderung geführt haben könnte und was ich den LV Menschen sagen kann, damit sie die Dateien wieder so abspeichern können, dass diese geladen werden können, wäre ich euch wirklich sehr dankbar !
Die Änderung scheint ja im LabVIEW-Programm vorgenommen worden zu sein, und anscheinend weißt du auch, wann das Update kam.
Du weißt auch, was von deiner Python-Routine nicht unterstützt wird, kannst als auch speziell danach fragen.

Sag also dem Programmierer, dass er mal in seinem SCC-System schauen soll, was sich mit diesem Update bezüglich "XML headers" und "extended floating point" alles geändert hat…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2020, 09:44
Beitrag #3

Jarrao Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2014

2013
2014
DE



RE: TDMS-Datei mit XML header konvertieren
(22.03.2020 17:43 )GerdW schrieb:  Hallo Jarrao,

Zitat:Leider ist es so, dass es im LabView Programm, weches die TDMS-Daten erzeugt, vor einigen Monaten ein Update gab. Seither funktioniert das einlesen der TDMS-Daten nicht mehr.
… This module doesn’t support TDMS files with XML headers or with extended floating point data. … Falls mir Jemand sagen kann, was zu dieser Änderung geführt haben könnte und was ich den LV Menschen sagen kann, damit sie die Dateien wieder so abspeichern können, dass diese geladen werden können, wäre ich euch wirklich sehr dankbar !
Die Änderung scheint ja im LabVIEW-Programm vorgenommen worden zu sein, und anscheinend weißt du auch, wann das Update kam.
Du weißt auch, was von deiner Python-Routine nicht unterstützt wird, kannst als auch speziell danach fragen.

Sag also dem Programmierer, dass er mal in seinem SCC-System schauen soll, was sich mit diesem Update bezüglich "XML headers" und "extended floating point" alles geändert hat…

Danke schon einmal für die Antwort. Was ist genau mit SCC-System gemeint, leider kenne ich mich mit LV gar nicht aus.
Ich habe Ihm zwei Dateien geschickt und er meinte, die Dateien sehen gleich und es gäbe seiner Meinung nach keinen Unterschied bzw. es hätte sich daran nichts geändert. Ich muss im quasi konkret sagen, was er sich genau angucken soll.
In der TDMS hatte ich einmal einen Dateitypen gefunden, ich weiß leider nicht mehr ob es float oder double war.
Das Problem war nur, dass die Daten bei den alten TDMS-Dateien gleich zu den neuen war, sonst hätte ich sagen können "Die alte datei ist Float, die neue double, woher kommt der Unterschied?", aber so kann ich außer an der Fehlermeldung keinen unterschied an den Dateien erkennen.

Ich werden aber noch einmal genauer nachfragen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2020, 11:38
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 16.301
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 19)
1995
DE_EN

10×××
Deutschland
RE: TDMS-Datei mit XML header konvertieren
Hallo Jarrao,

Zitat:Was ist genau mit SCC-System gemeint, leider kenne ich mich mit LV gar nicht aus.
SCC = Source Code Control, also etwas wie SVN oder GIT. (Hat nichts mit LabVIEW im Speziellen zu tun.)

Zitat:Ich habe Ihm zwei Dateien geschickt und er meinte, die Dateien sehen gleich und es gäbe seiner Meinung nach keinen Unterschied bzw. es hätte sich daran nichts geändert. Ich muss im quasi konkret sagen, was er sich genau angucken soll. Das Problem war nur, dass die Daten bei den alten TDMS-Dateien gleich zu den neuen war, sonst hätte ich sagen können "Die alte datei ist Float, die neue double, woher kommt der Unterschied?", aber so kann ich außer an der Fehlermeldung keinen unterschied an den Dateien erkennen.

Also gibt es überhaupt keinen Unterschied zwischen "alten" und "neuen" TDMS-Dateien?
Wieso denkst du dann, dass das Problem beim LabVIEW-Programm liegt?

Zitat:In der TDMS hatte ich einmal einen Dateitypen gefunden, ich weiß leider nicht mehr ob es float oder double war.
Mangels Beispieldaten können wir dir hier nicht weiterhelfen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2020, 12:25
Beitrag #5

Jarrao Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2014

2013
2014
DE



RE: TDMS-Datei mit XML header konvertieren
Leider darf ich die Dateien nicht teilen, sonst hätte ich im ersten Post direkt beide angehangen.
Mir ist bewusst, dass solche schwammigen Beschreibungen schwierig sind.
Aber es hätte natürlich sein können, dass Jemand sowas sagt wie "Ja, beim Wechsel von LV xy auf LV yxz wurde der dateityp standardmäßig geändert, man kann dies jedoch mit Parameter xy leicht auf den alten Stand speichern"

Ich geh nur davon aus das es an LV liegt, weil tausende Dateien vor dem Update in das Python Programm geladen werden können und alle Dateien die nach dem Update aus der selben Quelle erzeugt wurden nicht.

Und das ist eben die Kernfrage, was könnte bei LV anders sein. Vielleicht werden die TDMS-Dateien ab einer bestimmten Version in einer anderen Weise abgespeichert? Ich als Leihe kann leider keinen Unterschied erkennen.
Mit Excel lassen sich beide Problemlos öffnen, nur eben nicht mit dem npTDMS-Paket von Python.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2020, 13:25
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.495
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: TDMS-Datei mit XML header konvertieren

Akzeptierte Lösung

Hallo,

es gab vor langer Zeit eine große Änderung - mit LabVIEW 2009 wurde TDMS 2.0 eingeführt:
http://www.ni.com/product-documentation/9995/en/

Leider erzählst du bisher nichts über die Art der Änderungen an deinem LabVIEW Programm, also keine Ahnung, ob das auf dich zutrifft.

Bei TDMS 2.0 gibt es offenbar sowohl Double als auch Extended als "Binary Data Format":
https://www.ni.com/de-de/support/documen...cture.html

Wenn also jetzt auf einmal extended data geschrieben werden, dann würde ich an deiner Stelle einen Blick in den LabVIEW Code werfen und überprüfen, ob da jetzt auf einmal "extended" geschrieben wird.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.03.2020, 15:12
Beitrag #7

Jarrao Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2014

2013
2014
DE



RE: TDMS-Datei mit XML header konvertieren
(23.03.2020 13:25 )jg schrieb:  Hallo,

es gab vor langer Zeit eine große Änderung - mit LabVIEW 2009 wurde TDMS 2.0 eingeführt:
http://www.ni.com/product-documentation/9995/en/

Leider erzählst du bisher nichts über die Art der Änderungen an deinem LabVIEW Programm, also keine Ahnung, ob das auf dich zutrifft.

Bei TDMS 2.0 gibt es offenbar sowohl Double als auch Extended als "Binary Data Format":
https://www.ni.com/de-de/support/documen...cture.html

Wenn also jetzt auf einmal extended data geschrieben werden, dann würde ich an deiner Stelle einen Blick in den LabVIEW Code werfen und überprüfen, ob da jetzt auf einmal "extended" geschrieben wird.

Gruß, Jens

Hallo Jens,
das wird es auf jedenfall sein. Tut mir leid, ich habe leider auch keine Information über die genaue Art der Änderung. Also ich weiß nicht ob ein neues Update wie LV 2009 zu 2015 aufgespielt wurde, oder im Code etwas angepasst wurde.

ich bin mir aber auf jedenfall sicher, dass dies das Problem ist. Wenn sowohl Double als auch Extended möglich ist, bin ich guter Dinge, dass es sich ohne großen Aufwand anpassen lässt.

Danke dir!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  String in Array speichern für flexible Gruppenbenennung in TDMS Datei hansi_1 3 735 10.12.2019 09:45
Letzter Beitrag: Freddy
  TDMS Datei Öffnen modes 8 1.051 26.11.2019 10:08
Letzter Beitrag: th13
  TDMS-Datei lesen und ausgeben Sakis 6 1.582 26.09.2018 15:32
Letzter Beitrag: Sakis
  nur einen Teil einer TDMS Datei lesen gottfried 1 2.069 06.02.2017 17:47
Letzter Beitrag: gottfried
  TDMS Header sunshine1234 2 1.626 18.11.2014 15:22
Letzter Beitrag: sunshine1234
  "Unbenannt"-Spalten in TDMS-Datei zig 13 5.641 03.10.2014 10:25
Letzter Beitrag: zig

Who read this thread?
1 User(s) read this thread:
gottfried

Gehe zu: