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.

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».

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.

- 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.
Comentarios
Todavía no hay comentarios. Sea el primero en opinar.