Relación entre los parámetros de la función de NI-DAQmx "Timing" con el tiempo y la velocidad de adquisición de datos

Actualizado el Apr 24, 2023

Reportado en

Controlador

  • NI-DAQmx

Detalles del problema

Estoy realizando una adquisición de datos básica utilizando el API de NI-DAQmx. ¿Cómo se relacionan los parámetros de la instancia Sample Clock del VI Timing con la velocidad de lectura de mis datos?

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 DAQ

Visión general

La 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 recopiladas

Para 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 muestras

La 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ón

Número de muestras extraídas

La 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 muestras

Al 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.

Resumen

Al 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.