Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Pobrelmas con múltiples contadores NI cDAQ MX

Hola,

 

Tenemos un chasis cDAQ-9174 con un módulo digital NI-9401. Queremos obtener medidas de frecuencia de 4 señales diferentes con los 4 contadores del NI9401.

Como es una tarea sencilla los estamos haciendo con programación en C# mediante el driver del dispositivo utilizando un FrequencyChannel : "task.CIChannels.CreateFrequencyChannel( ... "

El problema que tenemos es que no podemos realizar las medidas simultáneas de los cuatro contadores. Hemos probado los ejemplos de contadores simples sin problemas pero no hemos podido añadir una tarea con múltiples contadores porque aparece el error: "There cannot be multiple counters in the same task for input operations"

Por esta razón probamos a realizarlo con 4 tareas sobre el mismo dispositivo pero entonces la excepción que se lanza es que el recurso está reservado. ¿Se puede programar más de una tarea simultánea para el NI-9401?

 

En la base de ejemplos de .NET de NI no he encontrado ningún ejemplo con más de un contador.

 

¿Es posible realizar medidas simultáneas con los cuatro contadores? En ese caso, si se utiliza un método de "LargeRangeTwoCounter", ¿quiere esto decir que sólo disponemos de dos contadores útiles y los otros dos dan soporte para realizar la cuenta?

 

Saludos y gracias.

Jacobo

 

 

0 Kudos
Message 1 of 2
(2,998 Views)

Hola Jacobo,

 

    Los errores que experimentas en relación al uso de un recurso reservado o que ya está siendo utilizado muy probablemente se deba al tipo de medida en frecuencia que has elegido. Puedes realizar medidas de frecuencias bajas empleando un único contador, no obstante, para realizar medidas de altas frecuencias, el driver NI DAQmx utiliza implícitamente dos contadores para cada medida en frecuencia, de tal modo que la salida de uno de ellos se cablea internamente a la entrada Gate del segundo. (adjunto slide con esquemático).

    Para seleccionar el tipo de medida en frecuencia que deseas utilizar has de recurrir al parámetro "measMethod" de la función DAQmxCreateCIFreqChan. Te recomendaría echases un vistazo a la ayuda de la función, puesto que describe las diferencias entre las tres opciones posibles: "DAQmx_Val_LowFreq1Ctr", "DAQmx_Val_HighFreq2Ctr" y "DAQmx_Val_LargeRng2Ctr".

 

    Un saludo,

David Oña
0 Kudos
Message 2 of 2
(2,935 Views)