el 06-12-2007 05:37 PM
06-13-2007 09:33 AM - editado 06-13-2007 09:33 AM
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
el 06-13-2007 09:48 AM
el 06-13-2007 11:48 AM
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
el 06-13-2007 12:11 PM
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
el 06-14-2007 11:08 AM
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
el 06-14-2007 11:09 AM
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
el 06-14-2007 11:14 AM
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
el 06-14-2007 01:38 PM
Hola tavofelix
No hay nada que agradecer Tavo, estamos para servirte y cualquier solo contáctanos.
Coamín Cruz
Ae México
el 08-08-2016 10:45 AM