Este error es el resultado de un conflicto de recursos cuando dos tareas de NI-DAQmx intentan realizar el mismo tipo de operación. Con tarjetas de adquisición de datos multiplexados (Serie E y Serie M), únicamente una tarea de entrada analógica y una salida analógica pueden ejecutarse al mismo tiempo. En este caso porque todas los canales de entradas analógicas requieren utilizar el mismo multiplexor de canal y el mismo reloj de muestreo. Por lo tanto, para realizar adquisiciones de múltiples canales, todos los canales deben de estar en la misma tarea. Dado que el error que se describe arriba puede ser observado en una variedad de situaciones, describimos a continuación posibles casos.
Caso 1: Utilizando múltiples VIs Express de DAQ Assistant para diferentes instancias de entradas analógicas.
Una causa potencial es el resultado de utilizar múltiples VI Express de DAQ Assistant en el cual se utilice la misma tarjeta de adquisición. Dado que cada VI Express crea una tarea por separado, es posible tener múltiples tareas de NI-DAQmx tratando de accesar el mismo dispositivo físico. Por lo tanto, es necesario liberar cada tarea después de que los datos han sido entregados. Cuando se realiza una adquisición de un solo punto o finita, no se requiere cablear una constante “Verdadera” a la entrada de “Stop” del VI Express. Este es el valor por definición de la entrada “Stop”. Esta configuración detiene la tarea y libera los recursos del dispositivo cuando el VI Express termina su ejecución. Para una adquisición y generación de un solo punto, cablear una constante de “Falso” optimiza la eficiencia, pero no libera los recursos del dispositivo. Sin embargo, es posible que usted vea este problema si está utilizando un DAQ Assistant con un solo punto o una adquisición finita en un ciclo con la entrada “Stop” con una constante en “Falso”. Para adquisición continua el valor por definición es “Falso”. Para evitar este error con adquisición finita o de un solo punto conservando el ciclo, asegúrese de enviar una constante en “Verdadero” en la entrada de “Stop” en la última iteración del ciclo.
Es crítico de configurar correctamente el orden de ejecución de los dos VI Express si ocurren dentro del mismo ciclo. Esto es para prevenir que las dos tareas de NI-DAQmx se ejecuten de forma concurrente y generen un error. Usted puede establecer el orden de ejecución cableando la terminal “Error Out” de uno de los DAQ Assistant a la terminal “Error In” del segundo DAQ Assistant. Sin embargo, cuando se generen múltiples instancias del mismo tipo de medición dentro del mismo ciclo while, no es necesario utilizar múltiples DAQ Assistants. En vez de realizar esto, se puede utilizar un solo DAQ Assistant configurado para múltiples canales.
Caso 2: Utilizando múltiples subVIs que se ejecutan sin error independientemente, pero generan un error cuando se les llama de un VI de alto nivel.
Este error suele ocurrir cuando se tienen múltiples llamadas a NI-DAQmx en un VI que llama la misma tarea de nuevo sin haber liberado anteriormente la tarea. Si en algún momento usted intenta abrir una tarea que está siendo utilizada, puede recibir el error de recurso reservado (“resource is reserved”).
Para prevenir este error, libere la tarea antes de abrirla de nuevo dentro de otro subVI, o simplemente pase el cable de la tarea de NI-DAQmx de un subVI a otro.
Caso 3: Ejecutar concurrentemente dos tareas de entradas o salidas analógicas.
Una causa final de este error es cuando un programa explícitamente llama múltiples taras que realizan el mismo tipo de operación al mismo tiempo. Como en los dos casos anteriores, esto produce una situación donde múltiples tareas independientes concurrentemente intentan accesar el mismo recurso. A pesar de que las tareas puedan estar accesando diferentes canales, sigue siendo un conflicto ya que requiere utilizar el mismo multiplexor y el mismo reloj de muestreo. Para resolver este problema, combine todas las operaciones del mismo tipo en una sola tarea. Para NI-DAQmx 7.3 y posteriores, es posible realizar esto con múltiples tipos de entrada analógica.