Solución
Existen dos aspectos a considerar en la adquisición de datos: la rapidez con la que se digitaliza la señal del mundo real y cuántos datos son extraídos (de forma simultánea) vía
software desde el
hardware FIFO (siglas en inglés de
First In-First Out). Estas configuraciones de
hardware y
software son codependientes entre sí.
En el lado del
hardware, el VI o función
Timing de la paleta DAQmx, determina la velocidad del flujo de datos desde el dispositivo / sensor al
FIFO del hardware en la placa de adquisición de datos. En el lado del software, la
función
Read de DAQmx determina la transferencia de datos desde el búfer de la PC al
software. Vea la figura a continuación:
Parte 1: Del dispositivo / sensor al hardware FIFO en la placa DAQVisión generalLa función
Timing de DAQmx controla el número y la velocidad a la que se obtienen las muestras de un dispositivo. Esta función opera en tres modos de muestreo diferentes: finito, continuo y punto único cronometrado por hardware (del inglés
finite, continuous, y hardware timed single point respectivamente). El modo que seleccione afectará el número de muestras adquiridas.
La función
Timing de DAQmx es polimórfica; La instancia discutida aquí es el
Sample Clock. Para obtener más información sobre las otras instancias de
DAQmx Timing, consulte la ayuda de DAQmx.
Número de muestras recopiladasPara la adquisición finita, la entrada de Muestras por canal
(del inglés
Samples Per Channel ) de la función
Timing de DAQmx determina cuántas muestras se leen en cada canal. En otras palabras,
Samples Per Channel establece el tamaño del conjunto de datos que se recopilarán.
Para la adquisición continua, las
Muestras por canal determinan el tamaño del búfer de la PC designado para cada canal.
Velocidad de adquisición de las muestrasLa entrada
frecuencia (en inglés
Rate) de la función
Timing de DAQmx determina la rapidez con la que se adquieren las muestras y se colocan en el hardware
FIFO. El valor de
rate depende de la base de tiempo especificada en la entrada
source de la función
Timing de DAQmx. Este valor debe ser el resultado de dividir la entrada
source y un entero. Por ejemplo, la entrada
source predeterminada en las tarjetas de la Serie X es el reloj integrado (100MHz). Para obtener más información sobre las tasas de adquisición alcanzables, consulte los artículos (en inglés)
Temporización y frecuencia de muestreo con NI-DAQmx y
¿Qué frecuencia de muestreo es capaz de alcanzar mi tarjeta DAQ?, o la página 9-1 del
Manual de usuario de la serie X para más información.
Parte 2: Del hardware FIFO al búfer de la PC y al entorno de programaciónNúmero de muestras extraídasLa entrada
Number of Samples Per Channel de la función
Read de DAQmx determina cuántas muestras se extraen del búfer de la PC al entorno de programación. El mecanismo de transferencia de datos seleccionado (DMA, Solicitudes de interrupción, E / S programadas o USB masivo) determina cómo se llevan realmente las muestras desde el
FIFO del
hardware al búfer de la PC. Consulte la
Ayuda de NI-DAQmx: Mecanismos de transferencia de datos (en inglés) para obtener más información. Cuando se utiliza el método de E/S programadas, la función
Read de DAQmx toma muestras directamente del
FIFO del
hardware. Cuando se utilizan todos los demás mecanismos de transferencia, que son cronometrados por hardware, se recomienda que la cantidad de muestras sea 1/10 de la frecuencia especificada en la función
Timing de DAQmx. Por ejemplo, si la entrada correspondiente a la frecuencia en la función de temporización de DAQmx es 1000 Hz, entonces el número de muestras por canal en la función de lectura de DAQmx no debe ser más de 100. Esto es para asegurarse de que no haya errores de sobrescritura o sobrescritura del búfer de la PC .
Nota: La entrada
Number of Samples Per Channel solo está disponible en la función de lectura de DAQmx si la función está configurada para leer múltiples muestras.
Si el
Number of Samples Per Channel es
-1, no está conectado o no está configurado mientras el modo de adquisición es Finito (el modo de adquisición es una entrada para la función
Timing de DAQmx), entonces la función de lectura de DAQmx esperará hasta que todas las muestras en la adquisición finita estén en el búfer de la PC para posteriormente leerlas. Si el modo de adquisición es continuo, se leen todas las muestras disponibles actualmente en el búfer de PC.
Velocidad de lectura de las muestrasAl funcionar como una E / S programada, la velocidad a la que se leen las muestras desde el
FIFO del
hardware en la placa DAQ al entorno de programación depende de la frecuencia con la que se llame a la función de lectura. Dado que la función de lectura de DAQmx suele estar en un bucle
while, la tasa de ejecución del bucle determinará la frecuencia con la que se ejecuta la función de lectura de DAQmx. La velocidad de lectura también dependerá de la velocidad del procesador y de la cantidad de procesos que ocurran a la vez. Cuando se utilizan los otros mecanismos de transferencia de datos, la velocidad a la que se llevan las muestras al búfer de la PC desde el
FIFO del
hardware es independiente de la velocidad de ejecución del programa. Por esta razón, a menudo es deseable utilizar mecanismos de E / S no programados, que imponen el uso del búfer de la PC, para que se puedan conservar múltiples muestras a tiempo para que lea la función de lectura de DAQmx.
ResumenAl determinar qué tan rápido se adquirirán sus datos, tenga en cuenta que ambos pasos en la adquisición deben coincidir. La velocidad a la que se transfieren los datos desde el
hardware FIFO al búfer de la PC no debe ser demasiado rápida o demasiado lenta en comparación con la velocidad a la que se cargan los datos en el
hardware FIFO. Si es demasiado rápido o demasiado lento, se producirá un error de búfer en la PC. Consulte
Entender y evitar los errores de sobrescritura y desbordamiento con NI-DAQmx (en inglés) para obtener más información sobre los errores del búfer.