Crear un Sistema Distribuido con NI VeriStand

Visión General

Usted puede desarrollar varios tipos de sistemas distribuidos. Por ejemplo, el enfoque de recopilar entradas y salidas (E/S) en una ubicación distinta que un solo procesador central, generalmente es llamado E/S distribuida. Otro ejemplo es añadir múltiples procesadores a un solo sistema, por consiguiente distribuir el procesamiento. Este artículo habla sobre crear un sistema distribuido de procesamiento y E/S con NI VeriStand, lo cual incluye varias características que hacen del desarrollo de sistemas distribuidos una experiencia más eficiente.

Los sistemas de control, como aquellos encontrados en aviones, automóviles y otros proyectos industriales, a menudo requieren E/S y potencia más computacional para monitorear, probar o simular que lo que una sola tarjeta de procesador y chasis pueden ofrecer. Esta nota técnica explica cómo usted puede crear un sistema escalable, distribuido y sincronizado para cumplir con las necesidades de un sistema de hardware en el ciclo (HIL) o de pruebas en tiempo real. NI VeriStand es un entorno de software fácil de usar para configurar aplicaciones de pruebas en tiempo real, incluyendo sistemas de pruebas HIL. Al usar las funciones de NI VeriStand, usted puede crear este sistema sin la necesidad de diseñar, programar y mantener la arquitectura de software.

Contenido

La Necesidad de Sistemas Distribuidos

Usted generalmente puede separar grandes sistemas en varios componentes diferentes e implementar y tratar cada componente de hardware y software por separado. Para proporcionar la habilidad de E/S y mayor potencia de computo, usted puede implementar cada componente del sistema en un juego diferente de hardware.

Por ejemplo, las alas del avión, timones, motores, alerones y demás, todos necesitan ser simulados y/o probados. Usted puede separar este sistema en varias piezas de hardware, como se muestra en la Figura 1 para aprovechar un enfoque modular.

 


Figura 1. Usted puede usar múltiples sistemas PXI para simular componentes de un avión.
[+] Ampliar Imagen

Características de Integración a Nivel del Sistema

Al usar NI VeriStand, uno o más PCs (servidores) de operador pueden comunicarse con uno o más objetivos de ejecución en tiempo real con mínima configuración. NI VeriStand maneja toda la comunicación entre las PCs de operador (servidores) y objetivos de ejecución en tiempo real. La Figura 2 muestra una sola topología involucrando un servidor y un objetivo.


Figura 2. Topología Simple

El componente de un servidor que se comunica con el objetivo es el NI VeriStand Gateway. Esto es manejado automáticamente, pero es un concepto clave para comprender topologías más grandes.

Usted puede añadir objetivos fácilmente a una topología dentro del NI VeriStand System Explorer.


Figura 3. Añadir un objetivo dentro del System Explorer.

Un solo archivo de definición del sistema puede contener un número ilimitado de objetivos y hasta combinar diferentes tipos de objetivos.


Figura 4. Un solo archivo de definición del sistema puede contener múltiples objetivos.

Cada objetivo puede tener su propia configuración de hardware y software y todos los objetivos pueden ser desplegados e interactuar desde un solo gateway.


Figura 5. Múltiples objetivos pueden ser desplegados e interactuar desde un solo servidor.

Las PCs principales adicionales pueden comunicarse con la misma topología del objetivo al comunicarse con otro gateway del servidor.


Figura 6. Múltiples Servidores y Múltiples Topologías de Objetivos

Para lograr esto, los servidores adicionales simplemente necesitan cambiar la dirección del NI VeriStand Gateway para ser el servidor remoto. El resto de la aplicación se mantiene igual.

Compartir Datos entre Sistemas Distribuidos

Para hacer que un sistema distribuido se comporte como un solo sistema, se requiere compartir datos entre los componentes del sistema. Esto es un elemento clave que proporciona las diferentes piezas para funcionar. Esto generalmente se logra al usar interfaces de memoria reflectiva.

Las redes de memoria reflectiva son redes de comunicación local (LANs) en tiempo real en las cuales cada PC siempre tiene una copia local actualizada del juego de memoria compartida. Estas redes especializadas son diseñadas específicamente para proporcionar comunicaciones de datos altamente determinísticas. Ofrecen el rendimiento temporizado necesario para una variedad de aplicaciones distribuidas de control industrial y simulación. Las redes de memoria reflectiva se han beneficiado con los avances en redes de datos de uso general, pero mantienen una tecnología completamente independiente, manejada por diferentes requerimientos y responidendo a las aplicaciones para las cuales el determinismo, la simplicidad de implementación y falta de sobrecarga del software son factores clave.1

