En el campo de la automatización industrial y el control de movimiento, a menudo se escuchan términos como "CANopen", "E/S distribuida", "PDO" y "SDO". Para los ingenieros que están empezando, el protocolo CANopen puede parecer abrumador — no es tan intuitivo como los protocolos seriales simples, ni persigue la velocidad de EtherCAT.
Entonces, ¿qué es exactamente CANopen? ¿Qué problema central resuelve? ¿Y cómo hace que los sistemas de control distribuidos complejos sean simples y eficientes?
En resumen: CANopen es un protocolo de aplicación de alto nivel construido sobre hardware del bus CAN. A través de un mecanismo de comunicación estandarizado y un diccionario de objetos, permite que PLCs, sensores, actuadores y otros dispositivos "hablen el mismo idioma" y trabajen juntos de forma eficiente. La E/S distribuida es una de las aplicaciones más clásicas y ampliamente utilizadas de CANopen.
Este artículo utiliza el módulo esclavo distribuido de Ebyte M31-U-CAN de la serie CANopen como caso de referencia para guiarte hacia el mundo del protocolo CANopen desde cero.
Imagina controlar la iluminación de todo un edificio, los sensores y válvulas en una línea de montaje de fábrica, o cientos de puntos de adquisición de datos en un gran laboratorio. El enfoque tradicional es:
Cableado punto a punto : Cada sensor requiere un cable separado que regrese al controlador central (PLC). Las cantidades de cables se disparan, los costes son altos, el cableado es complejo y los puntos de fallo son numerosos.
Difícil de modificar : Si el tipo de dispositivo cambia o es necesario añadir puntos de E/S, el programa PLC y la configuración del hardware deben ser reestructurados — un proceso muy engorroso.
CANopen divide todo el sistema en dos partes: Maestro y Esclavo .
Maestro (normalmente un PLC o controlador dedicado): Responsable de la gestión general de la red, el envío de comandos de control, la recepción de datos y la gestión de fallos.
Esclavo : Estos son los módulos de E/S distribuidos situados en el sitio del dispositivo. No manejan lógica compleja directamente, sino que ejecutan fielmente tareas de adquisición y salida.
Tomando como ejemplo el módulo esclavo distribuido de Ebyte M31-U-CAN de la serie CANopen , aborda las siguientes necesidades clave:
| Necesidad | Solución |
|---|---|
| Expansión flexible | Soporta arquitectura modular, conectando hasta 16 módulos de expansión de E/S (incluido el host), con un máximo de 256 puntos de E/S . Los usuarios pueden combinar libremente módulos DI, DO, IA y AO como bloques de construcción. |
| Cableado simplificado | Todos los módulos de E/S se conectan al maestro mediante un único bus CAN de alta velocidad. Un par trenzado (CAN_H y CAN_L) reemplaza cientos o miles de cables de señal, reduciendo drásticamente los costes de cableado y mejorando la fiabilidad y la inmunidad al ruido. |
| Plug and play | El diccionario de objetos estandarizado y los archivos de descripción de dispositivos (archivos .eds) de CANopen permiten que los módulos de E/S sean reconocidos y configurados automáticamente por software PLC convencional (como CODESYS), facilitando un verdadero plug and play. |
| Dimensión | Descripción |
|---|---|
| Tipo de dispositivo | Módulo esclavo CANopen |
| Capacidad de expansión | Soporta hasta 16 módulos de expansión de E/S (incluyendo host) |
| Tipos de E/S | DI (NPN/PNP), DO (Relé/PNP), AI (Corriente/voltaje diferencial, corriente/voltaje de un solo extremo), AO (Corriente/Voltaje) |
| Interfaz de comunicación | Interfaz CAN + puerto Ethernet (para configuración de parámetros) |
| Calificación CAN Baud | 1000K (por defecto), 500K, 250K, 125K, 50K, 20K, 10K |
| Soporte CODESYS | Sí, el dispositivo puede cargarse mediante archivo .eds |
| Protección Industrial | ESD, sobretensiones, protección contra polaridad inversa de potencia, certificado CE |
Para entender CANopen, primero necesitas conocer su base física — el bus CAN .
Bus CAN : Un protocolo de comunicación multi-maestro que utiliza dos cables (CAN_H y CAN_L) con transmisión diferencial de señal. Ofrece inmunidad al ruido y es una "estrella veterana" en entornos industriales y electrónica automotriz.
Limitación de CAN : CAN solo define la capa física y la capa de enlace de datos, pero no especifica la capa de aplicación. Esto significa que tienes que definir tú mismo qué significa "data 0x12345678". CANopen define completamente esto sobre CAN.
El poder de CANopen reside en tres mecanismos centrales:
Esta es el alma de CANopen . Cada dispositivo CANopen (como el módulo esclavo M31-U-CAN) tiene una "tabla de datos" interna: el Diccionario de Objetos. Cada fila de la tabla se identifica de forma única mediante un índice de 16 bits y un subíndice de 8 bits .
Esto no es un concepto abstracto; es la "enciclopedia de datos" del dispositivo. Por ejemplo, el diccionario de objetos del módulo esclavo M31-U-CAN incluye:
| Índice | Descripción |
|---|---|
| 0x1000 | Tipo de dispositivo — le dice al maestro "Soy un dispositivo de E/S" |
| 0x1001 | Registro de errores — informa de errores actuales |
| 0x6000 | Entrada digital — registra el estado de todos los puntos de entrada digitales |
| 0x6200 | Salida Digital — controla el estado de todos los puntos de salida digital |
| 0x6401 | Entrada analógica — registra valores de entrada analógicos (por ejemplo, 0-10V) |
| 0x6411 | Salida analógica — controla los valores de salida analógica (por ejemplo, 4-20mA) |
Por eso los dispositivos CANopen pueden lograr plug-and-play : el maestro lee el diccionario de objetos del esclavo para saber qué tipo de dispositivo es, cuántos puntos de E/S tiene y cuáles son los parámetros de cada punto de E/S.
Significado : Objeto de datos de proceso
Propósito : Utilizado para transmitir en tiempo real, periódicos y pequeñas cantidades de datos de proceso, tales como:
Master → Slave: Válvula de control encendido/apagado (DO), señales analógicas de salida (AO)
Slave → Master: Lectura de temperatura del sensor (IA), lectura del estado del botón (DI)
Características :
Sin sobrecarga de protocolo : las tramas de datos PDO no contienen índices internamente; se mapean directamente a los registros del diccionario de objetos
Alta eficiencia y velocidad : El ciclo interno del bus del M31-U-CAN puede alcanzar hasta 1 ms , ideal para escenarios de control a alta
Múltiples modos de disparo : Soporta activación asíncrona de eventos, disparación cíclica síncrona y disparación remota de peticiones
Significado : Objeto de Datos de Servicio
Propósito : Utilizado para transmitir datos no en tiempo real, de configuración y de diagnóstico, tales como:
Modificación de parámetros del dispositivo esclavo (tasa de baud, dirección del nodo)
Configurar el mapeo PDO (decidir qué datos de proceso se transmiten a través de qué PDO)
Leer números de serie de dispositivos, versiones de firmware, etc.
Características :
Mecanismo de acuse de reconocimiento : Estilo de preguntas y respuestas, fiable pero más lento
Gran volumen de datos : Puede transmitir datos de varios bytes
Vamos a simular el proceso de encender un LED usando el módulo esclavo M31-U-CAN:
El maestro PLC envía una solicitud SDO al módulo esclavo M31-U-CAN, configurando su Receive PDO (RPDO) objeto de mapeo a 0x6200, subíndice 01 (Canal de Salida Digital 1).
El PLC le dice al M31-U-CAN: "A partir de ahora, cuando reciba datos míos a través de RPDO1, escríbelos en la 0x6200 de ubicación, sub-01."
Cuando un usuario pulsa un botón, el PLC debe encender el LED conectado al canal DO 1 del M31-U-CAN.
El PLC envía un mensaje PDO con la parte de datos siendo el valor binario "0000 0001" (activando el primer canal de salida).
Al recibir este PDO, el módulo esclavo M31-U-CAN, basado en la relación de mapeo configurada previamente mediante SDO, escribe automáticamente los datos en la ubicación del Diccionario de Objetos 0x6200, sub-01 .
El circuito interno del controlador de E/S del módulo detecta el cambio en el valor del registro y emite inmediatamente un nivel alto, encendiendo el LED.
Durante todo este proceso, el maestro no necesita conocer la dirección 0x6200 durante la comunicación PDO — solo necesita saber "enviar 8 bytes de datos". Este es el núcleo de la alta eficiencia de los PDO.
Más allá de las funciones estándar de CANopen, el M31-U-CAN ofrece varias características prácticas:
Configuración de hardware : Los conmutadores DIP permiten establecer fácilmente la dirección del nodo CAN (1~127) y la tasa de baudios CAN (los primeros 3 bits para la tasa de baud, los últimos 7 bits para la dirección del nodo).
Integración con CODESYS : La base de conocimientos proporciona pasos detallados para cargar archivos .eds en CODESYS, añadir un gestor CANopen, añadir el dispositivo M31-U-CAN y configurar direcciones de mapeo de E/S. Una vez completado el mapeo, descarga el programa PLC para controlar la E/S.
Gestión inteligente de fallos : Soporta la configuración offline de salida de fallos de E/S. Cuando ocurre un fallo de comunicación, puede configurarse para mantener el estado de salida actual o ejecutar un estado de salida anormal preestablecido.
| Parámetro central | Serie M31-U-CAN |
|---|---|
| Tipo de protocolo | Esclavo CANopen |
| Dirección del nodo | 1~127 (conmutador DIP configurable) |
| Tasa de Baud CAN (kbps) | 1000, 500, 250, 125, 100, 50, 20, 10 |
| Ciclo interno del autobús | Hasta 1 ms |
| Tipos de E/S | DI (NPN/PNP, 1000Hz), DO (Relé/PNP), AI (Diferencial, 16 bits), AO (Corriente/Voltaje) |
| Módulos de Expansión Máxima | 16 (incluyendo al presentador) |
| Interfaz de comunicación | CAN, Ethernet (para configuración) |
| Tensión de alimentación | DC 9~36V (con protección contra polaridad inversa) |
| Temperatura de funcionamiento | -40°C a +85°C |
| Escenario | Aplicación específica | Por qué CANopen Fits |
|---|---|---|
| Smart Factory | Sistemas de manipulación de materiales, líneas de montaje | La E/S distribuida recoge sensores y actuadores de control cercanos, reduciendo el cableado y mejorando la flexibilidad y mantenibilidad del sistema |
| Robótica | Soldadura, pulverización, manipulación de robots | El subprotocolo de control de movimiento de CANopen (CiA 402) define comandos de control de eje estandarizados para un control servomotor preciso |
| Energía Renovable | Monitorización de parques solares, energía eólica | Los módulos de E/S distribuidos recogen una gran cantidad de voltaje, corriente y temperatura de los paneles solares de forma distribuida, y los agregan a través de la red CANopen al sistema central de monitorización |
| Equipamiento médico | Escáneres CT, sistemas de monitorización de pacientes | La alta inmunidad al ruido y el rendimiento en tiempo real garantizan la precisión y estabilidad en la transmisión de datos |
| Automatización de edificios | Sistemas de iluminación, control de climatización | Ahorra cableado, instalación y mantenimiento sencillos |
Línea completa de productos : Ebyte ofrece una gama completa, desde módulos esclavos de E/S distribuidos CANopen (M31-U-CAN) hasta placas núcleo de procesador y ordenadores de placa única para control industrial. Tanto si necesitas E/S como computación y control de alto nivel, existen soluciones adecuadas disponibles.
Amplia experiencia en diseño industrial : La serie M31-U-CAN cuenta con un diseño de hardware de grado industrial con múltiples mecanismos de protección, incluyendo ESD, sobretensiones, ráfagas transitorias rápidas y polaridad inversa de potencia, asegurando un funcionamiento estable a largo plazo en entornos industriales hostiles.
Documentación completa : Ebyte proporciona manuales detallados del producto (Manual de usuario V1.0) que cubren no solo especificaciones del producto, sino también una guía detallada sobre cómo usar CODESYS para cargar dispositivos, diccionarios de objetos configurables e instrucciones de funciones de E/S — muy valiosas para los ingenieros durante el desarrollo y la depuración.
Herramientas de configuración fáciles de usar : Parámetros como el filtrado de E/S, los estados de salida de fallo y los rangos de salida analógica pueden configurarse cómodamente mediante software de PC, reduciendo la barrera de uso.
R: El modbus suele funcionar en modo maestro/esclavo, donde el maestro consulta a los esclavos uno a uno, lo que resulta en menor eficiencia. CANopen, basado en el multi-maestro del bus CAN, permite a los dispositivos enviar datos activamente (activación de eventos PDO), ofreciendo un mayor rendimiento y eficiencia en tiempo real. Además, el diccionario de objetos y los mecanismos PDO/SDO de CANopen hacen que la configuración y la red sean mucho más flexibles que Modbus.
R: La configuración se realiza mediante el DIP switch de 10 bits del dispositivo. Los primeros 3 bits establecen la tasa de bauds CAN, y los últimos 7 bits fijan la dirección del nodo (rango válido 0~127). Por ejemplo, todos los switches configurados en 0 indican la tasa predeterminada de 1000k baudios y la dirección del nodo 1.
R: Soporta expansión modular, con un máximo de 16 módulos de expansión de E/S (incluido el propio anfitrión) y hasta 256 puntos de E/S . Estos módulos de expansión incluyen tipos DI, DO, AI y AO.
R: El dispositivo utiliza el protocolo estándar CANopen . Dado que CANopen es un protocolo estandarizado, siempre que tu PLC o controlador soporte CANopen (por ejemplo, mediante CODESYS u otras tarjetas maestras CANopen), puede comunicarse con la serie M31-U-CAN.
R: La base de conocimientos proporciona pasos detallados:
Instala el archivo .eds en CODESYS a través de "Tools" → "Device Repository". .
Añade CANbus y CANopen_Manager secuencialmente en el proyecto.
Haz clic derecho en CANopen_Manager, selecciona Añadir dispositivo , busca "ebyte", busca y añade M31-xxxxxxxx-U-CAN. .
El protocolo CANopen, a través de sus tres pilares — el Diccionario de Objetos, PDO y SDO — transforma sistemas de control distribuidos complejos en algo estandarizado, eficiente y fácil de usar . La serie M31-U-CAN de Ebyte es un excelente ejemplo de cómo esta técnica se ha implementado con éxito en productos industriales.
Tanto si eres principiante como si eres un ingeniero experimentado, dominar los principios de CANopen abrirá una nueva puerta en tu camino en la automatización industrial.