el 12-18-2013 10:05 AM
Buenos dias!
Mi duda va con respecto al programa que adjunto a este mensaje, es un programa que va a ser utilizado para detectar 3 senales por lo cual adquiero datos de 3 canales analogos, todos son de voltaje, necesito estar con una frecuencia de muestreo de 1.25 MHz por canal, es decir, el maximo que me puede proporcionar la NI 6356. El tiempo de adquisicion de datos de ser cotinuo aproximadamente 2 horas o 3 horas dependiendo como se desarrolle el experimento de inestigacion que trabajo.
El programa que ven adjunto es bn sencillo, es un programa que me ha durado guardando datos durante 2 horas 07 minutos, de forma continua sin embargo se detiene indicando que la buffer esta llena. Pense que lo tenia controlado y que siempre dudaria el mismo tiempo guardando datos, pero no, se vuelve aleatorio, otras veces solo dura 10 min adquiriendo datos y me aparece el mismo mensaje de error, es como si la buffer estuviera cargada aun. Me gustaria saber si es posible, como descargar la buffer, considerando que esta tarjeta posee una memoria interna de 64MS pienso que con 3 canales muestreandolo a 1.25MHz/s no la estoy llenando ..
Gracias por su colaboracion y estare pendiente
ATTe: Andres
el 12-19-2013 04:44 PM
Hola Andrés,
Gracias por utilizar los foros de National instruments! La razón por la cual está sucediendo ese error es debido a que no le estas dando tiempo a tu código de consumir todos los datos que existen en el buffer de la tarjeta (Samples per channel y el rate están en 1.25 Mhz). Aún cuando teóricamente estas consumiendo la misma cantidad de datos a la que está adquiriendo la tarjeta hay que tener en consideración la latencia del resto de tu código y la velocidad del bus de datos USB para pasar los datos a software.
Te sugiero bajar la velocidad de adquisición (Rate) para darle oportunidad a tu código de procesar todos los datos y así disminuir el tamaño del buffer de la tarjeta.
Espero que esta información te haya sido de utilidad!
Saludos!
Luis C.
National Instruments de México
Ingeniería de Aplicaciones
el 01-15-2014 10:23 AM
Hola Luis muchas gracias por tu atencion, bueno realmente para mi bajar la frecuencia de muestreo no es una opcion, debido a que deseo capturar eventos que suceden en micro segundos, adicionalmente hice una mejora al programa, ya logro mantenerlo guardando por 2 horas continuas sin embargo, pasada esas dos horas vuelve a indicarme problema de la memoria, lo cual aun no me explico si estoy limpiando la buffer... No se si este haciendo mal la limpieza de la buffer, podrias revizarlo para asegurarme si todo esta bn? . lo adjunto a este mail.
Saludos
el 01-15-2014 12:13 PM
Que tal Andrés!
No veo tu código adjunto. Podrías adjuntarlo para poder revisarlo por favor?
Saludos!
Luis C.
National Instruments
Ingeniería de Aplicaciones
el 01-15-2014 12:33 PM
Hola disculpa, lo adjunto ahora si. Este programa es un ejemplo llamado Cont Acq Producer Consumer to File, partiendo de él, adicione 2 canales mas, y cambie la forma de guardar los datos, debido a que ellos lo guardan en formato file que no entiendo como pasarlo a tdms, de esta forma como lo tengo lo guarda tdms, y lo puedo visualizar rapidamente por medio de DIadem. Si tienes alguna duda me la dices por favor, estare atento a cualquier sugerencia.
Saludos Luis!
el 01-16-2014 01:19 PM
Buen día Andrés,
Te comparto este link que te será útil para solucionar el problema que estas teniendo:
http://digital.ni.com/public.nsf/allkb/AB7D4CA85967804586257380006F0E62
También puedes seguir el enlace al Knowledge Base en donde se menciona como aumentar el tamaño del búfer. Allí encontrarás más información acerca de cómo LabVIEW asigna la memoria para una tarea de entrada analógica y un ejemplo de cómo aumentar el tamaño del búfer.
Espero que esta información te sea de utilidad.
Saludos!
Luis C.
National Instruments
Ingeniería de Aplicaciones
el 01-17-2014 02:54 PM
Hola Luis gracias, bueno estuve mitando el link q me enviaste, adicione el test de la cantidad de datos por canal sin embargo se mantiene en el mismo numero, es decir que si estaria limpiando la buffer. Hice una prueba con el programa q te pase, lo deje en vez de utilizar el asistente para almacenar los datos, utilice el VI para guardarlos en formato File .. me podrias aclarar ese si ese formato es posible visualizarlo?? .. trate de visualizarlo con DIAdem pero no me fue posible, tampoco como archivo txt, ni como archivo .xls .. Me gustaria aclarar esa parte, estoy entendiendo que alli viene el problema, parece que el proceso de utilizar el asistente para guardar es mas demorado que el VI de queue y me genera un problema de tiempos, pareciera ser esa la falla, por lo que pienso que si logro implementar un programa para guardar que demore menos, podria solucionarlo. Te agradezco si me puedes colaborar.
Saludos !
el 01-22-2014 11:28 AM
Que tal Andrés!
No me queda muy claro a que te refieres con formato File, que VI de LabVIEW estas usando para generar el archivo? Si lo que deseas es aumentar la velocidad de escritura en un archivo te sugiero hacer uso de los VIs de bajo nivel, te dejo este link en donde se puede ver la comparación de cada uno de los tipos de archivo que puedes implementar dentro de tu aplicación:
http://www.ni.com/white-paper/9630/en/
Te sugiero que utilices los VIs de bajo nivel dentro de la paleta de File I/O y hagas la comparación entre los diferentes formatos. También revisa el siguiente ejemplo que se encuentra dentro del Find Examples... de LabVIEW.
Espero que esta información te sea de utilidad!