LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Conversor TDMS a txt

Buenas noches a la comunidad de NI!!

 

Bueno les queria realizar na pregunta y es co relacion a la conversion de archivos en el formato TDMS a txt. Estoy adquiriendo archivos de la tarjeta NI6356, tienen bastante cantidad de datos, sobre 1000 millones de datos a 2000 millones, por medio del programa que desaroolamos aqui en el foro en preguntas anteriores lo modifique para particionar el archivo el cual es de un tamaño aproximado de 1.27GB, para poderlo convertir, estoy empleando el archivo que adjunte al final de la pregunta. Hay posibilidades de lograr convertir un archivo formato TDMS a txt de éste tamaño?, o la unica solucion es como lo estoy trabajando? ..

 

Espero haber sido claro con la pregunta, estaré atento a cualquier sugerencia o ayuda  muchas gracias a todos de antemano

 

Atentamente,

 

Andrés Saavedra

0 Kudos
Message 1 of 5
(3,641 Views)

Hola Andres!!

 

De acuerdo al tamaño del archivo TDMS que estas utilizando, creo que la mejor manera de hacerlo es leyendo los datos del archivo TDMS línea por línea y convertirlos al formato correcto para ser escritos en un archivo ASCII.  Este es el proceso que tienes implementado hasta el momento, sin embargo, veo que no consideras los ''headers'' para los nombres de los canales.  En los siguientes links encontrarás otros dos ejemplo que también implementan la misma lógica, simplemente que toman en cuenta las propiedades del archivo.  Uno de los ejemplos escribe a un archivo de texto y el otro a una hoja de datos. 

 

https://forums.ni.com/t5/Example-Code/Convert-TDMS-file-to-Text-File-in-LabVIEW/ta-p/3494935

 

https://forums.ni.com/t5/Example-Code/Convert-TDMS-Waveform-Data-into-Excel-Readable-LVM-Text-Files/...

 

 

También quería preguntarte, cual es el propósito de convertir el archivo TDMS a ASCII??

 

 

Saludos!!

 

 

Anuar R.
National Instruments México y Latinoamérica
Ingeniería de Aplicaciones
www.ni.com/soporte
Message 2 of 5
(3,622 Views)

Buenos dias Anuar, muchas gracias por contestar! y por tu tiempo.

 

Bueno probé los programas que alli se encuentran es decir, en los links, sin embargo presenta el mismo tipo de limitante, cuando le paso un archivo bastante amplio se desborda y me indica que es demasiado para la memoria. En cuanto a los headers, puedo implementar otro programa que tambien tengo elaborado, sin embargo los desprecio ya que mi interes es tener una columna de tiempo, y los tres canales que estoy midiendo.

 

Mi objetivo de convertirlo a ASCII es debido a que el programa que tengo para capturar datos debe enfocarse solo en ello para no perder muestras, es una tarjeta NI6356, estoy tomando muestras a una frencia de muestreo de 1MHz, con el fin de no saturar la memoria del proceso es por ello que prefiero solo guardar los datos, y posteriormente trabaajarlo por medio de MATLAB, y de ésta forma realizar un post processing de las señales. Claro está que no he mirado como trabajar TDMS directamente con LABVIEW, pero ésto ya seria otro tema.

 

Anuar me gustaria preguntarte, he notado que por lo general los diferentes programas en LABVIEW para convertir datos de TDMS a txt presentan inconvenientes con archios de un tamaño mayor a 100mb, es acaso ésa una limitante? o solo es coincidencia? .. realmente he presentado problemas con ese tipo de conversion.

 

Cualquier sugerencia que me puedas brindar te lo agradezco, muchas gracias nuevamente por tu interes.

 

Saludos!!

0 Kudos
Message 3 of 5
(3,606 Views)

Que tal Andres!!

 

Los archivos TDMS pueden ser abiertos directamente en MS Excel utilizando un Add-in Tool.  En el siguiente link encontrarás información detallada sobre este tipo de formato binario, así como las ventajas que ofrece en cuanto a flexibilidad para ser utilizado desde otros programas.

 

https://www.ni.com/en/support/documentation/supplemental/06/the-ni-tdms-file-format.html

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019VhwSAE&l=en-US

 

 

Si te es posible, puedes abrir el archivo directamente en Excel y guardarlo como XLS.  Sin embargo, si requieres un tab-delimited Text File para trabajarlo desde Matlab, puedes también abrir el archivo TDMS en Excel y guardarlo como un Tab Delimited.  De esta manera, puedes guardar únicamente la pestaña que contiene los datos que te interesan, mas no las propiedades del archivo.

 

Esto te permite eliminar el tiempo de conversión desde LabVIEW para archivos sumamente grandes. 

 

Te dejo también información sobre la limitante de tamaño para el manejo de archivos en LabVIEW:

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000PADVSA4&l=en-US

 

http://digital.ni.com/public.nsf/allkb/AD5124467245F1D986256B06006F336A 

 

Por otro lado, quería preguntarte, qué procesamiento de datos realizas en Matlab??  

 

 

Espero que te sirva!!

 

Saludos,

 

 

Anuar R.
National Instruments México y Latinoamérica
Ingeniería de Aplicaciones
www.ni.com/soporte
Message 4 of 5
(3,590 Views)

Buenos dias Anuar, gracias por contestar y tu interes!!

 

Bueno realmente estuve probando y analizando los links que enviaste acerca del tamaño por archivo, tambien tuve en cuenta la conversion que genera excel la cual no me habia fijado, tengo una duda con respecto a ello, al guardar los datos en el formato TDMS, el los guarda por iteraciones donde te permite ver los datos hasta un maximo de 1048576 por columna, limite el cual se da por excel. Mi pregunta es si en el momneto en que yo lo guarde con otro formato hay forma de que todas las interaciones queden en un mismo archivo txt, por ahora hice la conversion con un archivo que tengo, tiene aproximadamente 100 iteraciones de 1048576, y pues es un poco trabajoso abrir iteracion por iteracion para generar la conversion?

 

Muchas gracias por tu tiempo y ayuda, estaré atento a cualquier sugerencia que me puedas dar!!

 

Saludos!!

0 Kudos
Message 5 of 5
(3,565 Views)