Funciones de temporización y sincronización de NI-DAQmx

Información general

Este documento cubre los fundamentos de temporización y sincronización en NI-DAQ™mx dentro del entorno de desarrollo de LabVIEW.  En particular, los temas discutidos incluyen tomar mediciones en modo mixto, sincronizar más allá de la funcionalidad analógica y compartir señales de temporización entre dispositivos de adquisición de datos (DAQ). 

 

La adquisición de datos en un entorno de programación basado en texto es muy similar a la programación de LabVIEW NI-DAQmx, ya que las llamadas a funciones son las mismas que los VI de NI-DAQmx. Para obtener más información, consulte: Uso de NI-DAQmx en entornos de programación basados en texto.

Contenido

¿Por qué temporización y sincronización?

Hay muchas aplicaciones que requieren un control preciso de la temporización y la capacidad de sincronizar operaciones. Por ejemplo, cuando usted está a cargo de medir y analizar un gran número de señales altamente dinámicas, cualquier cantidad de desajuste de fase puede ser inaceptable. Debe entenderse que una medición de una señal en un punto en el tiempo puede evaluarse basándose en otra señal en el mismo punto en el tiempo, y por lo tanto, estas adquisiciones necesitan algún tipo de esquema de sincronización. NI-DAQmx y el entorno de programación gráfica LabVIEW le brindan las herramientas para construir fácilmente este tipo de sistemas de adquisición de datos.

Una API detrás de escena

NI-DAQmx proporciona muchas soluciones potentes para sus necesidades de temporización y sincronización. Su funcionalidad nativa en LabVIEW demuestra la próxima generación de programación de adquisición de datos. Atrás quedaron los días de definir específicamente las rutas de cableado de las señales entre dispositivos: NI-DAQmx encuentra automáticamente una manera de llevar las señales a donde las necesita. Todo lo que tienes que hacer es especificar el destino. En este sentido, el controlador opera inteligentemente en segundo plano para eliminar una operación de configuración compleja. Esto, sin embargo, es solo la punta del iceberg de temporización y sincronización...

Mediciones en modo mixto

Dado que la mayoría de los dispositivos de adquisición de datos de la serie E tienen funcionalidad de entrada analógica, salida analógica, contador/temporizador y entrada/salida digital, el desafío a menudo es programar el dispositivo de tal manera que aproveche cada tipo de medición con cierta certeza de que están sincronizados entre sí. Algunos casos de uso incluyen:

1) Entrada y salida analógicas iniciadas simultáneamente

Las operaciones se inician simultáneamente pero no están sincronizadas

Entrada analógica sincronizada y salida analógica

Las operaciones se pueden iniciar y configurar simultáneamente para que se ejecuten a la misma velocidad

Las operaciones pueden compartir el reloj de muestreo

2) Entrada analógica sincronizada y salida analógica con un disparador

Compartir el disparador de hardware y el reloj de muestreo

3) Operaciones analógicas y de contador sincronizadas

4) El contador crea el tren de pulsos como clock para la operación analógica

5) El clock analógico habilita la operación de contador

En la API de NI-DAQmx, puede usar un número muy pequeño de VI para cumplir con la mayoría de sus necesidades de temporización y sincronización. En particular, DAQmx Timing.vi y DAQmx Trigger.vi le permiten especificar en qué intervalo deben analizarse sus canales y cuándo deben iniciarse (o detenerse). Aprovechando el polimorfismo de LabVIEW, estos dos VI son capaces de definir la temporización y el disparo no solo de las señales de entrada analógicas, sino también de la salida analógica, el contador/temporizador y la entrada/salida digital mencionados anteriormente (ver Figura 1).

DAQmx Timing.vi y DAQmx Trigger.vi

Figura 1
 

Entrada/salida analógica sincronizada

Un caso de uso común que demuestra problemas de sincronización es la situación en la que desea que una operación de entrada analógica y salida analógica se produzca utilizando el mismo clock. En este caso, necesitaría dos cadenas de código: una para la entrada analógica y otra para la salida analógica. En cada uno, utilice el DAQmx Timing VI para especificar la operación continua deseada. Para la temporización de salida analógica, deje la entrada “fuente” como predeterminada – esto significa que su operación de salida analógica funcionará de acuerdo con el clock de salida analógica predeterminado, que es el reloj interno. En el VI DAQmx Timing de la entrada analógica, todo lo que tiene que hacer es especificar que la “fuente” sea el reloj de muestreo de salida analógica. Esto establece las operaciones de entrada analógica y salida analógica para operar en la señal de temporización de la salida analógica (ver Figura 2).


