Discusiones sobre Productos NI

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

Como vaciar mi buffer durante una adquisisción de datos?

Hola
 
Alguien podría ayudarme con este problema porfavor?  Estoy adquiriendo datos con una tarjeta PXI-6250, pero estas pruebas almacenadas son mayores al tamaño de mi buffer, entonces quisiera saber la forma de poder ir vaciando el buffer a una velocidad mayor que la velocidad de adquisición de mis datos para no llenar este buffer. Gracias de antemano y espero su respuesta.
 
Saludos
0 kudos
Mensaje 1 de 11
9.597 Vistas

Estimado tavofelix

 

Gracias por utilizar los foros de National Instruments.

 

Tu tarjeta PXI-6250 tiene en sus especificaciones un tamaño de buffer de 4095 muestras, por lo que se recomienda que el número de muestras a leer “number of samples per channel” no sea de igual tamaño que el buffer de la tarjeta, sino que este sea de un cuarto a un medio de su capacidad. Te mandaré unas ligas que te ayudarán a escoger el número adecuado de muestras. Anexo un ejemplo en donde podrás ver cuántas muestras tienes en el buffer y así determines si necesitas reducir la velocidad de muestro o aumentar el tamaño de las muestras por leer.

 

Cualquier cosa estamos a tus órdenes.

 

 

http://digital.ni.com/public.nsf/allkb/75BF35EB4AFB834F862566210065FA61?OpenDocument

http://digital.ni.com/public.nsf/allkb/D4BB69D64483DE928625695E0052EE22

http://digital.ni.com/public.nsf/allkb/E1E67695E76BA75B86256DB1004E9B07

http://digital.ni.com/public.nsf/allkb/BB4E0A58688EB812862562C2004DF9A5

 

 

Coamín Cruz

AeMéxico

Mensaje editado por Coamín

0 kudos
Mensaje 2 de 11
9.585 Vistas
Hola Coamín
 
Gracias por la información, pero el problema es que el número de muestras que quiero adquirir muchas veces es mayor a la capacidad de esa memoria y es por eso que busco alguna forma de ir vaciando esa memoria antes de que quede totalmente llena durtante el proceso de muestreo, pero no sé si eso sea posible. Te agradecería nuevamente tu ayuda.  Muchas gracias
 
Tavo
0 kudos
Mensaje 3 de 11
9.580 Vistas

Hola tavofelix

 

No vas a poder manejar un número de muestras a almacenar mayor al buffer de la tarjeta, en caso de que así lo requieras, deberás utilizar una tarjeta de buffer mayor. No entiendo cuál es tu aplicación tal que no te permite mejor tomar menos muestras de manera continua (como en el VI que te envié) , para ti esto sería transparente. No perderías ninguna muestra, solamente que en vez de presentar los datos en bloques de  X datos te presentará a Y datos donde Y << X.

Si me puedes platicar un poco de tu aplicación probablemente encontremos alguna solución alterna.

Coamín Cruz

AE México

0 kudos
Mensaje 4 de 11
9.573 Vistas

Hola Coamín

Mi aplicación es la siguiente: Voy a adquirir distintas señales de voltaje por al menos 5 canales y hasta los 16 posibles. Estas señales de voltaje las quiero muestrear a 10 veces más su frecuencia para poder tener suficientes datos para reconstruir la señal. El problema esta en que si muestreo los 16 canales a una velocidad "media" la tarjeta no me va a poder guardar los datos y se va a empezar a sobreescribir. Lo que yo quiero hacer es un VI que me permita estar vaciando el bufer por un lado mientras esta se llena con los datos por lado. Muchas gracias de antemano y saludos

Tavo

0 kudos
Mensaje 5 de 11
9.573 Vistas

Estimado tavofelix

 

Gracias por utilizar los foros de National Instruments.

