Introducción
En este tutorial te guiaremos por el proceso de configuración y uso de la comunicación RS-485 con los PLCs Arduino y ESP32 de Industrial Shields. RS-485 es un estándar robusto y ampliamente utilizado en comunicación industrial, ideal para conectar dispositivos a larga distancia en entornos con interferencias. Ya sea que estés integrando tu PLC en una red Modbus o habilitando la comunicación con otros dispositivos RS-485, esta guía cubre todos los pasos esenciales tanto para la configuración hardware como software.
Este tutorial está diseñado para las siguientes familias de PLCs de Industrial Shields, garantizando compatibilidad y facilidad de uso:
- Familia M-Duino PLC
- Familia Ardbox PLC
- Familia ESP32 PLC
- ESP32 PLC 14
Al finalizar esta guía, tendrás un conocimiento completo de cómo configurar la comunicación RS-485, incluyendo el cableado, la configuración de librerías de software y la implementación de tu primer programa de comunicación. Tanto si eres un profesional experimentado como si eres nuevo en el mundo de los PLCs, este tutorial te proporciona las bases que necesitas para aprovechar RS-485 en tus proyectos de automatización.
Hardware
Hardware de la familia M-Duino PLC
El PLC M-Duino tiene un puerto RS-485 formado por los pines A+, B-, Y+ y Z-.
Esto significa que la comunicación con otro dispositivo mediante RS-485 puede ser:
- Half-Duplex (HD) usando A+ y B-.
- Full-Duplex (FD) usando A+, B-, Y+ y Z-.
Configuración de interruptores
Para usar la comunicación RS-485, configura el interruptor de comunicaciones de la siguiente manera:
- Pon el interruptor inferior 1 en OFF para usar la comunicación HD
- Pon el interruptor inferior 1 en ON para usar la comunicación FD
Conexiones
Normalmente, las conexiones entre dispositivos son:
- Para la comunicación HD: A+ con A+ y B- con B-
- Para la comunicación FD: A+ con Y+, B- con Z-, Y+ con A+ y Z- con B-.
Para más información, consulta las características técnicas
Hardware de la familia Ardbox PLC
Los PLC de la familia Ardbox tienen un puerto RS-485 formado por los pines A+, B-, Y+ y Z-.
Esto significa que la comunicación con otro dispositivo mediante RS-485 puede ser:
- Half-Duplex (HD) usando A+ y B-.
- Full-Duplex (FD) usando A+, B-, Y+ y Z-
Configuración de interruptores
Para usar la comunicación RS485 del Ardbox Relay, configura el interruptor de comunicaciones de la siguiente manera:
- Pon el interruptor superior 1 en ON
- Pon el interruptor superior 2 en OFF
- Pon el interruptor superior 3 en ON
- Pon el interruptor superior 4 en OFF
- Usa el interruptor superior derecho 2 para elegir entre HD y FD
- Pon el interruptor inferior derecho 1 en ON
- Pon el interruptor inferior derecho 2 en OFF
- Pon el interruptor inferior derecho 3 en ON
- Pon el interruptor inferior derecho 4 en OFF
Para usar la comunicación RS485 del Ardbox Analog, configura el interruptor de comunicaciones de la siguiente manera:
- Pon el interruptor superior 1 en OFF
- Pon el interruptor superior 2 en ON
- Pon el interruptor superior 3 en OFF
- Pon el interruptor superior 4 en ON
- Usa el interruptor superior derecho 1 para elegir entre HD y FD
Conexiones
Normalmente, las conexiones entre dispositivos son:
- Para la comunicación HD: A+ con A+ y B- con B-.
- Para la comunicación FD: A+ con Y+, B- con Z-, Y+ con A+ y Z- con B-.
Para más información, consulta las características técnicas.
Hardware de la familia ESP32 PLC
El ESP32 PLC tiene un puerto RS485 formado por los pines A+ y B-.
Configuración de interruptores
Para usar este puerto, comprueba que el interruptor 3 está en OFF en el interruptor de comunicaciones.
Conexiones
Conecta los pines A+ y B- al dispositivo que quieras para la comunicación RS485. Normalmente, las conexiones entre dispositivos son: A+ con A+ y B- con B-.
Para más información, consulta las características técnicas
Hardware del ESP32 PLC 14
El ESP32 PLC tiene un puerto RS485 formado por los pines A+ y B-.
Configuración de interruptores
Este dispositivo no necesita configurar ningún interruptor.
Conexiones
Conecta los pines A+ y B- al dispositivo que quieras para la comunicación RS485. Normalmente, las conexiones entre dispositivos son: A+ con A+ y B- con B-.
Para más información, consulta las características técnicas
Software
Instala la placa industrialshields-avr en el Arduino IDE. Puedes hacerlo siguiendo este tutorial.
Selecciona tu placa y modelo:
- Para la familia de PLC M-Duino: Herramientas > Placa > Industrial Shields AVR Boards > M-Duino [Extension] family y Herramientas > Modelo > M-Duino [Module]
- Para la familia de PLC Ardbox: Herramientas > Placa > Industrial Shields AVR Boards > Ardbox [Extension] family y Herramientas > Modelo > Ardbox [Module] HF+ w/HW RS-485
- Para la familia de PLC ESP32: Herramientas > Placa > Industrial Shields ESP32 Boards > ESP32 PLC Family y Herramientas > Modelo > ESP32 PLC [Module]
- Para el ESP32 PLC 14: Herramientas > Placa > Industrial Shields ESP32 Boards > 14 IOS PLC Family
Incluye la librería RS485 en tu código y usa RS485 para referirte al puerto RS485.
Asegúrate de que la velocidad y el modo duplex son los mismos en todos los dispositivos.
Algunas funciones básicas
1. Iniciar el puerto RS485:
RS485.begin(BAUDRATE, HALFDUPLEX);
2. Enviar datos:
RS485.write(tx);
3. Comprobar si hay datos disponibles y leerlos
if (RS485.available()) {
byte rx = RS485.read();
}
Consulta el siguiente código de prueba RS-485:
Llévalo a la práctica
RS-485 en proyectos reales: un analizador en el bus, una red que puedes romper y un maestro Modbus RTU con timeouts.
Caso de estudio
Tensión y corriente, en directo. Una alarma al pasar el límite.
Un analizador de corriente por RS-485 leído con Modbus RTU, un M-Duino 19R+ con salidas de relé y un Panel PC con un broker MQTT y Node-RED.
Lee el caso de estudio
Simulador
Haz funcionar una red Modbus RTU y TCP y encuentra el fallo
Un M-Duino 21 pregunta a cuatro esclavos Modbus RTU por RS-485 y sirve los datos por Modbus TCP. Apaga un esclavo o cambia la velocidad y encuentra el fallo en las tramas.
Abre el simulador
PLC Solution Library
Sondear esclavos Modbus RTU con timeouts y valores de 32 bits
Una función genérica de maestro Modbus RTU para un ESP32 PLC que devuelve los registros, o una respuesta vacía si falla, y utilidades para valores de 32 bits.
Ver el ejemplo