Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Problema con DAQ NI USB 6356

Solved!
Go to solution

Buenas Tardes a todos en el foro NI!!

 

Bueno mi pregunta viene enlazada con un problema que me presenta al adquirir datos con la tarjeta de adquisicion NI 6356, quiero adquirir datos a una frecuencia de muestreo de 1MHz, hasta el momento lo he logrado pero el evento en el cual lo estoy utilizando requiere que capture informacion por periodos de 5 minutos, el programa que adjuntare a continuacion lo hace, pero cada 1 millon de muestras que adquiere, presenta un tiempo donde no hace nada de 5 a 7 segundos ( no es un tiempo periodico ), y vuelve a adquirir 1 millon de datos. Las pruebas que realicé fueron en intervarlos de un minuto, donde si estoy capturando 1 millon de muestras por segundo quiere decir que al transcurrir 1 minuto deberia tener 60 millones de muestras guardadas pero no es asi por el inconveniente que indique anteriormente ( ese inconveniente creo que es con el tamaño del buffer y debe ser el tiempo en que se demora en descargar los datos y guardarlos ).

 

Mi pregunta es si es posible por medio de configuracion solucionar éste problema?, teniendo en cuenta que necesito tener todas las muestras, no quiero bajarle a las muestras por canal.

 

muchas gracias por la atencion prestada, estaré atento a cualquier respuesta!!

 

 

 

Atentamente,

 

Andrés Saavedra

 

 

 

Good afternoon!!

 

Ok I have a problem with the Acquisition card NI 6356, in this moment I can capture 1 million samples/second but after the acquisition card take a break between 5-7seconds (I guess is for download the iformation). I want have in 1 minute, 60 data milions. My question: Is possible for acquisition card configuraition capture 60 data milions in 1 minute??

 

Thanks for the atention!!

 

regards!!

 

Andrés Saavedra

0 Kudos
Message 1 of 12
(6,469 Views)

Los archivos adjunto que indique!

Download All
0 Kudos
Message 2 of 12
(6,468 Views)

Que tal andres.

 

Por lo que comentas, deseas adquirir 1 millón de muestras por segundo. Esto lo estas especificando en la terminal Sample Rate de la función "DAQmx Timing". Ahora, la cuestión esta en la función "DAQmx Read". En esa función, al cablearle una constante de 1 millon a la terminal "Number of samples per channel" estas forzando a que el código se quede esperando en esta función de lectura hasta que cada uno de sus canales tenga 1 millon de muestras. Esto puede tardar dependiendo de cuantos canales tengas. Si tienes 8 canales, esa función se va a quedar esperando hasta que cada canal tenga 1 millón de muestras por lo que entonces la función se quedaría pausada hasta obtener 8 millones de muestras lo que puede ser que te este ocasionando el tiempo que ves entre cada millón d emuestras. Yo te recomendaría que eliminaras la constante de 1 millón, para que tu función de lectura no este esperando a recibir tal número de muestras, si no que más bien lea las muestras que esten actualmente disponible en el buffer.

 

Espero sea de tu ayuda.

 

Saludos

Francisco S.
National Instruments
Account Manager
www.ni.com/soporte
0 Kudos
Message 3 of 12
(6,452 Views)

Hola Francisco!!

 

Muchas gracias por responder, bueno realmente le quite la constante pero no me toma los datos, de hecho tambien coloque la constante "-1" la cual tengo entendido que funciona de igual manera pero tampoco me guarda datos, sin embargo me diste una idea, y es lo que estaba probando hasta el momento, al colocarle un numero amplio independiente de DAQmx timing, puedo capturar mas datos consecutivos sin esos espacios, pero como tu dices solo me deja hasta que se satua la memoria interna. Tendria dos preguntas por hacerte:

 

1. Para lo primero que me indicaste, de quitarle la constante a lo cual me sucede q no puedo guardar, es problema de mi algoritmo?

 

2. Hay forma de poder tomar 1 millon de muestras por segundo, por un tiempo por lo menos de 1 minuto? teniendo en cuenta q la tarjeta de adquisicion de datos es NI 6356.

 

Francisco muchas gracias de verdad por tu tiempo e interes.

 

Si me puedes colbaborar con esas preguntas te lo agradeceria mucho.

0 Kudos
Message 4 of 12
(6,449 Views)

Hola Andrés,

 

Por lo que entiendo, tu deseas estar muestreando los datos y mostrándolos inmediatamente en tu gráfica. Para esto, le realicé algunos cambios a tu VI. Primero que nada, elimine la constante en la cual especificábamos que teníamos que esperar 1 millón de muestras. Por otro lado, en la función de lectura, especifique que vamos a estar obteniendo 1 muestra para cada canal por cada iteración del ciclo while. Por último, cambie el tipo de grafica de Graph a Chart para mostrar el valor que se encuentra actualmente por cada iteración del ciclo while.

 

