Programación de E/S EtherCAT con inteligencia FPGA

Contenido

Puede diseñar sistemas de implementación en tiempo real con E/S EtherCAT que son programables con matrices de puertas programables en campo (FPGA). El chasis esclavo modular EtherCAT RIO proporciona E/S de extensión inteligente para NI CompactRIO y otros controladores de automatización programables (PAC) que admiten EtherCAT. Utilice el NI LabVIEW FPGA Module para programar el chasis esclavo EtherCAT RIO, lo que le ofrece dispositivos distribuidos programables capaces de temporización personalizada, control de ciclo cerrado y procesamiento en línea.

La necesidad de E/S distribuida determinista

La necesidad de expansión de E/S surge a menudo cuando se diseña un sistema en tiempo real con grandes recuentos de canales o una amplia distribución en planta. La E/S de expansión le permite agregar mediciones distribuidas o expandir la aplicación original. Sin embargo, construir su propia arquitectura de sincronización para mantener el determinismo de este sistema de control puede volverse rápidamente complicado y difícil de escalar. Las tecnologías de E/S Ethernet en tiempo real, como EtherNet/IP, EtherCAT y PROFINET, existen hoy en día y pueden simplificar estas aplicaciones, por lo que considere el uso de una red de E/S remota en tiempo real que esté diseñada para mantener una comunicación determinista con el controlador principal.

EtherCAT RIO: chasis esclavo para EtherCAT

El chasis de expansión EtherCAT RIO agrega E/S EtherCAT a su CompactRIO, PXI o sistema de controlador industrial. Este chasis robusto de 8 ranuras para módulos de la serie C se comunica de forma determinista a través de un protocolo Ethernet abierto en tiempo real llamado EtherCAT. Puede ampliar sus aplicaciones de tiempo crítico encadenando varios chasis de expansión EtherCAT RIO desde el controlador maestro EtherCAT. Además, la configuración del software y la experiencia de programación LabVIEW están diseñadas para ser fáciles de usar al agregar E/S EtherCAT en tiempo real.

 

Figura 1. Sistema EtherCAT típico que utiliza controladores maestros NI y dispositivos esclavos distribuidos

¿Por qué agregar inteligencia FPGA?

Puede programar el chasis esclavo EtherCAT RIO con los módulos LabVIEW Real-Time y LabVIEW FPGA. Programar en el modo NI Scan con LabVIEW Real-time proporciona una experiencia lista para usar conveniente para facilitar la expansión de E/S. El modo NI Scan le da acceso instantáneo a los valores físicos de E/S en los dispositivos esclavos EtherCAT RIO utilizando variables de E/S simples de arrastrar y soltar, así como paneles de prueba en vivo para monitorear el rendimiento del sistema y realizar una solución de problemas avanzada. Entonces, ¿por qué agregar inteligencia FPGA a su E/S de expansión EtherCAT?

Programar el chasis esclavo EtherCAT RIO en modo FPGA abre las puertas a un nuevo nivel de personalización y flexibilidad para su aplicación. Al integrar capacidades de toma de decisiones, reduce el tiempo de respuesta, reaccionando rápidamente al entorno sin interacción del host. El dispositivo inteligente también puede descargar el procesamiento del maestro realizando análisis en línea, activación personalizada y manipulación de señales en el nodo. Además, usar LabVIEW FPGA allana el camino para que los expertos en el área puedan crear prototipos e implementar rápidamente sus ideas sin tener que ser programadores VHDL.

Diferencias en la API de programación LabVIEW FPGA

Si está familiarizado con la programación en LabVIEW FPGA para CompactRIO y otras plataformas de E/S reconfigurables de NI, hay algunas diferencias entre la programación de la FPGA local y la FPGA para EtherCAT RIO. En LabVIEW 2009, NI introdujo variables de E/S definidas por el usuario para sincronizar los datos de FPGA del esclavo con el procesamiento en tiempo real del maestro. Estas variables de E/S definidas por el usuario también son el único medio para transferir datos entre el programa en tiempo real del controlador y el programa FPGA del chasis de expansión.

Tabla 1. Compare los métodos de transferencia FPGA para chasis locales versus de expansión.