Tú no te debes preocupar por una estrategia de almacenaje y otra de extracción de datos del buffer, de eso ya se encarga DAQmx y LabVIEW. Te voy a explicar cómo funciona, primeramente los datos son adquiridos por la tarjeta DAQ y van al FIFO esperando sean absorbidos por la memoria RAM de tu computadora, la memoria FIFO nos va a servir para computadores los cuales no puedan transferir rápidamente datos entre la tarjeta DAQ y la RAM, sin embargo las computadoras actuales ya no presentan dificultad al transferir los datos (usualmente computadoras < 200MHz) por lo que se podría decir que los datos pasan inmediatamente a la RAM. Una vez  que están en la RAM existe un buffer asignado para almacenar los datos provenientes del FIFO hasta que sean requeridos por el programa de aplicación (para este caso LabVIEW). Si tú digamos que no extraes los datos de la RAM, esta memoria se saturará y pasará el problema que comentas, sin embargo, si tu extraes los datos muy rápido no debes de tener problema de que se sobre escriban lo datos. El lugar donde defines que tan rápido los datos son extraídos del la RAM a LabVIEW es en el ciclo while donde colocas el DAQmx read.VI, procura que el tiempo de ejecución de ese while no sea muy grande porque se almacenarán tus muestras.

Por default, el tamaño del buffer será en función a la velocidad de muestreo, por ejemplo:

Sample Rate

Buffer Size

0 - 100 S/s

1 kS

100 - 10,000 S/s

10 kS

10,000 - 1,000,000 S/s

100 kS

 

> 1,000,000 S/s

1 MS

 

Si manejarás hasta 16 canales, entonces la velocidad máxima de muestre de la tarjeta es 1 MS, por lo que dividido entre 16 tendrás un muestreo máximo de 62.5KS por canal. Así que deberás muestrear máximo a esa velocidad. Si deseas reconstruir una señal a su forma original, considerando muestrear a 10 veces la frecuencia, tu señal original no deberá ser mayor a 6.2 KHz. Esto es independiente completamente del buffer, sino es de la limitante de la tarjeta a adquirir a cierta velocidad.

 Coamín Cruz - AEMéxico

 

Mensaje 6 de 11
9.556 Vistas

Te anexo unas ligas que te recomiendo revisar y cualquier cosa estamos en contacto.

DAQ:

Complete Data Acquisition Tutorial - http://zone.ni.com/devzone/conceptd.nsf/webmain/48B4C2DC01295874862570D7007915DA

Learn How to Install and Use a Data Acquisition Device - http://zone.ni.com/devzone/conceptd.nsf/webmain/1AF0F2C2E0E3311F8625708B0052FC73

Using the DAQ Assistant to Automatically Generate LabVIEW Code - http://zone.ni.com/devzone/conceptd.nsf/webmain/736BA7168F48742286256D2600713527

How is the DAQmx Buffer Size Allocated for a Finite or Continuous Acquisition? - http://digital.ni.com/public.nsf/allkb/E1E67695E76BA75B86256DB1004E9B07

Buffer Overflow Errors During Continuous Data Acquisition - http://digital.ni.com/public.nsf/allkb/BB4E0A58688EB812862562C2004DF9A5

How Can I Avoid Error -10846 (Overwrite Error) in LabVIEW? - http://digital.ni.com/public.nsf/allkb/75BF35EB4AFB834F862566210065FA61?OpenDocument

 

Coamín Cruz

Ae México

0 kudos
Mensaje 7 de 11
9.552 Vistas

Hola Coamín

Muchisimas gracias por la información, al parecer yo no estaba entendiendo como funcionaba lo de la memoria FIFO, pero ahora ya me quedó claro. Ya estuve haciendo pruebas y corroboré lo que me comentabas y es más que suficiente para lo que voy a hacer. Nuevamente mil gracias por tu tiempo y saludos.

Tavo

0 kudos
Mensaje 8 de 11
9.553 Vistas

Hola tavofelix

 

No hay nada que agradecer Tavo, estamos para servirte y cualquier solo contáctanos.

Coamín Cruz

Ae México

 

0 kudos
Mensaje 9 de 11
9.545 Vistas
Hola a todos, soy estudiande de educacion fisica y tenemos un dinamometro para la evaluacion de fuerza que esta conectado a un conversor analogico digital, al intentar hacer la evaluacion funciona dos veces (10 segundos) y luego aparece el error de overflow, que puedo hacer, partiendo del punto que no conozco mucho del software, estoy trabajando con labview signal xpress
0 kudos
Mensaje 10 de 11
5.126 Vistas