Error -200284: Las Muestras No Se Han Adquirido Al Leer VI en DAQmx

Actualizado el Dec 27, 2019

Reportado en

Hardware

  • Chassis for SCXI

Software

  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW

Conductora

  • NI-DAQmx

Detalles del problema

Cuando ejecuto mi programa LabVIEW usando un DAQmx Read VI, aparece un error que dice:

Error -200284 occurred at DAQmx Read (Polymorphic).vi
Possible reason(s):
Measurements: Some or all of the samples requested have not yet been acquired

 
  • No siempre me sale este error. A veces recibo el error cuando intento aumentar la resolución de mis datos. ¿Qué puedo hacer para aumentar el número de muestras sin encontrar este error?

Solución

Se devolvió el error porque el tiempo de espera se produjo antes de que se recibieran las muestras. Las siguientes son diferentes maneras de ayudarlo a evitar este error:

Ajuste el valor de tiempo de espera:
Hay una entrada de tiempo de espera para el DAQmx Read VI. El tiempo de espera especifica la cantidad de tiempo en segundos para esperar a que las muestras estén disponibles. Si el tiempo pasa, el VI devuelve un error, así como cualquiera de las muestras leídas antes de que se agote el tiempo de espera. Si la entrada no está cableada, se establece en el valor predeterminado de 10 segundos. Si establece el tiempo de espera en -1, el VI espera indefinidamente. Si establece el tiempo de espera en 0, el VI intenta una vez leer las muestras solicitadas y devuelve un error si no puede.

Si su tasa de muestreo es baja y / o sus muestras para leer son altas, esto puede permitir que transcurra el tiempo, devolviendo un error. Para corregir esto, aumente el tiempo de espera para acomodar la frecuencia y las muestras para leer. En general, el valor del tiempo de espera debe ser mayor que el número de muestras para leer dividido por la frecuencia de muestreo.

Lea más tarde en su programa:
A menudo, si su programa está controlando el equipo que está generando la señal a leer, hay un retraso antes de que las muestras estén disponibles para ser leídas. En este caso, la tarea que incluye el DAQmx Read VI debe iniciarse después de que las muestras estén disponibles para su lectura. Esto se puede hacer al cablear correctamente los cables de error para que la lectura se realice después del comando que controla el equipo que genera la señal. Además, se puede utilizar un VI de temporización de espera para permitir que pase el tiempo suficiente para que las muestras estén disponibles.

Aumentar la frecuencia de muestreo:
Si la frecuencia de muestreo es baja, puede ser demasiado lenta para el dispositivo o la tarea. Verifique que el hardware pueda soportar la tasa deseada. Si el tiempo de espera se establece en el valor predeterminado y la frecuencia es más lenta que 0.1Hz mientras se adquiere más de una muestra, se debe aumentar la frecuencia. La frecuencia de muestreo debe ser mayor que las muestras para leer divididas por el tiempo de espera.

Disminuye el número de muestras para leer:
Si la cantidad de muestras para leer es grande, esto puede causar un error para una tarea de entrada de contador. El número de muestras para leer puede ser mayor que el número de muestras que el Read VI puede leer antes de que se agote el tiempo. Si el tiempo de espera se establece en el valor predeterminado (10 segundos) y la frecuencia de la muestra de interés es 1 Hz, el VI de lectura puede leer un máximo de 100 muestras antes de completar una iteración. En este caso, si el número de muestras es mayor que 100, recibirá un error -200284 porque el VI de Lectura esperará leer más muestras de las que existirán.

Verifique que el disparador de inicio esté configurado correctamente:
Hay dos opciones para disparar:
  • Una es donde el disparador se está ejecutando en una línea PFI / RTSI / Trig. Verifique que el activador esté operativo y enviando su señal correctamente a través del hardware. A continuación, verifique que el hardware pueda admitir la línea en la que se envía el activador. Finalmente, verifique que la tarea de software esté buscando ese desencadenante en la línea correcta.
  • La segunda opción es que el disparador proviene de otra tarea en el mismo tablero. Verifique que el hardware pueda soportar esta operación. Una tarea puede proporcionar un disparador y la segunda tarea configura un disparador con la fuente del disparador de la primera tarea. Verifique que el software esté programado correctamente.

Verifique que la sincronización externa esté configurada correctamente:
El tiempo externo se refiere a la tarea. Si el tiempo proviene de una tarea o dispositivo diferente, se considera tiempo externo. Hay dos opciones para la sincronización externa:
  • Una es donde el reloj entra en una línea PFI / RTSI / Trig. Verifique que el reloj esté funcionando y enviando su señal correctamente a través del hardware. Verifique que el hardware pueda soportar la línea en la que se envía el reloj. Luego, verifique que la tarea de software esté buscando ese reloj en la línea correcta.
  • La segunda opción es que el reloj venga de otra tarea en el mismo tablero. Verifique que el hardware pueda soportar esta operación. Una tarea puede tener el reloj configurado y la segunda tarea configura un reloj con la fuente del reloj de la primera tarea, por ejemplo, una tarea de contador que utiliza un reloj de muestra analógico. En este caso, verifique que ambos relojes estén configurados exactamente igual en el software.

Información adicional

Ejemplo

El siguiente es un ejemplo de donde una tarea de contador utiliza un reloj de muestra analógico:

El modo de muestra predeterminado para el DAQmx Timing vi es Finito. El reloj de muestra para la (s) tarea (s) del contador puede configurarse en Continuo, pero si la entrada no está cableada, se establece en el valor predeterminado (Finito). Cuando el reloj de muestra se configura en finito sin las muestras por canal cableadas, se establecerá un tamaño de búfer predeterminado basado en la frecuencia. Una vez que el búfer está lleno, el reloj de muestra se detiene y la tarea del contador detiene el bloqueo de las cuentas porque la fuente del reloj se ha detenido. Las tareas del contador que están configuradas como continuas continuarán esperando más bordes de reloj hasta que transcurra el tiempo de espera. Establecer la fuente de reloj de muestra en Continuo permitirá que el reloj continúe proporcionando bordes de reloj para las tareas de conteo con búfer.

 

DAQ Assistant vs DAQ

Al usar Measurement & Automation Explorer (MAX), puede configurar una tarea para lograr su propósito, y si funciona correctamente, puede configurar la tarea en LabVIEW o verificar que su tarea esté configurada con los mismos parámetros. En LabVIEW puede generar un ejemplo y / o código de configuración de la tarea para ver cómo la computadora configura la tarea.

Usando un DAQ Assistant puede configurar la tarea y cuando funcione correctamente, puede generar un código DAQmx para ver cómo la computadora configura la tarea.