¿Qué es EtherCAT?
EtherCAT (Ethernet for Control Automation Technology) es un protocolo de comunicación en redes industriales, diseñado específicamente para sistemas de automatización. Es una tecnología basada en Ethernet que permite una comunicación extremadamente rápida y eficiente entre dispositivos en una red.
Arquitectura Básica de EtherCAT
La red EtherCAT sigue una topología maestro-esclavo (master-slave):
El master es el controlador central, como el jefe de una fábrica que coordina la comunicación. Normalmente, el master es un controlador de automatización o una computadora.
Los slaves son los dispositivos o nodos en la red (sensores, actuadores, etc.), como los trabajadores de esa fábrica, que reciben y envían información al jefe (master). Cada slave tiene una dirección única y puede procesar datos en tiempo real sin necesidad de almacenar información extra.
EtherCAT permite una comunicación full-duplex (transmisión y recepción simultánea), lo que asegura que todos los dispositivos puedan comunicarse al mismo tiempo sin interrupciones.
Funcionamiento de la Comunicación en EtherCAT
El master envía un telegrama (paquete de datos) que pasa por cada slave en secuencia, como si fuera una carta que se pasa de trabajador en trabajador en una línea de producción.
Cada slave revisa el telegrama cuando pasa y, si es necesario, modifica solo los datos que le corresponden, sin detener el flujo de la comunicación.
Al completar el ciclo y regresar al master, todos los datos han sido procesados y actualizados, asegurando una comunicación rápida y sincronizada en toda la red.
PDI (Process Data Interface) y PDO (Process Data Object)
Para organizar la comunicación entre el master y cada slave, EtherCAT utiliza la Process Data Interface (PDI) y los Process Data Objects (PDO):
La PDI es como una ventanilla en cada dispositivo slave que permite recibir y enviar datos sin parar la comunicación. Cada slave toma los datos del telegrama a través de su PDI y responde sin detener el flujo.
Los PDOs son como pequeñas tarjetas de instrucciones específicas, que contienen solo los datos necesarios de cada slave. Los PDOs se dividen en:
TxPDOs (Transmit Process Data Objects): las tarjetas con datos que el slave envía al master, como un reporte de estado.
RxPDOs (Receive Process Data Objects): las tarjetas con datos que el master envía a los slaves, como una instrucción o comando.
Así, los PDOs permiten que el master y los slaves intercambien información importante y precisa en tiempo real, sin la necesidad de detener la comunicación o abrir mensajes completos.
*Los PDO son equivalentes por ejemplo al “mensaje implícito de EtherNet/IP”
SDO (Service Data Object)
Además de los PDO, EtherCAT utiliza los **SDO** (Service Data Objects) para la comunicación no cíclica y de configuración entre el master y los slaves. Los SDO permiten que el master configure parámetros específicos de cada slave, como sus ajustes de operación, o leer datos importantes de configuración almacenados en su EEPROM (memoria de solo lectura).
Mientras que los PDO se usan para intercambiar datos de proceso en tiempo real, los SDO son ideales para la transferencia de datos que no necesitan ser constantes ni rápidos, como datos de diagnóstico o configuraciones iniciales. A través de los SDO, el master puede enviar comandos específicos a un slave o leer su estado, ajustando la configuración necesaria antes de que el sistema entre en operación completa.
En EtherCAT, los SDO son especialmente útiles para personalizar y ajustar el funcionamiento de cada dispositivo en la red antes de iniciar el intercambio de datos en tiempo real.
*Los SDO son equivalentes por ejemplo al “mensaje explícito de EtherNet/IP”
EtherCAT State Machine
El estado del esclavo EtherCAT es controlado por el EtherCAT State Machine (ESM).
Dependiendo de este estado en el que se encuentre, diferentes funciones serán accesibles o ejecutables en dicho esclavo.
En cada estado se envían comandos específicos desde el maestro al esclavo, principalmente durante el “bootup” (arranque) del esclavo.
Los estados son:
Init: Configuración básica del slave sin intercambio de datos.
Pre-Op: Verificación de la comunicación por mailbox, configuración opcional de PDOs.
Safe-Op: Comunicación de datos de proceso, pero en un estado seguro. (Hay comunicación pero nada físico (ningún drive) se mueve).
Operational: Transferencia completa de datos de proceso (estado normal de operación).
Boot: Actualización de firmware, sin comunicación de datos de proceso.
Fuente Beckhoff Information System.
Init: Al encender el esclavo EtherCAT, este entra en el estado Init. En este punto, no hay comunicación de datos de proceso ni de mailbox (buzón de comunicación). El mailbox en EtherCAT es un canal especial de intercambio de datos utilizado para enviar mensajes de configuración, control y diagnóstico entre el maestro y el esclavo. A diferencia de los PDOs, que manejan datos de proceso en tiempo real, el mailbox permite transmitir información más compleja y menos urgente, como actualizaciones de parámetros o estado de funcionamiento. Durante la fase Init, el maestro de EtherCAT configura los canales de comunicación básicos para el mailbox (canales 0 y 1), estableciendo un enlace de control que se usará para configurar y verificar el dispositivo antes de habilitar la comunicación de datos de proceso.
Pre-Operational (Pre-Op): En la transición de Init a Pre-Op, el esclavo verifica si el mailbox se ha configurado correctamente. En el estado Pre-Op, ya es posible la comunicación a través del mailbox, pero aún no se transfieren datos de proceso. En este estado, el maestro inicializa canales adicionales para datos de proceso y realiza configuraciones específicas para el mapeo de PDO (Process Data Object), si el esclavo lo permite.
Los PDO son estructuras utilizadas para el intercambio de datos de proceso en tiempo real entre el maestro y los esclavos. En términos simples, permiten que datos críticos, como estados de sensores y comandos para actuadores, se transmitan rápidamente sin necesidad de una comunicación detallada de mailbox, asegurando así un flujo continuo de información necesaria para el control en tiempo real. También se pueden ajustar parámetros específicos para la transferencia de datos en este estado.
Safe-Operational (Safe-Op): Durante la transición de Pre-Op a Safe-Op, el esclavo verifica que los canales de comunicación de datos de proceso y, si es necesario, las configuraciones de los relojes distribuidos, sean correctas. En el estado Safe-Op, tanto la comunicación de mailbox como de datos de proceso es posible, pero los datos de salida del esclavo se mantienen en un estado seguro (por ejemplo, apagados), mientras que los datos de entrada se actualizan cíclicamente.
Operational (Op): Para cambiar de Safe-Op a Op, el maestro debe enviar datos de salida válidos al esclavo. En el estado Op, el esclavo puede transferir datos de proceso completos: envía los datos de salida a los actuadores o dispositivos conectados y recibe datos de entrada. Es el estado normal de operación para un esclavo EtherCAT.
Boot: El estado Boot se utiliza para actualizar el firmware del esclavo. Solo se puede alcanzar desde el estado Init y permite comunicación a través de mailbox usando el protocolo FoE (File Access over EtherCAT), pero no admite otro tipo de comunicación de mailbox ni de datos de proceso. Este flujo asegura que los esclavos EtherCAT pasen por una secuencia de verificación y configuración antes de llegar a un estado de operación completa, minimizando riesgos y asegurando que cada dispositivo esté correctamente sincronizado y configurado.
Condiciones de Transición entre Estados:
- INIT a PRE-OP:
La transición de Init a Pre-Op requiere que el master configure y verifique la interfaz de mailbox. Si el mailbox no se inicializa correctamente, la transición no se produce.
- PRE-OP a SAFE-OP:
Ocurre después de que el master ha definido los PDOs y configurado el mapeo de los datos de proceso. Este paso incluye una verificación de la estructura de datos para evitar inconsistencias.
- SAFE-OP a OPERATIONAL:
Requiere que el master envíe datos válidos de salida al slave, que el slave acepte sin errores y que el hardware esté listo para enviar y recibir datos de proceso en tiempo real.
- Estados de Error:
Si ocurre un error (por ejemplo, pérdida de sincronización o fallo de comunicación), el sistema puede retroceder a SAFE-OP o incluso a INIT para reiniciar el ciclo.
Eventos que Pueden Causar Transiciones:
- Eventos de Control:
El master envía comandos de cambio de estado para gestionar transiciones específicas.
- Errores en el Hardware o Software:
Si el slave detecta un error grave, puede forzar una transición a un estado seguro (generalmente a SAFE-OP o INIT).
- Eventos de Sincronización (SYNC0 y SYNC1):
Estos eventos sincronizan los datos de proceso una vez que el slave está en OPERATIONAL, asegurando que los datos de entrada y salida se actualicen en ciclos bien definidos.
Aclaración importante
Los eventos SYNC0 y SYNC1 son parte del funcionamiento en tiempo real de EtherCAT una vez que el sistema ya está en OPERATIONAL, mientras que las transiciones de estado están controladas por el master durante el proceso de arranque y configuración del sistema.
Manejo de Excepciones y Estados de Error:
El sistema EtherCAT está diseñado para pasar automáticamente a SAFE-OP o INIT en caso de error, lo que permite que el master intente una recuperación sin perder por completo la comunicación. Esta función asegura una respuesta rápida a fallos y un reinicio seguro en el ciclo de operación.