Comprender y evitar los errores de sobrescritura y desbordamiento de NI-DAQmx

Actualizado el Nov 10, 2023

Reportado en

Software

  • LabVIEW Full

Controlador

  • NI-DAQmx

Detalles del problema

¿Qué son los errores de sobrescritura y desbordamiento, y cómo puedo evitarlos en NI-DAQmx?

Un error de sobrescritura que se ve con frecuencia es el Error -200279: la aplicación no puede mantenerse al día con la adquisición de hardware.

Un error común que se observa con los errores de desbordamiento es el Error -200361: Desbordamiento de memoria del dispositivo integrado.

Solución

Parte I - Errores de sobreescritura en NI-DAQmx:
  • Para evitar un error de sobrescritura, debe aumentar el tamaño del búfer, leer más rápido o escribir más lentamente.
  • En LabVIEW, también puede considerar implementar una arquitectura de patrón de diseño de productor / consumidor. La arquitectura Productor / Consumidor le permite leer más rápido eliminando los pasos de análisis y presentación a un segundo ciclo.
  • También puede considerar usar una computadora más rápida, si esa es una opción. Una computadora más rápida puede permitirle transferir datos entre el búfer de la PC y la memoria del entorno de desarrollo de aplicaciones a una velocidad mayor.
Parte II - errores de desbordamiento en NI-DAQmx:
  • Para evitar un error de desbordamiento, debe utilizar un mecanismo de transferencia de acceso directo a la memoria (DMA), disminuir la velocidad de entrada de datos solicitada o reducir la cantidad de dispositivos que comparten el bus PCI. Considere tomar una o varias de las siguientes acciones:
  • Utilice un mecanismo de transferencia de acceso directo a la memoria (DMA) en lugar de un mecanismo de transferencia de datos de solicitud de interrupción (IRQ). DMA es más rápido que IRQ y puede mejorar el rendimiento significativamente. Para obtener más información sobre el uso de DMA, consulte la Ayuda de NI-DAQmx y el nodo de propiedad del canal DAQmx, propiedad de mecanismo de transferencia de datos (Data Transfer Mechanism). (Nota: los dispositivos DAQCard y USB no son compatibles con DMA).
  • Disminuya las muestras por velocidad de canal con la función de sincronización de DAQmx.
  • Desconecte otros dispositivos que puedan intentar compartir el bus PCI / PCIe.
También puede considerar comprar un dispositivo o módulo NI con un búfer FIFO más grande. El aumento de la memoria integrada reducirá el cuello de botella del bus PCI / PCIe.

Información adicional

Errores de sobreescritura en NI-DAQmx:

El error indica que la información se pierde y ocurre cuando la aplicación no lee los datos del búfer de la PC con la suficiente rapidez. Las muestras que se escriben en el búfer circular de PC se sobrescriben antes de leerlas en la memoria del entorno de desarrollo de aplicaciones (ADE).


Figura 1: Errores de desbordamiento en NI-DAQmx:

Los errores de desbordamiento indican que el búfer de memoria First In First Out (FIFO) a bordo de su tarjeta de adquisición de datos ha alcanzado su capacidad máxima para almacenar muestras adquiridas y ya no puede aceptar nuevas muestras. Un error de desbordamiento es un síntoma de una velocidad de transferencia de bus que no llega a la velocidad de entrada de datos solicitada.


Figura 2: Ruta de datos de la memoria intermedia FIFO