Ampliar las E/S por I2C con M-Duino o Ardbox
La estación de bombeo crece: un segundo depósito, más válvulas, más sensores, y el PLC se queda sin terminales. El siguiente paso es la expansión, no un segundo controlador sin relación. El M-Duino y el Ardbox exponen un bus I2C, y ese bus es la forma de añadir más entradas y salidas mientras un solo controlador sigue ejecutando la lógica.
Qué aprenderás
- Explicar los papeles de maestro y esclavo en un bus I2C.
- Encontrar los dispositivos del bus con un escaneo y evitar choques de dirección.
- Decidir entre expansión I2C y un segundo PLC con Modbus.
Un maestro, varios esclavos
En un bus I2C, un dispositivo es el maestro y habla con los demás, que son esclavos. El maestro inicia cada conversación, y los esclavos nunca hablan directamente entre sí. Tu M-Duino es el maestro y ejecuta la lógica principal. Los esclavos pueden ser módulos expansores de E/S, sensores, conversores u otra placa basada en Arduino programada como esclavo I2C. Amplían lo que tu programa puede ver y accionar, no ejecutan la lógica de la máquina.
Cada esclavo tiene una dirección de 7 bits y todas las direcciones del bus deben ser únicas. No hay un límite fijo de módulos de expansión: depende de las direcciones que sigan disponibles y de la capacidad eléctrica del bus, que dependen del tipo de cable, de su longitud y del número de dispositivos. Empieza con pocos módulos y prueba.
Industrial Shields no ofrece una biblioteca I2C propia. Se usa la biblioteca estándar de Arduino Wire.
Configura el bus en el M-Duino
- Conecta SDA y SCL de cada dispositivo a los terminales SDA y SCL del M-Duino, y comparte masa.
- Revisa los interruptores SCL y SDA: estos terminales se comparten con otras funciones y los interruptores seleccionan cuál está activa. Para I2C deben seleccionar SCL y SDA, no las entradas. Consulta la sección 9 de la guía de usuario de tu modelo.
- No necesitas resistencias pull-up externas en tramos cortos, ya que el M-Duino las incluye. Para cables largos o velocidades mayores, añade pull-ups externas entre 1 kΩ y 4,7 kΩ.
Pruébalo: escanea el bus
#include <Wire.h>
void setup() {
Serial.begin(9600);
Wire.begin();
for (byte address = 1; address < 127; address++) {
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("Found device at 0x");
Serial.println(address, HEX);
}
}
Serial.println("Scan finished");
}
void loop() {}
Resultado esperado: el Monitor Serie lista la dirección de cada dispositivo conectado y luego imprime Scan finished.
Si falla: si no aparece ningún dispositivo, comprueba que SDA y SCL no estén intercambiados, que los interruptores seleccionen I2C, que el dispositivo tenga alimentación y masa común, y que no haya dos dispositivos con la misma dirección.
Por qué expandir en lugar de añadir un segundo PLC
Dos PLC independientes necesitan su propio enlace y su lógica para mantenerse sincronizados, lo que añade complejidad a lo que en realidad es una sola máquina. La expansión mantiene un solo programa en un solo maestro controlando todas las entradas y salidas, más simple de razonar y depurar.
Ejercicio: planifica las E/S antes de cablear
Rellena una tabla como esta para tu propia máquina antes de la instalación:
| Dispositivo | Señal | Tipo | Longitud de cable al maestro I2C |
|---|---|---|---|
| Maestro | Marcha, parada de emergencia | 2 entradas | en el mismo cuadro |
| Maestro | Bomba 1, piloto | 2 salidas | en el mismo cuadro |
| Expansión 1 | Nivel depósito 2 | 1 entrada analógica | a medir |
| Expansión 1 | Válvulas 1 a 4 | 4 salidas | a medir |
La última columna importa: I2C es un bus de corto alcance, así que planifica la distribución física en consecuencia, en lugar de suponer que cualquier distancia de cableado funcionará.
Cuándo la expansión no es la respuesta
Si las E/S extra están físicamente lejos del PLC, en otro edificio y no en el mismo cuadro, un segundo PLC que hable Modbus con el primero suele encajar mejor que estirar un bus I2C. La expansión resuelve quedarse sin terminales en un cuadro, no repartir E/S por una planta.
Para profundizar
- I2C Bus en el PLC Arduino para automatización industrial
- Gama de PLC Arduino: M-Duino y Ardbox
- Cómo elegir entre M-Duino y Ardbox para retrofit industrial
Siguiente lección: un primer panel para la estación de bombeo. Haz primero el cuestionario de abajo.
There are no comments for now.