Espero que sea de tu ayuda o si no es lo que buscabas, no dudes en comentarlo.

 

Saludos

 


Francisco S.
National Instruments
Account Manager
www.ni.com/soporte
0 Kudos
Message 5 of 12
(6,445 Views)

Hola Francisco nuevamente gracias por tu interes!

 

Bueno revise los cambios que efectuaste al programa, sin embargo el baja la cantidad de muestras, lo que deseo es poder capturar 1 millon de muestras por segundo, durante 1 minuto, es decir q deberia tener 60 millones de muestras por minuto, es por ello que me veo forzado a especificar en DAQmx timing la cantidad de muestras por canal, por ahora segui realizando pruebas y antes de que la memoria se sature me alcanza a coger de a 8 millones de muestras en 32 segundos luego se satura y me indica que la memoria está llena. esto lo estoy realizando con lo que me indicaste de la importancia acerca del DAQmx read.

 

Sabes si es posible lograr guardar esa cantidad de muestras? realmente eso es lo q dese con el algoritmo y pues con la NI6356. Estare atento a cualquier comentario que me puedas indicar, muchas gracias por tu tiempo e interés.

0 Kudos
Message 6 of 12
(6,442 Views)

Que tal Andres.

 

Encontré en la comunidad, un ejemplo sobre lo que estas buscando realizar pero con archivos TDMS. Este tipo de archivo es mas recomendable que los LVM porque pueden ser accesados por otros software aparte de LabVIEW (DIAdem, excel y otros). El ejemplo original lo puedes adquirir desde esta liga.

 

Sin embargo, yo le realize algunas modificaciones para tu aplicación. Yo por mi parte no cuento con la tarjeta fisicamente, sin embargo hice la prueba con una simulación del dispositivo y ya comprobe que si se almacenan los 5 millones de datos en 5 segundos.

 

Cualquier comentario, no dudes en externarlo

 

Francisco Sáenz

Francisco S.
National Instruments
Account Manager
www.ni.com/soporte
0 Kudos
Message 7 of 12
(6,432 Views)

Otro punto que se me olvido comentarte. El ejemplo cuenta con una opción en donde puedes dividir el archivo generado en varios bloques. Esto es ampliamente recomendado para disminuir tamaño de archivos y que sea más eficiente el almacenamiento y lectura de datos.

 

Saludos

Francisco S.
National Instruments
Account Manager
www.ni.com/soporte
0 Kudos
Message 8 of 12
(6,430 Views)
Solution
Accepted by topic author andressaavedra

Hola Francisco muchas gracias por tu ayuda, excelente, lo probe, alcanza a almacenar hasta 10 segundos, genera 10 millones de muestras, me sirve para lo que estoy realizando hasta el momento de verdad fuiste de gran ayuda, solo quisiera hacerte una pregunta adicional, un poco ajeno al tema en si, los archivos TDMS se pueden exportar a otro formato de alguna forma general ya sea por medio de mathworks u otra aplicacion? por el momento lo hago manualmente.

 

Muchas gracias Francisco por toda tu ayuda y tiempo!!

 

Saludos!!

Message 9 of 12
(6,426 Views)

Que tal Andres,

 

Se me paso un detalle en ese ejemplo. En la función de DAQmx Read, hay una terminal que dice "timout". Si esta terminal no le ponemos un valor, el default es de 10s. Por esta razón solamente puedes leer por 10 segundos. Si deseas leer por un periodo más largo o que el timout sea indefinido, te recomiendo asigarle alguna constante. Si le creas una constante de -1 a la terminal de timeout, va a esperar indefinidamente hasta que sea hayan leido todos los datos disponibles. Yo cambie el valor a de esta terminal a -1, especifique leer 60millones de datos y logré hacerlo exitosamente.

 

Con respecto a la conversión de los archivos TDMS, ¿a que formato desearias convertir? Aqui te dejo un ejemplo pen el cual convierten TDMS a archivos de texto.

 

Convert very large TDMS to ASCII (txt)

 

Te recomiendo, que si tienes más consultas pero distintas al tema inicial, crees un nuevo foro. Esto debido a que, una vez que el foro es marcado como resuelto, es menos probable que te respondan en menor tiempo.

 

Saludos!

 

Francisco Saenz

Francisco S.
National Instruments
Account Manager
www.ni.com/soporte
Message 10 of 12
(6,423 Views)