Después de agregar el destino FPGA al esclavo EtherCAT RIO en la ventana del proyecto LabVIEW, puede crear una variable de E/S definida por el usuario haciendo clic con el botón derecho en el dispositivo EtherCAT RIO y seleccionando Agregar » Variable definida por el usuario. Puede establecer el nombre de la variable, el tipo de datos y la dirección de los datos (del host a la FPGA o viceversa) desde la ventana Propiedades. Es importante tener en cuenta que hay un límite en el número de variables de E/S definidas por el usuario que puede crear en el modo FPGA del esclavo. El EtherCAT RIO puede contener un total de 512 bytes de datos de entrada y 512 bytes de datos de salida tanto para variables de E/S en modo Scan como para variables de E/S definidas por el usuario en modo FPGA. Por ejemplo, si está utilizando cuatro módulos de 32 canales en modo Scan y cada canal ocupa 32 bits de datos, entonces las variables de E/S en modo Scan están utilizando 256 bytes de datos de entrada. Con los 256 bytes restantes de datos de entrada, puede crear hasta 64 variables de E/S definidas por el usuario de entrada (también de 32 bits de longitud) en el modo FPGA.

 

Figura 2. Cree variables de E/S definidas por el usuario para comunicarse entre el código en tiempo real del maestro y el código FPGA del esclavo.

Características especiales de la FPGA y casos de uso

Estas variables de E/S definidas por el usuario transfieren datos de un solo punto hacia y desde el controlador maestro en cada ciclo de Scan, por lo que se utilizan mejor para pasar datos procesados desde el chasis de expansión EtherCAT RIO. Por ejemplo, en una conferencia magistral de NIWeek 2009, los presentadores utilizaron seis chasis esclavos EtherCAT RIO para hacer sonar varias campanas musicales que tocaban una canción. El código maestro en tiempo real controlaba la temporización de cuándo hacer sonar cada campana distribuida, pero la FPGA en el chasis esclavo grababa las mediciones de forma de onda de audio de un micrófono y realizaba una transformada rápida de Fourier (FFT) para obtener la intensidad de sonido para una frecuencia de campana específica. La FPGA esclava luego usaba modulación por ancho de pulso (PWM) para controlar el brillo de una serie de LED para que coincidieran con la sonoridad de las campanas. Incluso sin el programa en tiempo real funcionando, estos LED también reaccionarían a otros sonidos fuertes a las mismas frecuencias de campana debido a la lógica FPGA en el chasis de expansión EtherCAT RIO.

 

Figura 3. Este código EtherCAT RIO FPGA fue utilizado en una demostración de la conferencia magistral de NIWeek 2009 para hacer sonar varias campanas musicales que tocaban una canción.

Además de utilizar las funciones del algoritmo LabVIEW FPGA, el chasis esclavo proporciona varias señales de E/S del chasis para ayudar a personalizar y sincronizar su código. Por ejemplo, con EtherCAT State puede ejecutar cierta lógica FPGA durante uno de los siete estados EtherCAT. Por lo tanto, si cesa la comunicación con el controlador maestro, el chasis de expansión EtherCAT RIO entrará en el estado operativo seguro y el código FPGA puede especificar el comportamiento de estado seguro apropiado. Otro conjunto de señales útiles es el Punto Virtual de Salida y Entrada. Estas dos señales de temporización indican exactamente cuándo cada esclavo actualiza sus valores de salida y entrada durante cada período de escaneo. Por lo tanto, sus flancos ascendentes se pueden utilizar para sincronizar el código FPGA en múltiples chasis de expansión EtherCAT RIO. Los ejemplos de LabVIEW se incluyen en el controlador NI-Industrial Communications for EtherCAT para demostrar varias características avanzadas de FPGA, como la sincronización del NI Scan Engine, señales digitales especializadas y sobremuestreo asíncrono.

Figura 4. Sincronice su código EtherCAT I/O FPGA utilizando señales de temporización de punto virtual.

 

Resumen

El uso de E/S distribuidas deterministas, como el chasis de expansión EtherCAT RIO, garantiza que pueda mantener la sincronización y el tiempo ajustados necesarios para aplicaciones en tiempo real. Además, agregar código FPGA a nivel de hardware a sus esclavos EtherCAT RIO le da la capacidad de descargar procesamiento desde el controlador y reducir el tiempo de respuesta al tomar decisiones inteligentes en el nodo.

Enlaces relacionados

Consulte las opciones de EtherCAT para el chasis CompactRIO