Ir al contenido

Ethernet es un protocolo de comunicación muy utilizado en redes de área local (LAN), que ofrece transferencia de datos a alta velocidad y una conectividad fiable a distancias mayores que otros métodos de comunicación serie. Ethernet usa un modelo de comunicación más complejo que los protocolos serie como TTL, con una transmisión basada en paquetes que incluye mecanismos de detección de errores. Esto lo hace muy fiable, incluso en entornos con mucho ruido eléctrico o a largas distancias, y convierte a Ethernet en la opción preferida para dispositivos en red, tanto en aplicaciones de consumo como industriales.

En entornos industriales, Ethernet se usa cada vez más para conectar controladores lógicos programables (PLC), sensores, actuadores y otros equipos de automatización en una red robusta y escalable. Su alta velocidad de transferencia permite monitorizar y controlar procesos complejos en tiempo real. La versatilidad de Ethernet incluye también su capacidad para admitir varios protocolos de comunicación, como Modbus TCP/IP, lo que la convierte en una solución flexible para integrar sistemas diversos en una misma red.

Solo la familia de PLC M-Duino tiene conectividad Ethernet. Los PLC de la familia Ardbox no la tienen.

Hardware

Los PLC de la familia M-Duino tienen un puerto Ethernet, situado en la parte superior del PLC. La conectividad Ethernet la proporciona el chip W5500 integrado, un controlador Ethernet con pila TCP/IP implementada por hardware.

Para usar Ethernet solo necesitas un cable Ethernet. La velocidad de enlace del W5500 es de 100 Mbps, así que un cable CAT 5 es suficiente para el PLC. 

El chip Ethernet del PLC no admite auto MDI-X (también llamado "auto crossover"), por lo que, si lo conectas a otro dispositivo del mismo tipo que tampoco lo admite, tendrás que usar un cable cruzado. No es necesario con switches o PC, pero sí en algunos casos, como al conectar dos M-Duino directamente.

Recuerda alimentar correctamente el PLC con una fuente de alimentación de 12-24V.

Software 

El paquete de placas de Industrial Shields incluye una librería "Ethernet" pensada para facilitar el uso de este protocolo. La librería incluye varios ejemplos; puedes consultarlos en File > Examples > Ethernet dentro de Arduino IDE.

Echa también un vistazo al siguiente programa. Este código sirve como herramienta de diagnóstico para comprobar que el puerto Ethernet funciona correctamente. Establece una conexión con "www.google.com" a través del controlador W5500 usando una configuración IP por DHCP.

#include 

#define REMOTE "www.google.com"

const uint16_t port = 80;
uint8_t mac[] = {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0x01};

EthernetClient c;

////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
  Serial.begin(9600L);
  Serial.println("ethernet started");

  test();
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
  if (!c.connected()) {
    Serial.println("Disconnected");
    test();
  }
  delay(1000);
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void test() {
  //if you need a DHCP IP use this configuration:
  Ethernet.begin(mac);
          
  switch (Ethernet.hardwareStatus()) {
    case EthernetW5100:
      Serial.println("W5100 found");
      break;

    case EthernetW5200:
      Serial.println("W5200 found");
      break;

    case EthernetW5500:
      Serial.println("W5500 found");
      break;

    default:
      Serial.println("Unknown hardware");
      break;
  }

  uint8_t MAC[6];
  Ethernet.MACAddress(MAC);
  for (int i = 0; i < 6; ++i) {
    if (i > 0) {
      Serial.print(':');
    }
    Serial.print(MAC[i], HEX);
  }
  Serial.println();

  //use this block with DHCP IP:
  Serial.println(Ethernet.localIP());
  if (Ethernet.localIP() == IPAddress({0,0,0,0})) {
    Serial.println("Local IP FAIL");
  } else {
    Serial.println("Local IP OK");
    if (c.connect(REMOTE, port)) {
      Serial.println("Remote connection OK");
    } else {
      Serial.println("Remote connection FAIL");
    }
   }
}

Para más información sobre la librería Ethernet, consulta Ethernet | Arduino Reference.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.