Información adicional
La velocidad de lectura para su aplicación de NDAQmx está determinada por dos factores: el número de muestras obtenidas por lectura y el número de lecturas por segundo:
Incluso si establece que la velocidad de lectura y la frecuencia de muestreo sean iguales, es posible que su programa no pueda ejecutarse a la velocidad que espera. Esto puede ocurrir cuando suceden muchas cosas dentro del ciclo while, lo que hace que cada iteración tome más tiempo del esperado. Esto hará que la lectura de DAQmx no se realice con la frecuencia esperada y que las muestras se acumulen en el buffer. Puede usar técnicas de evaluación comparativa de ciclos, como las que se muestran a continuación, para verificar que el ciclo while se está ejecutando realmente a la velocidad que espera:
Consideraciones adicionales para la resolución de problemas:Muestreo Finito vs. Muestreo ContinuoEs posible que algunas aplicaciones no requieran un muestreo continuo y solo necesiten un número finito de muestras para que estén disponibles en la lectura. Si este es el caso, puede considerar configurar el modo de muestra del VI de
DAQmx Timing en
Finite Samples en lugar de
Continuous Samples . En esta configuración, cada ciclo esperará algún tiempo antes de que las muestras estén disponibles (es decir, leer 100 muestras a 1 kHz significaría que esperar 0.1 segundos en la lectura). Esto significaría que las muestras se pierden entre las lecturas y que las muestras no estarán disponibles tan pronto como se llame la lectura. Sin embargo, esto debería mitigar el error a menos que esté experimentando el escenario 2 mencionado anteriormente.
Monitoreo de Buffer con Property Nodes en DAQmxDurante una adquisición continua en el buffer, el buffer puede ser monitoreado para obtener más información sobre cómo la configuración actual afecta al buffer. Si el número de elementos disponibles aumenta continuamente durante la adquisición, realice una de las acciones enumeradas anteriormente para evitar el desbordamiento del buffer. Para monitorear la cantidad de datos disponibles en el buffer, use un nodo de propiedad de lectura de DAQmx para leer la propiedad
Status:Available Samples Per Channel
.
Controlando el flujo de datos de LabVIEW para evitar errores de sobrescrituraLabVIEW es un lenguaje de flujo de datos, lo que significa que un VI o estructura puede ejecutarse tan pronto como haya recibido todas sus entradas, independientemente de su posición en el diagrama de bloques. A menudo es útil usar cables de error como entrada para asegurar que un VI o estructura no se ejecutará antes que otro. Si un cable de error conecta el VI A a el VI B, entonces B no tendrá todas sus entradas requeridas hasta después de que A se ejecute y el grupo de errores pase de A a B. Para obtener más información sobre el flujo de datos en LabVIEW, consulte la
Ayuda de LabVIEW: Bloquear Diagrama de flujo de datos (en inglés).
En una adquisición continua de DAQmx, los datos se escriben en el buffer desde el momento en que se ejecuta el VI de DAQmx Start Task hasta que se ejecuta el VI de DAQmx Stop Task o el VI de DAQmx Clear Task. Entre el momento en que se ejecuta el VI de DAQmx Start Task y cuando se ejecuta la primera lectura de DAQmx, el buffer de PC de DAQmx se llena de datos. Si este intervalo es demasiado largo, entonces el buffer puede estar completamente lleno y los datos iniciales se sobrescribirán antes de que el VI de DAQmx Read lo saque del buffer, lo que causa el error -200279.
Los fragmentos de código a continuación muestran un escenario común en el que la ejecución del flujo de datos puede causar un error de desbordamiento del buffer. En el primer fragmento, puede ver que no hay garantía de que el VI de DAQmx Start Task se ejecutará después del VI de Open / Create / Replace file (que generará un cuadro de diálogo emergente), por lo que las mediciones llenarán el buffer mientras selecciona un archivo, lo que significa que existe el peligro de que se sobrescriba el buffer de la PC.
Para evitar este problema, conecte los terminales de entrada y salida de error de cada función para asegurarse de que el VI de DAQmx Start Task se ejecute después de que el VI Open / Create / Replace File haya terminado de ejecutarse, como muestra el segundo fragmento:
Tasas de muestreo con dispositivos de adquisición dinámica de señal (DSA)Los dispositivos DSA de National Instruments usan un convertidor de analógico a digital delta-sigma de 24 bits (ADC) que maximiza la integridad de la señal al dar forma al ruido y reducir la distorsión. Estos ADC especializados utilizan una base de tiempo maestra que se divide por múltiplos enteros discretos para lograr varias tasas de muestreo disponibles; como resultado, todos los dispositivos DSA tienen un número limitado de frecuencias de muestreo disponibles.
Por ejemplo, el NI 9234 tiene un total de 31 posibles frecuencias de muestreo, con un mínimo de muestreo de 1.652 kS / s. El número y el valor de las frecuencias de muestreo disponibles varían según el dispositivo DSA y se deben especificar en el manual de especificaciones de su dispositivo.
Si la frecuencia de muestreo para el dispositivo 9234 se establece por debajo de la frecuencia mínima utilizando un VI de sincronización de DAQmx o un nodo de propiedad, la frecuencia de muestreo real será forzada hasta la frecuencia mínima disponible para el dispositivo en el fondo de la API de DAQmx. En consecuencia, es posible que haya diseñado una aplicación con una velocidad de lectura adecuada para una frecuencia de muestreo mucho menor que la que realmente está ocurriendo, lo que podría llevar al Error -200279.
Si está utilizando un dispositivo DSA para su adquisición, siempre considere las posibles tasas de muestreo y diseñe su aplicación adecuadamente.
Nota: considere la posibilidad de usar un Property Node de sincronización de DAQmx y leer la propiedad
Sample Clock:Rate
para verificar qué frecuencia de muestreo está utilizando realmente el dispositivo, independientemente de la frecuencia establecida en el DAQmx Timing VI.