Integrando Raspberry Pi Pico W en un sistema de control industrial mediante OpenPLC y Modbus RTU
En un proyecto basado en STM32-IHM03 para control de motor PMSM, se ha añadido un nodo de E/S remota usando Raspberry Pi Pico W con lógica implementada en OpenPLC. La comunicación entre nodos se maneja mediante Modbus RTU sobre RS485, mientras que la coordinación del sistema la gestiona un Orange Pi 4 Pro con Node-RED. Esta arquitectura demuestra el uso de herramientas de código abierto para construir un sistema de automatización distribuido conforme con la norma IEC 61131-3.
Configuración de hardware y conexiones
El núcleo del sistema consta de tres componentes clave: STM32-IHM03 para control de motor, Raspberry Pi Pico W como módulo de E/S remota y Orange Pi 4 Pro como controlador central. Un bus CAN (usando el transceptor SN65HVD230) conecta el STM32 con la Orange Pi, mientras que un bus Modbus RTU de dos hilos basado en el chip MAX485 enlaza la Orange Pi con el Pico.
Para conectar Modbus y CAN a la Orange Pi, se utiliza un shield RS485 CAN HAT diseñado originalmente para Raspberry Pi. Adaptarlo a la Orange Pi requirió:
- Cambiar la frecuencia del reloj del MCP2515 de 8 MHz a 12 MHz en la superposición del Device Tree;
- Habilitar UART7 mediante
orangepi-configpara la comunicación con el transceptor SP3485; - Montar físicamente el shield sobre separadores debido a la posición del procesador bajo la placa.
La alimentación para todos los componentes la proporciona una fuente externa, lo cual no afecta la lógica operativa pero es crucial para la estabilidad del prototipo.
Dirección de pines y registros en OpenPLC
Al programar la Raspberry Pi Pico W en el Editor de OpenPLC, hay que hacer coincidir los pines físicos del RP2040 con las direcciones Modbus. La tabla siguiente muestra las asignaciones clave:
| Tipo de dato PLC | Notación | Rango de direcciones Modbus | Tamaño | Acceso |
|---------------|----------|----------------------|------|--------|
| Salidas discretas | %QX0.0 – %QX6.7 | 0–55 | 1 bit | LE |
| Entradas discretas | %IX0.0 – %IX6.7 | 0–55 | 1 bit | L |
| Entradas analógicas | %IW0 – %IW31 | 0–31 | 16 bit | L |
| Registros de retención | %QW0 – %QW31 | 0–31 | 16 bit | LE |
| Memoria (16/32/64 bit) | %MW / %MD / %ML | 32–171 | hasta 64 bit | LE |
Estas direcciones se usan al crear lógica en lenguajes de diagrama de escalera (LD) o diagrama de bloques de funciones (FBD). Por ejemplo, controlar un relé conectado a GPIO2 corresponde a %QX0.2 y dirección Modbus 2.
Implementación de lógica en OpenPLC v4
OpenPLC v4 permite desarrollar programas conformes con la norma IEC 61131-3. Para Raspberry Pi Pico W, están disponibles los siguientes lenguajes de programación:
- LD (Diagrama de escalera) — lógica de escalera de relés, intuitiva para ingenieros eléctricos.
- FBD (Diagrama de bloques de funciones) — representación gráfica de funciones y sus conexiones.
- ST (Texto estructurado) — lenguaje textual de alto nivel.
El programa se carga en el runtime de OpenPLC, que se ejecuta directamente en el microcontrolador. En este proyecto, el Pico actúa como esclavo Modbus RTU con dirección fija, como la 10. Todas las operaciones de lectura/escritura las inicia el dispositivo maestro —la Orange Pi mediante Node-RED.
Ejemplo de lógica simple: Al recibir una señal de "start" vía Modbus, se activa la bobina %QX0.0, cerrando el relé SRD-05VDC-SL-C. Mientras tanto, el estado de la entrada discreta %IX1.0 puede servir como señal de parada de emergencia.
Limitaciones del enfoque DIY en automatización industrial
A pesar de su flexibilidad y bajo costo, la solución con Raspberry Pi Pico y OpenPLC tiene limitaciones significativas para uso industrial:
- Falta de aislamiento galvánico en entradas/salidas hace vulnerable al sistema a interferencias de equipos de potencia.
- Conectores no estándar (p. ej., Micro-USB y headers de 2.54 mm) no resisten vibraciones en entornos industriales.
- Ausencia de watchdog de hardware, lo que aumenta el riesgo de cuelgues sin reinicio.
- Soporte limitado de Modbus en OpenPLC v4: Escribir en registros de retención y bobinas puede requerir modificar el código fuente del runtime.
Estos sistemas son adecuados para formación, prototipado o tareas locales pequeñas, pero no para líneas de producción críticas.
Puntos clave
- Raspberry Pi Pico W puede servir como nodo de E/S remota en un sistema de automatización con OpenPLC.
- La comunicación Modbus RTU requiere una dirección adecuada de pines y registros según la documentación de OpenPLC.
- Adaptar el shield RS485 CAN HAT a Orange Pi es posible, pero implica editar el Device Tree y habilitar el UART requerido.
- OpenPLC v4 soporta la norma IEC 61131-3, pero queda corto funcionalmente en comparación con entornos industriales como CODESYS.
- Las soluciones DIY no son aptas para despliegue industrial sin protección adicional y estandarización de interfaces.
— Editorial Team
Aún no hay comentarios.