La memoria reflectiva le da a NI VeriStand la habilidad de compartir datos entre múltiples objetivos, al cumplir con los requisitos de rendimiento y determinismo de todo el sistema. Al usar memoria reflectiva, usted puede dividir un modelo de simulación para ejecutar en diferentes sistemas simultáneamente. Los valores de entrada y salida son compartidos entre los sistemas individuales por medio de la memoria reflectiva. Las tarjetas de memoria reflectiva de Plataformas Inteligentes GE son soportadas en NI VeriStand 2010 y versiones posteriores. Varios componentes de NI VeriStand pueden usar memoria reflectiva para ayudarle a crear un sistema de múltiples objetivos.

Además, NI VeriStand distribuye datos automáticamente entre objetivos para varios usos. Por ejemplo, usted puede configurar un perfil de estímulo (prueba) para ejecutar un Objetivo A que relaciona datos con el Objetivo B. NI VeriStand automáticamente crea y habilita un enlace entre los objetivos para obtener los datos. Esto es realizado automáticamente sin configuración explícita del usuario.

La figura 7 muestra un sistema de ejemplo con tarjetas de memoria reflectiva.


Figura 7. Múltiples Chasis con Memoria Reflectiva

Sincronizar un Sistema Distribuido

Es importante pensar en los requerimientos de temporización y sincronización al diseñar un sistema. Si el hardware distribuido no está sincronizado, el muestreo de entradas y salidas no sucede simultáneamente. También, con el tiempo, el flujo puede provocar que un componente del sistema acumule más muestreos que otro, aún si son configurados bajo la misma velocidad. Si su meta es la simulación, esto puede causar problemas. Por ejemplo una simulación puede estar en un estado de tiempo distinto que la otra. También, el registro y análisis de datos puede ser dañado al no ser los datos del mismo momento.

La información general de los Fundamentos de Sincronización cubre varios de los detalles como CLOCK DRIFT y CLOCK SKEW.

Sincronizar un sistema distribuido involucra la sincronización de hardware y la sincronización de software. Opcionalmente, puede sincronizar el sistema completo a una referencia externa del tiempo como GPS o IRIG.

Sincronización de Hardware

La sincronización de hardware significa que cada pieza de hardware en el sistema comparte un reloj de referencia de hardware para temporización y un disparo de inicio para comenzar tareas de E/S. Cada pieza de hardware en el sistema obtiene sus propios relojes del mismo reloj de referencia de hardware y cada pieza del hardware inicia al mismo tiempo.

Ejemplos de tareas comunes de sincronización y temporización de hardware incluyen muestreo simultaneo en varias tarjetas de adquisición de datos, actualizar el ciclo de trabajo en la salida digital de una tarjeta de arreglo de compuerta programable en campo (FPGA) al actualizar salidas analógicas de adquisición de datos, protocolo de sincronización entre un multímetro digital (DMM) e interruptor, enlazado de fase bloqueada de un generador de forma de onda con un digitalizador o sincronizar un downconverter de RF con un digitalizador de frecuencia intermedia.

Usted puede crear un sistema distribuido NI VeriStand con un chasis NI PXI. Extensiones PCI para Instrumentación (PXI) es una plataforma robusta basada en PC que ofrece una solución de despliegue de bajo costo y alto rendimiento para sistemas de medidas y automatización. PXI combina el bus eléctrico Interconexión de Componentes Periféricos (PCI) con el paquete mecánico Eurocard robusto y modular de CompactPCI y añade buses de sincronización especializados y características clave de software.

El chasis contiene el plano trasero PXI de alto rendimiento, el cual incluye el bus PCI y buses de temporización y disparo. La instrumentación modular añade un reloj dedicado de referencia del sistema de 10 MHz, bus de disparo PXI, bus de disparo en estrella y bus local entre ranuras para cubrir la necesidad de temporización, sincronización y comunicación lateral avanzadas sin perder las ventajas de PCI.

La manera más fácil de compartir un reloj de referencia entre el chasis PXI es con las conexiones BNC CLK10 en la parte posterior del chasis. Casi la mayoría de los chasis PXI modernos tienen estas terminales BNC. Cada chasis tiene una conexión de salida CLK10 y una conexión de entrada CLK10. Al conectar la salida CLK10 de un chasis a la entrada CLK10 del otro chasis, puede asegurase que está usando el mismo reloj de referencia.

Para compartir un disparo en estrella, se recomienda un dispositivo DAQ de National Instruments. Un chasis puede exportar un disparo para uno o varios chasis para usarse como un disparo en estrella.

Puede ver un ejemplo de la configuración de la sincronización de hardware en la Figura 8. En esta configuración, un chasis NI PXI-1042 maestro exporta su CLK10 como una referencia de tiempo a otro chasis PXI con un cable BNC. Todos los chasis importan un disparo en estrella externo. 


Figura 8. Sincronización de Hardware de Chasis Múltiples
[+] Ampliar Imagen

