Discusiones sobre Productos NI

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

Crear buffer de datos para ser leído por un módulo "diadem report" en Labview

Estoy adquieriendo dos señales analógicas mediente un módulo "Daq Assistant". Necesito registrar esas señales y al accionar un pulsador virtual realizar un informe XY de esas señales mediante un módulo "Diadem Report". Necesito almacenar las señales de entrada hasta el momento en que le doy al botón de generar informe. Por esto almaceno las señales temporalmente en un fichero en disco y luego lo recupero para realizar el informe. He adjuntado un esquema simplificado del programa. Hasta aquí todo funciona.

 

El problema es que el tiempo de acceso al disco me ralentiza mucho la ejecución de programa. Necesitaría una solución que sustituyese la escritura y lectura a disco por un buffer de memoria. ¿Alguien sabe como hacer este buffer y como conectarlo a la entrada del "Diadem Report"?

 

Saludos y muchas gracias,

 

Javier.

0 kudos
Mensaje 1 de 3
4.551 Vistas

Javi 

 

Definitivamente lo que tu tienes que usar es una estructura de Productor/consumidor la cual utiliza los Queue. Que son buffer de memoria RAM que tu los creas y utilizas en tus programas, cuan grande es el buffer depende de la RAM de tu pc. 

 

Aquí encontraras un ejemplo de esto y precisamente con Adquisicion de datos con Daqmx: https://forums.ni.com/t5/Archive-TKB/Using-Producer-Consumer-Architecture-for-DAQmx-Read-and-Write-t...

 

Saludos

 

Felipe RC
Field Applications Engineer
National Instruments para Chile, Argentina, Perú, Bolivia, Paraguay y Uruguay




(Si mi respuesta te ayudo dale click a la estrella para el Kudos)
Mensaje 2 de 3
4.537 Vistas

La verdad es que al final opté por otra solución, ya que no conseguí hacerlo funcionar con lo que me sugeriste.

De todas formas me fue muy bien el video y me hizo replantearme la estructura de mi programa, que ahora es más eficiente.

 

El buffer al final lo realicé con arrays que se iban completando dentro de un shift register (while loop). No puedo poner el código ya que lo separé en varios vi.

0 kudos
Mensaje 3 de 3
4.493 Vistas