establece las operaciones de entrada analógica y salida analógica para que funcionen con la señal de temporización de la salida analógica

Figura 2

Sincronización más allá de lo analógico

El ejemplo anterior demostró cómo puede unir señales de temporización analógicas. ¿Qué sucede cuando se quiere tratar con señales mixtas analógicas y digitales juntas? ¿Puede esperar la misma cantidad de integración sin problemas? La respuesta es sí.

Imagine que sus mediciones analógicas dependen de una señal de reloj externa o no tradicional – ej: tome una muestra una vez cada milisegundo durante 10 milisegundos, espere 3 milisegundos, repita. En este caso, puede utilizar la funcionalidad de contador en un dispositivo de la serie E para generar la señal de temporización deseada, pero ¿cómo se le dice al lado analógico que lo utilice como clock? La respuesta es, una vez más, el DAQmx Timing VI. Al especificar que su “fuente” sea el pin de salida interno de un contador, la salida del contador se convertirá en el clock de entrada analógico sin el uso de un cable externo para conectar pines en un bloque de terminales (consulte la Figura 3).

uso de un cable externo para conectar pines en un bloque de terminales

Figura 3


La facilidad de uso demostrada con la sincronización también se extiende al disparo. Con el DAQmx Trigger VI, puede configurar fácilmente una operación para esperar una señal de disparo interna o externa (analógica o digital). Un buen ejemplo de esto se refiere a la activación de eventos. Con el disparo por eventos, el dispositivo ignora los primeros N disparos antes de iniciar una adquisición. Para hacer esto, se utiliza un contador para crear el pulso único para iniciar la adquisición de entrada analógica. El contador utiliza los primeros N disparos para crear la parte baja del pulso y el disparador válido para iniciar la parte alta del pulso y activar la adquisición real. En el siguiente ejemplo, hay dos filas paralelas de código; la superior configura la operación de entrada analógica y la inferior configura un contador. La fuente del disparador es la salida del Contador 0, y el Contador 0 ha sido configurado para emitir un pulso disparador después de que haya introducido su "enésimo" pulso. En este caso, la base de tiempo interna de 100 kHz se selecciona como fuente de entrada, pero también podría haber especificado una ubicación externa para la fuente, lo que le permite configurar un disparador retardado desde un tren de pulsos externo (consulte la Figura 4).

configurar un disparador retardado desde un tren de pulsos externo
Figura 4



Nota: En los dos últimos ejemplos, Ctr0InternalOutput y Crt0Out se referencian como la ubicación de una señal de clock o de disparo. Ctr0Internal Out es una señal disponible para rutas internas a la placa. Crt0Out debe utilizarse cuando se enrute la salida del contador a PFI y RTSI. El ejemplo de la Figura 4 podría haber utilizado CtrOInternal Out en lugar de Ctr0Out.

Opciones de enrutamiento de señal


Para enrutar señales de una ubicación en un dispositivo a otra como demuestran los ejemplos anteriores, debe tener en cuenta algunas cosas. Primero, ¿NI-DAQmx está configurado para enrutar estas señales? Segundo, ¿qué señales están disponibles para el enrutamiento? Debido a que la capacidad de pasar estas señales depende de una ruta de comunicación intermedia, haga uso del bus RTSI (Real Time System Integration).

El bus RTSI (disponible en un dispositivo PCI como conector de 34 pines o incluido en el conector del panel trasero en PXI) expone 7 pines en los que puede enviar señales de temporización de un dispositivo a otro (o internamente en un dispositivo). Antes de poder utilizar esta ruta de comunicación, informe al controlador cómo están conectados los dispositivos del sistema. Para los dispositivos PCI, conecte los dispositivos apropiados con un cable RTSI y registre esta conexión en Measurement & Automation Explorer (MAX). Con MAX 3.0, esto se hace haciendo clic derecho en Dispositivos NI-DAQmx y eligiendo Crear nuevo dispositivo NI-DAQmx >> Cable RTSI. Esto agregará un cable RTSI a su lista de Dispositivos NI-DAQmx. Para los sistemas PXI, todo lo que necesita hacer es identificar el sistema PXI haciendo clic derecho en Sistema PXI >> Identificar como. El bus RTSI se conoce como el bus PXI Trigger en los sistemas PXI. (La Figura 5 muestra un cable RTSI conectado a un dispositivo DAQ.)


Cable RTSI conectado a un dispositivo DAQ

Figura 5