NI VeriStand maneja toda la sincronización de hardware automáticamente en un chasis y usted elige entre varias opciones para exportar e importar relojes de muestreo y disparos a otros objetivos.

Después de añadir los dispositivos DAQ a una configuración del sistema en el NI VeriStand System Explorer, puede ver en la Figura 6 que uno de los nombres del dispositivo DAQ está en negrita. NI VeriStand ha elegido automáticamente este dispositivo para ser el dispositivo DAQ maestro para cada chasis. El dispositivo DAQ maestro acepta un disparo externo para permitir sincronización de múltiples objetivos. NI VeriStand sincroniza dispositivos DAQ no maestros con el dispositivo DAQ maestro en este solo chasis y no son involucrados en la sincronización de múltiples chasis.

 


Figura 9. El dispositivo en negrita ha sido seleccionado como el dispositivo DAQ maestro.

Usted puede personalizar la selección del dispositivo DAQ maestro, así como el disparo en la página del chasis. Seleccione el chasis en el árbol. Debe ver la página que se muestra en la Figura 10. Las secciones importantes para sincronización de hardware de múltiples chasis han sido subrayadas.


Figura 10. Chassis Importa Disparo en PFI 6

En la Figura 10, el chasis es configurado para importar un disparo a Dev1 en PFI 6. Consulte el manual del hardware para el dispositivo Dev1 para encontrar la terminal para PFI 6.

Después de crear estas configuraciones y cablear el BNC y las líneas, puede desplegarlos a los objetivos de ejecución en tiempo real ejecutando NI VeriStand para ofrecer sincronización de hardware.

Si el chasis que está usando no tiene conexiones BNC CLK10 o si requiere de rendimiento de sincronización aún mayor, puede usar un módulo NI 665x de temporización y sincronización para realizar esta misma función. Si decide usar un módulo NI 665x, asegúrese que cada configuración del sistema tiene al dispositivo “10MHz PLL” de temporización y sincronización agregado y configurado para exportar o importar el reloj de 10 MHz.

Sincronización de Software

La sincronización de software significa que varias piezas del código en el sistema (en este caso, el NI VeriStand Real-Time Engine) comparten un reloj de ejecución y un disparo en estrella para comenzar la ejecución al mismo tiempo.

El NI VeriStand Real-Time Engine está diseñado para usar E/S de un solo punto temporizada por hardware (HWTSPIO) cuando los dispositivos de hardware adecuados están disponibles. HWTSPIO es una característica de hardware y software DAQ que permite bloquear la ejecución del software ante relojes de hardware físicos. El bloqueo de software a hardware está disponible solamente para entrada analógica, así que una configuración del sistema debe tener por lo menos un canal de entrada analógica aunque no sea usado.

Por lo tanto, si el hardware es sincronizado como se describe arriba y está presente un canal de entrada analógica en cada configuración, cada software NI VeriStand Real-Time Engine del objetivo es sincronizado automáticamente.

Sincronizar a una Referencia de Tiempo

En algunos casos, los componentes del sistema deben estar sincronizados no solamente entre ellos, sino también a una referencia de tiempo externa. Ya que el enfoque anterior para sincronizar los componentes del sistema involucra un objetivo maestro que comparte su señal de reloj y disparo con el resto del sistema distribuido, usted puede lograr la sincronización de referencia del tiempo al sencillamente sincronizar el objetivo maestro a la referencia externa del tiempo.

El Complemento Clock 10 Discipline para NI VeriStand proporciona a NI VeriStand Engine la habilidad de sincronizar a una referencia externa del tiempo. La referencia externa del tiempo puede ser cualquiera de las referencias soportadas para un módulo NI PXI-6682. El complemento utiliza una combinación del PXI-6682 y otro dispositivo de temporización y sincronización para acostumbrar al chasis PXI a la referencia externa del tiempo. Puede encontrar más detalles en la página del complemento.

La Figura 11 muestra componentes del ejemplo de sistema distribuido que son sincronizados entre ellos y a una referencia externa del tiempo.


Figura 11. Sincronización de Hardware de Múltiples Chasis con Referencia Externa de Tiempo
[+] Ampliar Imagen

Conclusión

Con NI VeriStand usted puede configurar E/S en tiempo real, perfiles de estímulo, registro de datos, alarmas y otras tareas; implementar algoritmos de control o simulaciones del sistema al importar modelos desde una variedad de entornos de software; construir interfaces de sistemas de pruebas rápidamente con una interfaz de usuario editable en tiempo de ejecución con herramientas listas para usar y añadir funcionalidad personalizada usando NI LabVIEW, NI TestStand, ANSI C/C++, .NET, Python y otros entornos de software.

Al aprovechar NI VeriStand, usted puede fácilmente crear un sistema HIL, de celda de pruebas, de pruebas en tiempo real o de monitoreado usando las características de múltiples objetivos.