Temporización y Sincronización en NI LabVIEW

Visión General

La temporización es esencial para todas las aplicaciones de pruebas, control y diseño, y debe ser una consideración clave en cualquier sistema. Las tecnologías de temporización y sincronización correlacionan eventos en el tiempo, lo cual es necesario para efectuar actividades coordinadas. Para que el software orqueste estas actividades, el programa debe estar sincronizado y contar con el concepto de tiempo. El software de NI LabVIEW tiene estructuras de tiempo nativas que usted puede utilizar para sincronizar su software dentro del sistema.

Temporización de LabVIEW al descubierto-Motor de Nanosegundos y NI-TimeSync

LabVIEW utiliza un componente de software llamado motor de nanosegundos para mantener el registro del tiempo dentro del programa. El  motor de nanosegundos corre como proceso de fondo y se comunica con el sistema operativo para manejar el tiempo. Hay una gran variedad de funciones y estructuras que utilizan el motor de nanosegundos tales como la función de Espera (Wait) y los ciclos temporizados (Timed Loop). El motor de nanosegundos puede utilizar un reloj local de tiempo real (RTC) o puede ser manejado por una referencia externa de reloj integrada a través del NI Time Sync Framework (NI-TimeSync) (Figura 1).

Figura 1. El mecanismo de temporización de nanosegundos de LabVIEW y el NI TimeSync se coordinan para proveer un reloj a su aplicación.

LabVIEW 2010 introduce un nuevo reloj disponible para NI-TimeSync. El módulo del estándar IEEE 1588 disponible con NI-TimeSync 1.1 provee una referencia de reloj que esta sincronizada a 1ms de resolución. Usted puede configurar múltiples dispositivos en una red para utilizar el mismo reloj de referencia IEEE 1588, permitiendo a múltiples plataformas sincronizarse sobre una red Ethernet estándar. También puede configurar su dispositivo para utilizar el Software de Tiempo 1588 desde la utilidad de NI Measurement & Automation Explorer (MAX) (Figura 2).

Figura 2. Configuración de la Fuente de Sincronización de Tiempo de dispositivo desde MAX.

 

Estructuras de Temporización de LabVIEW-Timed Loop

Una estructura temporizada (Timed Loop) es una función ciclada que se ejecuta cuando la fuente configurada de temporización tiene un evento. Tiene un amplio rango de fuentes de temporización que son descritas más adelante en este tutorial. Utilice una estructura temporizada cuando necesite desarrollar aplicaciones que requieran múltiples tasas de procesamiento, temporización y sincronización precisa, retroalimentación sobre la ejecución del ciclo, características de temporización que cambian de forma dinámica ó diferentes niveles de prioridad de ejecución. En conjunto con las características de temporización precisa de las estructuras temporizadas, esta estructura puede ser aprovechada para asignar procesadores en programación multi-núcleo. Con la estructura temporizada usted puede especificar una variedad de atributos de temporización incluyendo el periodo, prioridad, límites de tiempo, compensaciones y tiempos de espera. Con la combinación de estos atributos y el amplio rango de fuentes de temporización, usted puede crear aplicaciones sofisticadas sin importar las necesidades de sincronización. (Figura 3).

Figura 3. Estructura Timed loop de LabVIEW para ejecución de Código con Necesidades de Temporización.

 

 

Fuentes de Temporización de la Estructura Timed Loop

Una fuente de temporización controla la ejecución de una estructura temporizada (Timed Loop). Usted puede seleccionar a partir de tres clases de fuentes de temporización: interna, por medio de software ó externa (Figura 4).

 

Figura 4. Fuentes de temporización para estructuras temporizadas: integradas internamente, por Software y Externas.

Fuentes Internas de Temporización

La fuente interna de temporización utiliza el motor de nanosegundos para mantener el registro del tiempo. Usted puede configurar la estructura temporizada para que utilice un reloj de 1 kHz o de 1 MHz en un dispositivo tiempo real (RT). Con el reloj de 1 kHz se puede temporizar una estructura con una resolución de milisegundos. Todas las plataformas de LabVIEW que pueden ejecutar una estructura temporizada soportan una fuente interna de 1 kHz. Los dispositivos que soportan la fuente de temporización de 1 MHz pueden temporizar una estructura con una resolución de microsegundos. Una estructura temporizada también puede configurarse para utilizar cualquiera de estas fuentes integradas de temporización como referencia absoluta de tiempo mediante la cual se inicie la ejecución de la misma utilizando estampas de tiempo (timestamps). Por ejemplo, usted puede configurar la estructura temporizada para empezar en un instante preciso cada día.

Una fuente interna adicional de temporización es la Sincronización al Scan Engine. Esto sincroniza la estructura temporizada con el NI Scan Engine. Usando esta fuente de temporización, la estructura temporizada se ejecuta al final de cada muestreo. El periodo entre iteraciones corresponden al Scan Period (µS), configurable en la página del NI Scan Engine.

Fuentes de Temporización Disparadas por Software

Usted puede crear una fuente de temporización por software para iniciar la ejecución de una estructura temporizada con base en un evento definido por software. Use el VI Create Timing Source para crear una fuente de temporización por software. Utilice el VI Fire Software-Triggered Timing Source para iniciar la ejecución de una estructura temporizada por software. Usted puede usar una fuente de temporización por software como manejador de eventos compatibles con RT o para notificar a una estructura consumidor temporizada cuando haya nuevos datos disponibles en una aplicación productor-consumidor.

Fuentes Externas de Temporización

Usted puede crear fuentes de temporización externa para controlar estructuras temporizadas con NI-DAQmx Versión 7.2 o posterior. Use el VI “DAQmx Create Timing Source” para seleccionar programáticamente una fuente externa de temporización. Usted también puede usar diferentes tipos de fuentes de temporización en NI-DAQmx, incluyendo frecuencia, contador de flancos digitales y detección de cambios en señales digitales para controlar estructuras temporizadas. Utilice los VIs de NI DAQmx - Data Acquisition para crear los siguientes tipos de fuentes de temporización DAQmx:

Frecuencia - Crea una fuente de temporización que ejecuta una estructura temporizada a una frecuencia constante.

Contador de Flancos Digitales - Crea una fuente de temporización que ejecuta estructuras temporizadas ante alzadas o caídas de una señal digital.

Detección de Cambios Digitales - Crea una fuente de temporización que ejecuta una estructura temporizada ante alzadas o caídas de una o más señales digitales.

Señal de una Tarea - Crea una fuente de temporización que utiliza una señal específica para determinar cuándo se ejecuta una estructura temporizada.

Temporización y Sincronización en LabVIEW

Con estructuras de temporización nativas y el motor de nanosegundos, LabVIEW provee funcionalidad esencial de temporización y sincronización para su sistema.

¿Nuevo en sincronización? Visite Logrando la Sincronización.