NATHAN LEFEUVRE
ES (Idioma)

← Todos los artículos

cRIO y WAGO en EtherCAT: los canales en un archivo, no en el código

Experiencia con un cRIO maestro EtherCAT que controla E/S WAGO con LabVIEW RT, y con la regla que lo simplifica todo: los canales en un archivo.

En varios bancos de pruebas utilicé un controlador CompactRIO (cRIO) como maestro EtherCAT para controlar entradas y salidas remotas WAGO, con una aplicación LabVIEW Real-Time. El tema: la arquitectura que elegí, lo que hay que saber de EtherCAT del lado de NI y la regla de diseño que más facilitó estos proyectos.

Por qué esta arquitectura

  • El cRIO ejecuta la aplicación en tiempo real y actúa como maestro EtherCAT. Su segundo puerto Ethernet, configurado en modo EtherCAT, queda reservado a la red de campo; el primero sigue dedicado a la computadora de desarrollo.
  • Los acopladores WAGO 750-354 alojan los módulos de E/S del riel y los exponen en EtherCAT. Se encadenan de puerto a puerto, sin switch: la trama da la vuelta en el último acoplador y regresa al maestro.
  • El sistema WAGO 750/753 ofrece una amplísima variedad de módulos (digitales, analógicos, especiales) a un costo moderado, lo más cerca posible del cableado.
Topología: la computadora de desarrollo, el cRIO maestro y los nodos WAGO encadenados en una sola línea EtherCAT (figura en francés)
Topología: la computadora de desarrollo, el cRIO maestro y los nodos WAGO encadenados en una sola línea EtherCAT (figura en francés)

EtherCAT del lado de NI: el Scan Engine manda

  • Una sola trama por ciclo: cada esclavo lee y escribe su parte de la trama al vuelo. Un contador (Working Counter) indica en el mismo ciclo que un esclavo no procesó sus datos.
  • El NI Scan Engine publica cada dato como una I/O variable y actualiza todos los canales juntos, con un periodo único. No usa búfer: un valor que no se lee antes del siguiente scan se pierde.
  • El modo del Scan Engine fija el estado de los esclavos: en modo Active pasan a Operational; en modo Configuration regresan a Pre-Operational. Todo despliegue que modifica el proyecto fuerza el modo Configuration.
  • Un esclavo de terceros como el 750-354 solo aparece en el proyecto después de importar su archivo de descripción (ESI) y reiniciar LabVIEW. Sin eso, sigue siendo un «Unknown Device».
El modo del Scan Engine controla el estado de los esclavos EtherCAT (figura en francés)
El modo del Scan Engine controla el estado de los esclavos EtherCAT (figura en francés)

La regla central: ningún canal escrito en el código

Arrastrar I/O variables al diagrama sirve para un prototipo. En un banco que evoluciona, el nombre de cada canal termina fijo en el código. Por eso separé dos niveles de configuración:

  • La configuración de red, gestionada por NI: el archivo ESI importado y luego la topología (maestro, acopladores, módulos, periodo de scan) guardada en el proyecto LabVIEW e desplegada en el cRIO.
  • La configuración de canales, gestionada por la aplicación: un archivo que asocia cada I/O variable con un alias funcional, un tipo, un sentido, un escalamiento y un valor de respaldo.
Dos configuraciones se encuentran en las I/O variables del cRIO (figura en francés)
Dos configuraciones se encuentran en las I/O variables del cRIO (figura en francés)
  • Un gestor de canales lee el archivo al arrancar y se niega a iniciar el lazo de control si un canal no existe, si un tipo no coincide o si un alias está duplicado.
  • La aplicación solo conoce los alias, nunca las rutas del hardware.
  • Leer un módulo completo cuesta mucho menos que leer canal por canal: el gestor lee por módulo y luego reparte los valores por alias.

Resultado: un cambio de cableado o de sensor se resuelve sin recompilar, y una misma aplicación sirve para varios bancos que solo difieren en su archivo de canales.

Puntos de atención

  • El orden de los módulos en el proyecto debe reflejar el orden físico en el riel: define la imagen de proceso del acoplador. Cualquier diferencia desplaza todos los canales.
  • Las versiones del driver EtherCAT y de LabVIEW deben ser compatibles: las fijo en cada proyecto y las dejo registradas.
  • El estado seguro: al perder la comunicación, el acoplador WAGO fuerza todas sus salidas a 0. Por eso cableo cada salida para que 0 sea el estado seguro, e incluyo una prueba de desconexión del cable en la aceptación.
  • La recuperación: después de una desconexión, el acoplador espera un reconocimiento del maestro. Mi aplicación vigila el estado de cada esclavo y prevé la secuencia de recuperación.
  • La alimentación de un nodo: un módulo de alimentación después del acoplador, un módulo final al extremo del riel y un balance verificado con WAGO Smart Designer antes del pedido.
  • En operación, la aplicación arranca como ejecutable en el cRIO, nunca desde el entorno de desarrollo: ejecutar un VI dispara un despliegue y puede cambiar el modo del Scan Engine.

Para recordar

  • La mayoría de las dificultades viene de la configuración (importación ESI, orden de los módulos, versiones), no del protocolo EtherCAT en sí.
  • Declarar los canales en un archivo, y no en el código, permite modificar el banco sin recompilar.
  • La seguridad se diseña en el cableado: 0 debe ser el estado seguro de cada salida, y la desconexión se prueba en la aceptación.

Para saber más

NI, NI-Industrial Communications for EtherCAT and the NI Scan Engine, ni.com; NI, EtherCAT on CompactRIO, ni.com; WAGO, 750-354 Fieldbus Coupler EtherCAT, wago.com

¿Le resultó útil este artículo?

Califíquelo de 1 a 5 estrellas. Anónimo, sin registro.

¡Gracias! Su calificación: 1 de 5. Puede cambiarla haciendo clic en otra estrella.

¡Gracias! Su calificación: 2 de 5. Puede cambiarla haciendo clic en otra estrella.

¡Gracias! Su calificación: 3 de 5. Puede cambiarla haciendo clic en otra estrella.

¡Gracias! Su calificación: 4 de 5. Puede cambiarla haciendo clic en otra estrella.

¡Gracias! Su calificación: 5 de 5. Puede cambiarla haciendo clic en otra estrella.

Demasiadas calificaciones enviadas en poco tiempo. Vuelva a intentarlo en una hora.

No se pudo guardar su calificación. Vuelva a intentarlo más tarde.

@NathanLefeuvre

Comentarios

    Dejar un comentario

    Cada comentario se revisa antes de publicarse.