Discusiones sobre Productos NI

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

Adquisición usando matrices

¡Resuelto!
Ir a solución

Hola buenas, estoy realizando un programa que lleva a cabo la adquisición de una señal a través de uno de los ADCs de la tarjeta PCI-6110. El programa no es capaz de adquirir señales de más de 20Hz y he pensado que tal vez sea porque requiero demasiado tiempo para mostrar las adquisiciones punto a punto en una gráfica.

 

Mi idea es sacar las gráficas del bucle en el que se adquieren muestras para que almacenando estas en un array, las pueda mostrar todas a la vez en la gráfica al salir del bucle. El caso es que no sé cómo almacenar datos en una matriz. Estoy usando dos bloques: initalize array y replace array subset (usando el índice del bucle como índice para ese último bloque). Lo que ocurre es que en cada iteración se escribe el dato pero toda la matriz es machacada por la que crea el initalize array. De este modo la matriz en la última iteración es la matriz inicial con el último elemento modificado.

 

Supongo que debe haber alguna forma de almacenar la matriz que devuelve el bloque replace array subset para que no pase esto, algo como realimentar el bloque... no sé, a ver si alguien me puede dar una solución.

 

Muchas gracias por sus respuestas.

0 kudos
Mensaje 1 de 7
3.709 Vistas

Hola Pico:

 

Me parece que lo que estás buscando es un shift register. Da click derecho en el tunel por donde pasan los datos de tu arreglo hacia el bucle y después da click en "replace with shift register", esto lo que hace es guardar la información que conectas a la terminal del shift register del lado derecho de tu bucle para poder obtenerla por la terminal del lado izquierdo en la próxima iteración.  Alternativamente dale click derecho en la orilla del bucle y selecciona Add Shift Register para que salga uno nuevo. Te anexo una imagen

 

array.JPG

Espero que te sirva la información, saludos!

 

Juan Gil

NI México

0 kudos
Mensaje 2 de 7
3.703 Vistas

¡Eso era lo que estaba buscando! ¡Muchas gracias!

0 kudos
Mensaje 3 de 7
3.695 Vistas

Ahora que he conseguido adquirir a la velocidad adecuada, me he atascado al trabajar con varios canales 😛

El esquema en cuestión es el de la figura, en el cual me falta conectar la salida del bloque de lectura a las gráficas. El problema está en que la salida del bloque de lectura es una matriz de dos dimensiones en el que se almacenan canal y muestras adquiridas. ¿Cómo manejo esa matriz para llevarla a las gráficas (canal 0 para voltaje, canal 1 para corriente, etc)?

Gracias de antemano 🙂

 

Dibujo.JPG

0 kudos
Mensaje 4 de 7
3.689 Vistas

Hola Pico:

 

Prueba con el bloque Split Signals, está dentro de la paleta Express -> Signal Manipulation.

 

Saludos,

 

Juan Gil

NI México

 

0 kudos
Mensaje 5 de 7
3.676 Vistas

Hola,

 

Probé anteriormente ese bloque pero labview transforma mi matriz de saida en una waveform a través de un bloque que genera automáticamente "convert to dynamic". He hecho unas capturas para que se vea la diferencia en el resultado. La primera es el resultado de muestrear un seno con un solo canal (salida del bloque read = matriz 1D que conecto a una gráfica):

 

seno.JPG

 

Ahora el resultado al leer con 4 canales a la vez (salida del bloque read = matriz 2D):

 

porcionseno.JPG

 

Si durante la ejecución veo los datos que van a las gráficas con Probe, tengo para el primer caso:

 

probe1.JPG

 Que se corresponde con una matriz 1D.

Para el segundo caso obtengo:

probe2.JPG

 Que es una waveform y con ella no me muestra todos los datos que quiero (es como si mostrase 5 y no veo donde cambiarlo para que me muestre todos en cada iteración como pasa con la matriz 1D).

 

¿Alguna idea de como solucionar esto? Muchas gracias.

0 kudos
Mensaje 6 de 7
3.671 Vistas
Solución
Aceptado por el autor del tema Picoteando

Ya he encontrado la solución 🙂

 

Lo que necesitaba eran 4 bloques index array, quedándome con cada fila de la matriz de 2D para llevarlas por separado a las distintas gráficas. Gracias por la ayuda!

0 kudos
Mensaje 7 de 7
3.669 Vistas