Especificar la cantidad de muestras cuando se adquiere continuamente con NI-DAQmx para LabVIEW

Actualizado el Dec 31, 2019

Reportado en

Software

  • LabVIEW Full

Driver

  • NI-DAQmx

Detalles del problema

¿Por qué y cómo tengo que especificar la cantidad de muestras para leer al adquirir datos continuamente usando NI-DAQmx con soporte para LabVIEW?

Solución

El tamaño de la matriz/ forma de onda, así como el tamaño del buffer de PC DAQmx, están determinados implícitamente por la configuración del DAQmx task, como se describe a continuación.

Al realizar una adquisición con DAQmx, los datos se transfieren primero desde el dispositivo DAQ a la memoria (RAM) de su computadora. Hay un buffer preasignado en la memoria RAM de su computadora, llamado DAQmx PC Buffer, que se reserva como lugar de espera para los datos no leídos.

Luego, los datos se pueden leer del DAQmx PC Buffer y en una matriz o forma de onda dentro de su aplicación DAQmx ejecutando la función de lectura de DAQmx.


Cuando configura el DAQmx Timing VI para su tarea en LabVIEW, el valor de Samples per Channel tiene un efecto diferente dependiendo de si el Sample Mode está configurado en Continuous Samples o Finite Samples.

  • Para Finite Samples , el valor de Samples per Channel determina la cantidad de muestras que se deben adquirir antes de que se complete la tarea.
  • Para Continuous Sample , el valor de Samples per Channel se utiliza para determinar el tamaño del DAQmx PC Buffer si el tamaño del buffer predeterminado no es suficiente. Sin embargo, en la mayoría de los casos, se utiliza el tamaño de buffer predeterminado y se ignora este valor. Consulte Asignación de tamaño de búfer de DAQmx para adquisiciones finitas o continuas para obtener más información sobre cómo se determina el tamaño del buffer para adquisiciones continuas.

De igual modo, DAQmx Read tiene una entrada llamada Number of Samples per Channel . El valor de Number of Samples per Channel determina el tamaño, en muestras, de cada matriz o forma de onda de datos que se leen desde el buffer a su aplicación cuando se ejecuta DAQmx Read.

Debe tenerse en cuenta que DAQmx Read esperará hasta que todas las muestras solicitadas se hayan adquirido y almacenado en el DAQmx PC Buffer antes de proporcionar los datos a la aplicación.

Por lo tanto, si la frecuencia de muestreo no es lo suficientemente rápida para crear una matriz u forma de onda de este tamaño en el tiempo asignado por el tiempo de espera, el VI lanzará un error de tiempo de espera. Para evitar esto, aumente el parámetro de tiempo de espera (el valor predeterminado es de 10 segundos) o reduzca Number of Samples per Channel.

Información adicional

Nota: La velocidad de transferencia entre el dispositivo DAQ y el DAQmx PC Buffer en la RAM de la computadora host depende del bus que se utiliza para comunicarse con el dispositivo DAQ (PCI, USB, PXI, etc.).

En el panel interactivo del Asistente de DAQ, así como en SignalExpress y NI MAX, este parámetro cambia de nombre a Samples to Read, como se muestra a continuación:

El valor predeterminado para Number of Samples per Channel es -1, lo que hace que DAQmx Read lea todos los datos que están disponibles en el buffer inmediatamente. Si no hay datos disponibles en el buffer cuando el Number of Samples per Channel  se establece en -1, DAQmx Read devolverá una matriz vacía en lugar de esperar a que se adquieran las muestras.