Guía completa: Cómo elegir un controlador industrial
Experimental: para prototipos, pruebas y formación. Las E/S del Raspberry PLC se leen con bloques no estándar, sin un driver nativo de CODESYS, y no se recomiendan en producción. La licencia de CODESYS Control for Raspberry Pi cubre uso privado, pruebas y docencia; el uso comercial necesita otra licencia de CODESYS. Para producción, programa el Raspberry PLC con Python, Node-RED o C.
Node-RED vs CODESYS vs Arduino IDE: ¿cuál usar para programar tu PLC?
Usa CODESYS cuando el equipo ya trabaja en IEC 61131-3 (Ladder, texto estructurado, SFC) y el trabajo es control secuencial de máquina; en el hardware de Industrial Shields solo es experimental en el Raspberry PLC (prototipos, pruebas y formación), no para producción. Usa Node-RED para datos, pasarelas y dashboards, no para lazos de control con requisitos de tiempo. Usa Arduino IDE (C/C++) en M-Duino Arduino PLC y ESP32 PLC cuando fabricas máquinas en serie y quieres cero licencias de runtime y la propiedad completa del código. Muchos proyectos combinan dos: control en CODESYS o Arduino IDE, datos en Node-RED.
La pregunta "¿cuál es mejor?" llega a nuestro soporte técnico cada semana. La respuesta honesta depende de dos cosas: quién mantendrá el programa dentro de cinco años y qué hace el proyecto. Esta guía compara los tres entornos con los mismos criterios y da una elección para cada perfil de equipo.
- Control de máquinaCODESYSEquipos IEC 61131-3, secuencias, enclavamientos, depuración online
- Datos y HMINode-REDPasarelas, MQTT, bases de datos, dashboards web
- Máquinas en serieArduino IDEC/C++ en M-Duino Arduino PLC y ESP32 PLC, sin licencia de runtime
- Las dos cosasDos capasControl en CODESYS o C/C++, datos en Node-RED
Tabla comparativa: Node-RED, CODESYS y Arduino IDE
| Criterio | Arduino IDE | Node-RED | CODESYS |
|---|---|---|---|
| Lenguaje | C/C++, compilado para el microcontrolador | Flujos visuales más JavaScript, sobre Node.js | IEC 61131-3: LD, ST, FBD, SFC |
| Hardware de Industrial Shields | M-Duino Arduino PLC (ATmega2560), Ardbox Arduino PLC, ESP32 PLC | Raspberry PLC, TouchBerry, GateBerry (Linux) | Raspberry PLC (CODESYS Control for Raspberry Pi SL), solo experimental |
| Determinismo y tiempo de ciclo | El más alto: sin sistema operativo | Bajo: Node.js sobre Linux | Alto: tareas cíclicas supervisadas |
| Licencia de runtime por unidad | Ninguna | Ninguna (código abierto, Apache 2.0) | Una licencia por equipo; sin ella el runtime se para a las dos horas |
| Lógica secuencial de máquina | Buena, con disciplina | Mala en cuanto crece | Excelente (SFC, ST) |
| Integración de datos e IT (MQTT, bases de datos, dashboards) | Manual, con librerías | Excelente | Buena, menos directa |
| Depuración en planta | Logs por serie e instrumentación propia | Nodos debug, inyección en vivo | Online: variables en vivo, forzados |
| Curva de aprendizaje para un programador de PLC | Media o alta | Media | Baja |
| Curva de aprendizaje para un desarrollador de software | Media | Baja | Media o alta |
| Mantenimiento por un tercero | Depende del autor y de la documentación | Bueno en flujos pequeños | El mejor: un estándar universal |
| Programación asistida por IA | Muy buena: C/C++ mayoritario en archivos de texto | Parcial: los flujos son JSON | Parcial: ST es texto, pero el archivo de proyecto es binario |
¿En qué es bueno cada entorno?
Arduino IDE (C/C++): control total, responsabilidad total
Programar un PLC con Arduino IDE significa escribir C/C++ que se compila para el microcontrolador: un ATmega2560 a 16 MHz en el M-Duino Arduino PLC, o un ESP32 de doble núcleo a hasta 240 MHz en el ESP32 PLC. No hay sistema operativo ni runtime en medio, y no hay licencias por unidad.
- Puntos fuertes: tiempos de respuesta predecibles, arranque en milisegundos, acceso directo a interrupciones y periféricos, coste cero por unidad (para un OEM que fabrica 200 máquinas al año, eso es margen) y código en un repositorio Git que pertenece a la empresa.
- Límites: nada viene hecho. Cada protocolo, reconexión, estado seguro y watchdog es código que escribes o una librería que eliges y mantienes. La mantenibilidad depende de quién escribió el código, y depurar en planta significa logs por puerto serie.
Empieza por la guía de Modbus RTU para PLC basados en Arduino y ESP32. Si quieres lenguajes IEC 61131-3 en estos PLC, usa OpenPLC: consulta la guía de OpenPLC para PLC industriales.
Node-RED (flujos y JavaScript): la integración primero
Node-RED es programación visual por flujos sobre Node.js. Su lugar natural es el Raspberry PLC, donde funciona sobre Linux como en cualquier Raspberry Pi. No viene preinstalado: la guía de instalación de Node-RED en el Raspberry PLC explica cómo instalarlo y arrancarlo como servicio.
- Puntos fuertes: nodos de la comunidad para Modbus RTU y TCP, MQTT, OPC UA, bases de datos SQL, InfluxDB, correo y Telegram. Una pasarela de planta que lee diez esclavos Modbus, guarda los datos y los publica por MQTT se monta en una tarde. Los nodos de dashboard sirven una HMI web desde el propio PLC, y un técnico sin formación en programación entiende un flujo bien hecho.
- Límites: una secuencia de máquina con 15 estados, enclavamientos y gestión de fallos se convierte en un flujo que nadie puede auditar. No es determinista: el planificador de Linux y el recolector de basura de JavaScript deciden los tiempos. Los flujos se guardan como JSON, difícil de revisar en un diff de Git.
CODESYS (IEC 61131-3): el idioma de la industria
CODESYS es el entorno IEC 61131-3 más extendido: Ladder Diagram, texto estructurado, diagrama de bloques de función y Sequential Function Chart. En el Raspberry PLC funciona, solo de forma experimental, con CODESYS Control for Raspberry Pi SL; nuestra guía de configuración de CODESYS para el Raspberry PLC usa CODESYS V3.5 SP19 Patch 3 y el runtime 4.11 o posterior.
- Puntos fuertes: cualquier programador de PLC lo lee, así que un integrador nuevo que viene de Siemens, Schneider u Omron es productivo en días. Tareas cíclicas con prioridades y watchdog de tarea, depuración online con variables en vivo y forzados, y una ruta de migración para lógica escrita en Ladder o ST en otro PLC.
- Límites: el runtime necesita una licencia por equipo (sin ella, se para a las dos horas), y la licencia de CODESYS Control for Raspberry Pi cubre uso privado, pruebas y docencia, y el uso comercial necesita otra licencia de CODESYS. Las E/S del Raspberry PLC se leen con bloques no estándar por I2C, sin un driver nativo de CODESYS, y son lentas: úsalas para prototipos, pruebas y formación, no en producción. La integración IT funciona, pero es menos directa que en Node-RED.
Siguientes pasos: Programar en Ladder con CODESYS en un Raspberry PLC (experimental) y Modbus en un Raspberry PLC con CODESYS (experimental).
¿Cuál encaja con tu equipo?
El mejor encaje va primero en cada perfil.
Vienes de la automatización clásica (Siemens, Schneider, Omron)
Mejor encaje: CODESYS. Después, Node-RED. Último: Arduino IDE. El equipo ya piensa en Ladder, ST y bloques de función. CODESYS conserva esa experiencia, pero en el Raspberry PLC es experimental y no sirve para producción: para producción, programa el control con Arduino IDE (C/C++) en M-Duino Arduino PLC, Ardbox Arduino PLC o ESP32 PLC, o con Python, Node-RED o C en el Raspberry PLC. Node-RED es un complemento para la capa de datos, no para el control.
Vienes del software o de IT
Mejor encaje: Node-RED. Después, Arduino IDE. Último: CODESYS. JavaScript, Git, APIs y bases de datos apuntan a Node-RED, y para una pasarela, un concentrador de datos o una capa de supervisión es la opción más rápida. Si el proyecto se mueve hacia control secuencial serio, saca esa parte de los flujos.
Eres OEM y el PLC va dentro de una máquina fabricada en serie
Mejor encaje: Arduino IDE. Después, CODESYS. Último: Node-RED. Deciden el coste por unidad, el control total del firmware y la propiedad del código. Arduino IDE gana con una condición: disciplina de ingeniería de software, con repositorio, revisiones de código y documentación.
¿Cuál encaja con tu proyecto?
- Control de máquina o de proceso (secuencias, enclavamientos, dosificación): CODESYS o Arduino IDE. Node-RED, no.
- Datos, pasarelas, historiadores, dashboards: Node-RED.
- Las dos cosas: dos capas. El control en CODESYS o Arduino IDE, y la capa de datos en Node-RED, repartido entre un M-Duino Arduino PLC o ESP32 PLC para el control y un Raspberry PLC para los datos.
Las dos capas suelen hablar por Modbus TCP o MQTT. La guía de Modbus RTU, Modbus TCP y OPC UA explica qué protocolo va en cada nivel.
Nuestra recomendación: herramientas abiertas, con asistencia de IA
Si solo pudiéramos quedarnos con un enfoque para un proyecto industrial típico (una máquina o proceso de complejidad media que debe funcionar años y que mantendrán personas que no lo programaron), nuestra respuesta es programación abierta con el código en manos del cliente: Arduino IDE en M-Duino Arduino PLC y ESP32 PLC; Node-RED, Node.js o Python en el Raspberry PLC.
La objeción clásica era razonable: un programa IEC 61131-3 lo continúa cualquier profesional de la automatización, mientras que el código C/C++ depende de su autor. Los asistentes de IA cambian ese equilibrio. Redactan, explican, refactorizan y documentan C/C++, Python y JavaScript en minutos, y estos lenguajes mayoritarios son los que mejor leen, así que quien herede el código no empieza solo. El código abierto es hoy potente y rápido de escribir, sin licencias de runtime ni un entorno cerrado entre tú y la máquina.
Eso no lo convierte en la opción correcta en todos los casos. Node-RED sigue siendo la forma más rápida de montar una pasarela o un dashboard, y CODESYS sigue siendo el camino más corto para un equipo estandarizado en IEC 61131-3 o para lógica migrada desde PLC clásicos. El error es elegir por costumbre sin preguntarse quién mantendrá el programa y qué hace el proyecto.
Decide en cinco minutos: checklist
- ¿La lógica es control secuencial de máquina? Descarta Node-RED para esa parte.
- ¿Hay requisitos estrictos de tiempo de ciclo? Arduino IDE o CODESYS.
- ¿Fabricas en serie y el coste por unidad importa? Arduino IDE toma ventaja.
- ¿El equipo viene de PLC tradicionales? CODESYS toma ventaja.
- ¿La mayor parte del proyecto es datos, integración y visualización? Node-RED toma ventaja.
- ¿Otra persona mantendrá el programa dentro de cinco años? Un código versionado y documentado con asistencia de IA lo cubre; CODESYS sigue siendo la opción segura si quien lo mantiene solo trabaja en IEC 61131-3.
- ¿Programas con un asistente de IA? El código abierto (Arduino IDE, o Python y Node.js en el Raspberry PLC) toma la ventaja general.
Preguntas frecuentes sobre Node-RED, CODESYS y Arduino IDE
¿Node-RED puede sustituir el programa de un PLC?
Para supervisión, recogida de datos y dashboards, sí. Para control con requisitos de tiempo, enclavamientos o secuencias relevantes para la seguridad, no: Node-RED funciona sobre Node.js en Linux y no es determinista.
¿CODESYS es gratis en el Raspberry PLC?
El sistema de desarrollo se descarga gratis. El runtime, CODESYS Control for Raspberry Pi SL, necesita una licencia por equipo; sin ella funciona con todas las funciones durante dos horas y luego se para, lo que basta para pruebas en banco. Esa licencia cubre uso privado, pruebas y docencia; el uso comercial necesita otra licencia de CODESYS.
¿Puedo programar un M-Duino Arduino PLC o un ESP32 PLC en Ladder?
No con CODESYS. Usa OpenPLC, que admite Ladder y los demás lenguajes IEC 61131-3 en M-Duino Arduino PLC, Ardbox Arduino PLC y ESP32 PLC, o prográmalos en C/C++ con Arduino IDE.
¿Pueden funcionar Node-RED y CODESYS en el mismo Raspberry PLC?
Sí, para prototipos, pruebas y formación. CODESYS en el Raspberry PLC es experimental y no se recomienda en producción; para producción, programa el control en Python, Node-RED o C. Planifica cómo intercambian datos, por ejemplo por Modbus TCP o MQTT.
¿Cuál es el más fácil para empezar?
Node-RED, para datos y dashboards. Para control, alguien que empieza con formación eléctrica aprende Ladder en CODESYS u OpenPLC más rápido que C/C++.
Llévalo a la práctica
Node-RED, CODESYS y Arduino IDE encajan cada uno en un trabajo distinto. Mira un retrofit con ESP32 PLC, un simulador de monitorización y un dashboard Node-RED.
Caso de estudio
Una línea de envasado antigua. Datos nuevos a cuatro niveles.
Un retrofit con un ESP32 PLC que añade datos de OEE, energía y producto a una línea de envasado de alimentación que no daba ninguno.
Lee el caso de estudio
Simulador
Simulador Machine Monitor: OEE, alarmas y energía en una línea de envasado en vivo
Un ESP32 PLC, un gateway GateBerry y un panel TouchBerry monitorizan una línea: OEE, Pareto de paradas, alarmas por Telegram y datos MQTT en tiempo real.
Abre el simulador
PLC Solution Library
Un dashboard multiestación con gauges y LEDs en Node-RED
Cuatro estaciones ESP32 PLC remotas en una pantalla: un gauge por estación y un LED que se pone rojo cuando dejan de llegar datos.
Ver el ejemplo
Elige el hardware junto con el entorno. La guía de controladores compara PLC basados en Arduino, ESP32 y Raspberry Pi por E/S, protocolos y entorno de programación. La guía de OpenPLC explica Ladder en M-Duino Arduino PLC, Ardbox Arduino PLC y ESP32 PLC.
Elige un controlador industrialLee la guía de OpenPLC
¿Llevas un prototipo con Raspberry Pi a la planta? Descarga la guía gratuita "De prototipo a planta": selección de plataforma y entorno, cableado, comunicaciones, marcado CE y un calendario realista.
Más sobre programación de PLC industriales
- Configurar CODESYS en un Raspberry Pi PLC para automatización industrial (experimental)
- Programar en Ladder con CODESYS en un Raspberry PLC (experimental)
- Tutorial de Node-RED: proyecto de ejemplo
- PLC Arduino vs ESP32 vs Raspberry Pi: cuál elegir
- Aplicaciones industriales: 50 ejemplos reales por sector
Prueba los tres entornos en la misma planta: el Raspberry PLC ejecuta Node-RED y Python sobre Linux, junto a M-Duino Arduino PLC y ESP32 PLC programados con Arduino IDE.