Figura 1. El Modo de Escaneo de CompactRIO proporciona acceso directo a E/S en LabVIEW Real-Time y hospeda VIs sin programación o compilación FPGA.
Las E/S de CompactRIO se utilizan tradicionalmente programando el FPGA y luego utilizando los VIs de Interfaz de LabVIEW FPGA en LabVIEW Real-Time. El Modo de Escaneo de CompactRIO detecta automáticamente sus módulos de E/S y los agrega a su proyecto de LabVIEW. Usted puede arrastrar y liberar las variables de E/S en los diagramas a bloques de LabVIEW Real-Time y de su VI huésped, e instantáneamente escribir y leer datos de E/S escalados y calibrados sin ninguna programación o compilación de FPGA (vea la Figura 2).
Figura 2. Acceso directo de E/S en LabVIEW Real-Time al arrastrar y liberar variables de E/S a su diagrama de bloques
Un nuevo componente de LabVIEW Real-Time llamado el Motor de Escaneo de NI actualiza los valores de sus variables de E/S a la taza que usted especifique (hasta 1 kHz). Todos los escaneos de canales son temporizados por hardware con sincronización módulo a módulo. Usted puede configurar el motor de escaneo desde el Proyecto de LabVIEW o programáticamente con una librería incluida de VIs. El motor de escaneo también proporciona una fuente de temporización para que usted pueda sincronizar código con actualizaciones de E/S para aplicaciones de control de bajo desfasamiento. Usted puede crear alias para las variables de E/S para proporcionar una capa adicional de abstracción para el canal físico de E/S. Además, está disponible el escalamiento lineal en variables de E/S y alias.
El Modo de Escaneo de CompactRIO agrega funcionalidad de contador, encoder de cuadratura, y modulación de ancho de pulso (PWM) a cualquier módulo existente de ocho canales digitales de la Serie C sin requerir ninguna programación. Usted configura estas funciones de especialidad digital desde el proyecto de LabVIEW, pero se ejecutan el FPGA para precisión y velocidad. Ahora, sin compilar, usted puede realizar cuentas de flancos de hasta 1 MHz, mediciones de ancho de pulso y frecuencia, decodificación de cuadratura, y control PWM.
Características Específicas de Contador
Características Específicas de Cuadratura
Características Específicas de PWM
El “NI Distributed System Manager”, también nuevo en LabVIEW 8.6, proporciona una locación central para monitorear sistemas en la red y administrar datos publicados. El nuevo administrador de sistema ofrece paneles de prueba para módulos CompactRIO utilizando el Modo de Escaneo de CompactRIO. Tan pronto como su sistema se encuentre disponible en la red, usted tiene acceso a valores de E/S en tiempo real y tendencias históricas para que pueda verificar rápidamente sus conexiones y la integridad de señal. Además de los paneles de prueba, el administrador de sistema le da visibilidad de uso de memoria y carga en procesador para controladores CompactRIO.
Figura 3. El Nuevo “NI Distributed System Manager” le ayuda a iniciar rápidamente al agregar paneles de prueba a CompactRIO.
El Modo de Escaneo de CompactRIO introduce forzado de E/S, la cual es una herramienta de depuración que puede utilizar para sobre escribir un valor de una variable de E/S sin parar o cambiar su aplicación de tiempo real. Usted puede forzar entradas para probar la respuesta de su aplicación sin un estímulo físico, así como forzar salidas para sobre escribir valores de salida de su programa. Usted puede forzar valores de canal utilizando el administrador de sistema con los nuevos VI’s de forzado de E/S.
Con el Módulo LabVIEW 8.6 Real-Time, usted puede tener acceso a cada módulo ya sea con el Modo de Escaneo de CompactRIO o con LabVIEW FPGA. Utilizando LabVIEW FPGA, usted puede implementar disparos personalizados, análisis y procesamiento de señales basado en hardware o procesamiento analógico de alta velocidad. Para utilizar los módulos de E/S en el modo LabVIEW FPGA, simplemente arrastre el módulo al objetivo FPGA en el proyecto de LabVIEW removiéndolo del modo de escaneo. Luego utilice LabVIEW FPGA para programar los módulos y utilizar las variables de E/S para leer y escribir E/S en el resto de los módulos (vea la Figura 4).
Figura 4. Este VI accesa las E/S con el Modo de Escaneo de CompactRIO mientras se calcula la transformada rápida de Fourier de una entrada de aceleración con LabVIEW FPGA.
Cuando se utiliza el Modo de LabVIEW FPGA en uno o más módulos, la lógica de Modo Escaneo de CompactRIO en el FPGA conocido como la “RIO Scan Interface” se compila con el VI de LabVIEW FPGA VI en una sola aplicación de FPGA. Si no se configura ningún módulo para usarse en el modo de escaneo, la Interfaz de Escaneo RIO no se incluye en la compilación.
El Modo de Escaneo de CompactRIO se conforma de dos tecnologías, el Motor de Escaneo de NI y la Interfaz de Escaneo de RIO. La Interfaz de Escaneo RIO es un conjunto de propiedad intelectual (IP) FPGA desarrollado por National Instruments que es descargada al FPGA de CompactRIO y es responsable de la detección de módulos de E/S, temporización, sincronización y comunicación. La Interfaz de Escaneo RIO se ejecuta en un ciclo de escaneo temporizado por hardware que actualice los valores de las E/S físicas. Se utilizan dos canales DMA para transportar datos de E/S entre el FPGA y el sistema operativo de tiempo real. La preconstrucción de funcionalidad digital especial también es un componente de la Interfaz de Escaneo RIO. Para más información sobre la Interfaz de Escaneo RIO, vea la sección de Recursos Relacionados en la parte inferior.
El Motor de Escaneo de NI es un componente nuevo de LabVIEW Real-Time que se ejecuta en una prioridad superior a tiempo crítico o entre tiempo crítico y estructuras temporizadas, lo cual usted puede configurar. Cada vez que la Interfaz de Escaneo RIO termina de ejecutar el último escaneo de E/S, LabVIEW agrega las variables de E/S a un mapa de memoria global de escaneo y actualiza los valores de todas las variables de E/S concurrentemente. De cualquier forma, usted puede configurar cada nodo de variable de E/S para utilizar ya sea acceso por escaneo o acceso directo. Por defecto, LabVIEW configura los nodos de variable de E/S para utilizar las E/S por escaneo la cuales utilizan el mapa de memoria global de escaneo para realizar lecturas y escrituras de E/S sin bloqueo (vea la Figura 5). El acceso directo de E/S sobrepasa el mapa de memoria global de escaneo y se comunica directamente con el manejador del dispositivo de E/S para realizar lecturas y escrituras de E/S con bloqueo (vea la Figura 5). El Motor de Escaneo de NI también publica las variables de E/S en la red permitiéndoles estar disponibles para lectura y escritura en aplicaciones de huésped, paneles de prueba, y forzado de E/S. El motor de escaneo, a diferencia del motor de la variable compartida de LabVIEW, maneja la publicación de las variables de E/S, el cual puede deshabilitar desde la página de propiedades de las variables de E/S.
Cuando utiliza LabVIEW FPGA con el Modo de Escaneo de CompactRIO (algunos módulos utilizando el Modo de Escaneo de CompactRIO y algunos utilizando el Modo de LabVIEW FPGA), la Interfaz de Escaneo RIO y el VI de FPGA se compilan en una sola trama de bits y se despliega en el FPGA. Usted puede tener acceso a los módulos de E/S en el Modo LabVIEW FPGA con los VIs de Interfaz FPGA en LabVIEW Real-Time y también en el modo de escaneo utilizando variables de E/S. Si usted remueve todos los módulos del modo de escaneo, entonces la Interfaz de Escaneo RIO no se compila en la trama de bits. El espacio consumido por la Interfaz de Escaneo RIO en el FPGA se escala con el número de módulos utilizando el modo de escaneo.
Figura 5. Descripción del Modo de Escaneo de CompactRIO
El Modo de Escaneo de CompactRIO está diseñado para aplicaciones que requieren actualizaciones síncronas de E/S con tazas de hasta 1 kHz. Usted puede utilizar la funcionalidad digital especial proporcionada por el modo de escaneo para convertir cualquier módulo de E/S digitales existente de ocho canales en un módulo de PWM avanzado, contador, o encoder de cuadratura. Con la funcionalidad de E/S forzadas y el panel de prueba del manejador del sistema usted puede utilizar el modo de escaneo para configuración inicial, monitoreo de desempeño del sistema y solución de problemas avanzados. Para aplicaciones con requerimientos de alto desempeño, tales como adquisición analógica cerca de 1 MHz, ciclos de control PID de alta velocidad de más de 1 kHz, análisis y procesamiento de señales por hardware personalizado, o E/S de módulos no soportados por el modo de escaneo, utilice el Módulo de LabVIEW FPGA con el modo de escaneo. Usted también puede quitar carga de procesamiento del controlador en tiempo real con el Módulo de LabVIEW FPGA.
El modo de escaneo es soportado por controladores corriendo el VxWorks RTOS con FPGAs con al menos 2M de compuertas debido a los requerimientos de espacio del RSI FPGA. Los controladores soportados son el NI 9012, NI 9014, NI 9073, y el NI 9074. Los planos traseros soportados incluyen el NI 9103, NI 9104, NI 9073, y el NI 9074.
Hay algunas consideraciones de desempeño cuando se utiliza el Modo de Escaneo de CompactRIO. Por ejemplo, la funcionalidad digital especial soporta contadores de hasta 1 MHz contra contadores de hasta 20 MHz que se pueden lograr con LabVIEW FPGA. El motor de escaneo utiliza recursos del sistema que incluyen espacio del FPGA, dos canales DMA, memoria y una cantidad de tiempo del CPU que se escala con la taza de escaneo. El espacio consumido por el RSI en el FPGA se escala con el número de módulos que utilizan el modo de escaneo.
El Módulo de LabVIEW 8.6 Real-Time agrega un conjunto de características poderosas diseñadas para reducir el tiempo de desarrollo y complejidad de CompactRIO. Con el Modo de Escaneo de CompactRIO, usted puede tener acceso a las E/S con LabVIEW Real-Time y con aplicaciones de host sin programación FPGA, teniendo la opción de programar directamente el FPGA para los requerimientos más avanzados. El Administrador de Sistemas Distribuidos de NI y las E/S forzadas también proporcionan paneles de prueba y depuración avanzada para CompactRIO, haciendo sencillo el monitoreo y el mantenimiento de aplicaciones en CompactRIO.