Ir al contenido

Comunicación cableada básica: RS485, RS232, I2C, SPI y serie TTL

Un M-Duino o un Ardbox raramente trabaja solo. Habla con sensores, variadores, HMIs y otros PLCs mediante uno de un puñado de protocolos cableados. Elegir el correcto empieza con una pregunta simple: ¿este enlace conecta exactamente dos dispositivos, o necesita compartir una línea entre varios?

Qué aprenderás

  • Distinguir enlaces punto a punto de buses compartidos.
  • Elegir el protocolo adecuado para un proyecto.
  • Evitar los cuatro errores de cableado detrás de la mayoría de fallos RS485.
  • Ejecutar una primera prueba en RS485 e I2C.

Dos topologías, cinco protocolos

Protocolos punto a punto frente a protocolos de bus compartido

RS232 y serie TTL conectan exactamente dos dispositivos mediante cables dedicados, el caso clásico siendo un PLC hablando con un único PC o un único sensor. SPI también es punto a punto en la práctica, un PLC a un chip, aunque la señalización eléctrica es distinta de RS232 o TTL. RS485 e I2C en cambio comparten una línea entre varios dispositivos, cada uno identificado por una dirección, que es lo que los hace la opción natural cuando un PLC necesita hablar con muchos dispositivos sin tender un cable dedicado a cada uno.

RS485: el bus de campo industrial

RS485 es la opción por defecto para cablear varios dispositivos de campo a un PLC a lo largo de tiradas de cable largas por una planta, por eso aparece como puerto dedicado y por eso Modbus RTU funciona sobre él. Varios dispositivos comparten el mismo par de cables, cada uno con su propia dirección.

Los cuatro errores detrás de la mayoría de fallos RS485

  1. Cables A y B invertidos. Los fabricantes etiquetan el par de forma inconsistente. Si nada se comunica, invertir los dos cables en un dispositivo es la primera prueba.
  2. Terminación ausente o duplicada. Un bus necesita una resistencia de terminación en cada uno de sus dos extremos físicos, no en medio ni en cada dispositivo.
  3. Sin referencia común. Los dispositivos alimentados desde fuentes distintas pueden necesitar sus masas referenciadas, según indiquen sus hojas de datos.
  4. Configuraciones distintas. Velocidad, paridad y bits de parada deben ser idénticos en todos los dispositivos del bus.

¿Half duplex o full duplex?

Half duplex es el caso habitual en un bus RS485: los dispositivos comparten un par y se turnan para hablar. El Ardbox admite solo half duplex. La familia M-Duino es la que ofrece ambos modos, que se seleccionan con un interruptor físico del PLC (una característica exclusiva de la familia M-Duino). En un M-Duino, comprueba la posición de ese interruptor en la documentación de tu modelo, porque el modo que indicas en el sketch debe coincidir con él.

Una primera prueba RS485

Este sketch muestra en el Monitor Serie cada byte que llega al puerto RS485. Usamos half duplex porque funciona tanto en el Ardbox como en el M-Duino. Las placas de Industrial Shields proporcionan el objeto RS485; úsalo en lugar de un puerto serie de hardware numerado.

#include <RS485.h>

void setup() {
  Serial.begin(9600);
  RS485.begin(9600, HALFDUPLEX);
}

void loop() {
  if (RS485.available()) {
    Serial.write(RS485.read());
  }
}

En un M-Duino, coloca el interruptor en half duplex antes de probar. Si más adelante pasas a full duplex, cambia el sketch a FULLDUPLEX y el interruptor con él.

RS232 y serie TTL: enlaces simples punto a punto

RS232 sigue siendo habitual para conectar con equipos antiguos que solo hablan ese estándar. Serie TTL es la misma idea a niveles de tensión lógicos, usado a menudo para enlaces cortos, dentro de la placa o del cuadro, en lugar de tiradas largas. Nunca conectes una línea RS232 directamente a un pin TTL: sus niveles de tensión son distintos y necesitas un conversor de niveles.

I2C y SPI: buses de corto alcance para periféricos cercanos

I2C y SPI están pensados para distancias cortas, típicamente de unos centímetros a un par de metros, conectando el PLC a módulos de expansión cercanos o placas de sensores en lugar de dispositivos repartidos por una planta. I2C comparte un bus entre varios dispositivos con dirección propia, mientras que SPI dedica una línea de selección de chip por dispositivo aunque las líneas de datos sean compartidas.

Una primera prueba I2C: encuentra qué hay en el bus

Este sketch Arduino estándar escanea el bus I2C e imprime la dirección de cada dispositivo que responde. Es la forma más rápida de confirmar que un dispositivo está bien cableado.

#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("Device found at 0x");
      Serial.println(address, HEX);
    }
  }
}

void loop() {
}

Elegir un protocolo para tu proyecto

Como punto de partida: llegar a varios dispositivos repartidos por la planta apunta a RS485. Hablar con un único chip cercano o placa de expansión apunta a I2C o SPI. Conectar con equipos antiguos de un solo dispositivo apunta a RS232 o serie TTL. El cableado y conector exactos de cada protocolo en tu variante de placa están en los diagramas de pinout de la lección anterior.

Siguiente lección: Ethernet, dar al PLC una dirección estable y una primera conexión TCP. Haz primero el cuestionario de abajo para comprobar lo aprendido.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.

1. ¿Cuál de estos buses dedica una línea de selección de chip a cada dispositivo?
2. Un PLC debe leer ocho contadores de energía repartidos por 200 metros de planta. ¿Qué enlace encaja mejor?