Para ver qué señales se pueden enrutar a dónde dentro de un solo dispositivo DAQ, puede ver la pestaña Rutas del dispositivo en MAX. Cuando haga clic en el dispositivo DAQ en MAX, verá que los atributos del dispositivo aparecen en la ventana a la derecha del árbol de configuración. Si selecciona la pestaña Rutas del dispositivo en la parte inferior de esa ventana, se listará cada ruta de señal disponible. Los cuadrados verdes indican rutas que se pueden realizar directamente donde los cuadrados amarillos indican rutas que deben pasar por algún tipo de subsistema en el dispositivo a realizar. Los subsistemas intermedios necesarios para completar la ruta se enumeran en el cuadro Subsistema utilizado cuando pasa el cursor sobre un cuadrado amarillo. Esto puede ser útil ya que las rutas indirectas a veces pueden interferir con otras operaciones que está realizando (Figura 6).


rutas indirectas a veces pueden interferir con otras operaciones que está realizando


Figura 6

Funcionalidad avanzada

Los VI DAQmx Timing y DAQmx Trigger ofrecen funcionalidades de alto nivel para configurar su operación, pero hay ocasiones en que la información de nivel inferior se vuelve importante. Digamos que necesita saber en qué base de tiempo se actualiza una operación de salida analógica o para qué nivel se ha configurado un disparador de flanco analógico. Esta información se expone a través de los nodos de propiedades de DAQmx Timing y DAQmx Trigger (ver Figura 7). Desde estos nodo de propiedades, puede acceder a todos los valores configurados de manera relevante, ya sea para establecerlos o verlos.

los nodos de propiedades de DAQmx Timing y DAQmx Trigger

 

los nodos de propiedades de DAQmx Timing y DAQmx Trigger
Figura 7



Un ejemplo de donde el nodo de propiedades de DAQmx Trigger expone funcionalidad compleja es la opción de reactivable para los contadores. En APIs anteriores, hacer que un contador sea reactivable cambiaba completamente el código para la operación del contador. Con la API de NI-DAQmx, la simple inclusión de un nodo de propiedades de DAQmx Trigger, establecido en Start.Retriggerable, cambia el contador de un único disparo a una operación reactivable (consulte la Figura 8).

establecido en Start.Retriggerable

Figura 8

Sincronización multidispositivo

Los ejemplos anteriores han mostrado algunas de las formas en que puede vincular las operaciones entre sí (ya sea a través de disparo o temporización) en el mismo dispositivo. Pero, ¿qué pasa si la funcionalidad de un dispositivo no permite la caracterización completa de un sistema? Ciertamente hay momentos en que el recuento de canales de un sistema requiere la combinación de múltiples dispositivos. Si cada dispositivo contiene conectividad RTSI, disponemos de las mismas opciones de sincronización que en un único dispositivo.

conectividad RTSI

Figura 9


Para mostrar una conexión entre dispositivos, haga clic con el botón derecho en el cable RTSI en MAX y seleccione cada uno de los dispositivos apropiados en Agregar dispositivo al cable. Una vez que se haya agregado cada uno de los dispositivos, NI-DAQmx ahora aprovechará todas las rutas de enrutamiento disponibles entre dispositivos (la sincronización será perfecta). Si se trata de un dispositivo PCI, deberá agregar físicamente el cable RTSI entre los dispositivos.

Ahora puede hacer referencia a los pines de temporización o de disparo adecuados de otros dispositivos como la "fuente" de sus VI DAQmx Timing y Trigger. (La administración del bus RTSI está oculta para el usuario de forma predeterminada, aunque existe la opción de enrutar explícitamente ciertas señales a pines RTSI específicos usando Export Signal.vi.) El siguiente ejemplo muestra cómo puede compartir señales de temporización de un dispositivo a otro para una operación de entrada analógica (consulte la Figura 10).


compartir señales de temporización de un dispositivo a otro para una operación de entrada analógica
Figura 10



Tenga en cuenta que hay dos operaciones separadas que tienen lugar aquí en dos dispositivos separados. El reloj de muestreo para el dispositivo uno se ha configurado como el reloj de muestreo del dispositivo dos simplemente diciéndole a NI-DAQmx que use Dev1/ai/SampleClock como el reloj de muestreo para el dispositivo dos. NI-DAQmx descubre cómo hacer realidad esa ruta para garantizar que los datos se tomarán a la misma velocidad en ambos dispositivos de adquisición de datos.

Conclusión:


La mayoría de los dispositivos DAQ de NI contienen funcionalidades que le permiten compartir temporización y disparo. Para aprovechar esta funcionalidad, NI-DAQmx, con su característica facilidad de uso, análisis simplificado y mayor rendimiento, le brinda las herramientas para garantizar que sus mediciones ocurran en el mismo dominio de tiempo.

 

Was this information helpful?

Yes

No