Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Mostrar datos de adquisicion en grafica y almacenar en fichero

¡Resuelto!
Ir a solución

Hola a todos. Estoy haciendo un programa que debe capturar datos de varias entradas analogicas de la tarjeta 6218USB. La adquisicion son voltages que debo mostrar en una grafica en tiempo real y almacenar en un fichero de texto. La captura no tiene una duracion fija, puede ser minutos o horas.

 

Como puedo hacer para que los datos se capturen indefinidamente y se vayan mostrando en la grafica?.

 

El problema es que si pongo una duracion de la adquisicion de por ejemplo 0.1 segundos para que que coja datos y los muestre en una grafica y repita el proceso hasta que se presione un boton de stop en la en la graph solo se muestra ese 01sg, si utilizo un chart para que muestre todos los datos quedan espacios entre medio de cada periodo de captura.

 

El VI  esta hecho con la version 2011 con DAQmx

 

Seguro que es algo sencillo, pero no tengo mucha experiencia y le he dado muchas vueltas y no consigo sacarlo. Muchas gracias de antemano.

Descargar todos
0 kudos
Mensaje 1 de 10
4.067 Vistas

Hola, Álex,

 

la aplicación que comentas es de lo más común en DAQmx. El problema que tienes es que has hecho una adquisición puntual. Para hacer la adquisición de varios canales en continuo, has de incluir un bucle while en el código.

 

El problema que tienes con el tiempo de 0,1 s es que eso es el timeout, es decir, el tiempo para el cual se para la aplicación si no ha recibido dato alguno.

 

Te mando un código hecho con la API de DAQmx para adquirir de los canales 0, 1 y 2. Funciona, está contrastado. Por cierto, es mejor que programes con la API directamente y no crees el código de bajo nivel a partir de un bloque exprés como has hecho hasta ahora.

 

Te mando un tutorial de DAQmx para que amplíes conocimientos:

 

http://zone.ni.com/devzone/cda/tut/p/id/5434

 

También puedes encontrar diversos ejemplos de programación en LabVIEW >> Help >> Find Examples...>> Browse >> Directory Structure >> DAQmx.

 

Un saludo.

 

Jesús. 

0 kudos
Mensaje 2 de 10
4.048 Vistas

Estoy usando la version 2011 y no me deja abrir el archivo, podrias pasarmelo en la version correspondiente para que lo pueda abrir? muchisimas gracias

0 kudos
Mensaje 3 de 10
4.044 Vistas

Disculpa, error mio, uso la version 2010, perdon 😞

0 kudos
Mensaje 4 de 10
4.042 Vistas
Solución
Aceptado por Alex_Cueto

Hola, Álex,

 

estaba en la 2011. Te lo mando en la 2010 por si acaso y una captura del DB por si no puedes abrirlo.

 

Saludos.

 

Jesús.

Mensaje 5 de 10
4.040 Vistas

Muchas gracias, me has servido de gran ayuda. Ahora debo almacenar esos datos en un fichero de texto, para tratarlos con matlab. de forma que tenga los valores de tiempo en una columna y los voltages adquiridos en las siguientes columnas. He hecho una prueba y almacena los datos correctamente, pero los tiempos no.

 

Si en el DQmx Read le doy por ejemplo 100 samples por canal, lee 100 muestras y luego otras 100 y asi... y en cada iteracion los tiempos comienzan de nuevo.

 

0,0000E+0 -5,4795E-2 -2,3887E-2 -5,0520E-2
1,0000E-3 -6,7618E-2 -3,8025E-2 -6,2686E-2
2,0000E-3 -7,7483E-2 -4,8219E-2 -7,2551E-2
3,0000E-3 -8,2086E-2 -5,4466E-2-7,6496E-2
4,0000E-3 -8,1757E-2 -5,5781E-2 -7,5510E-2
........

........

........

0,0000E+0 -2,0927E-2 8,3369E-3 -1,8954E-2
1,0000E-3-3,8025E-2 -8,4324E-3 -3,6053E-2
........

........

 

Si pongo este valor en -1, se supone que va tomando todas las muestras segun esten disponibles, pero obtengo los mismo que antes con la diferencia que en vez de empezar los tiempos cada 100 muestras lo hace de forma aleatoria.

 

No se si es cosa del timeout, lo puesto a -1 tambien para que espere indefinidamente, pero parece que no tiene nada que ver. Adjunto el VI

0 kudos
Mensaje 6 de 10
4.036 Vistas

Hola, Álex,

 

¿podrías abrir otro hilo independiente copiando tu último post? Es para organizar mejor la información del foro y no mezclar churras con meninas. En cuanto lo tengas, te escribo la solución y un pequeño ejemplo con transferencias de datos por colas para volcado a disco, que creo que es la mejor opción.

 

Un saludo!!

 

Jesús.

0 kudos
Mensaje 7 de 10
4.033 Vistas

Por cierto, cuando lo hagas, marca la entrada de la solución de este hilo para que otros usuarios con el mismo problema puedan identificarlo rápidamente.

 

Jesús.

0 kudos
Mensaje 8 de 10
4.032 Vistas

Ok. muchas gracias

0 kudos
Mensaje 9 de 10
4.029 Vistas

Hola que tal tengo que realizar este ejercicio pero realmente no se como realizarlo cualquier aporte se agradecería

 

Realice un Vi, que en el panel frontal se simule el arranque de una torre de 
enfriamiento (ventilador en movimiento/led encendido), y la detención con un 
botón por medio de una DAQ. El arranque del ventilador debe cumplir con una 
rampa de aceleración que este de 15 al 100%, la curva de aceleración debe 
tener un ángulo de 18°, calcule los incrementos de aceleración y muéstrelo en 
una gráfica. La señal de aceleración debe estar de 0 a 5V en una salida.

0 kudos
Mensaje 10 de 10
3.600 Vistas