Skip to Content

Fundamentos de Ethernet: configuración de IP y una primera conexión TCP

Ethernet es la columna vertebral de la mayoría de redes de planta. Esta lección da al PLC una dirección estable, confirma que es alcanzable y abre una primera conexión TCP que puedes probar desde tu ordenador. Es la base sobre la que se construyen Modbus TCP y MQTT en cursos posteriores.

Qué aprenderás

  • Elegir entre DHCP y una dirección IP fija.
  • Configurar el puerto Ethernet e imprimir la dirección del PLC.
  • Verificar la conectividad con ping.
  • Ejecutar un servidor TCP eco y probarlo desde un PC.

Necesitas: un M-Duino con Ethernet, un cable Ethernet y un PC en la misma red.

DHCP frente a una dirección IP fija

DHCP es la forma más rápida de conectarse durante el desarrollo: el PLC pide una dirección automáticamente a tu router. En producción, una IP fija es casi siempre mejor opción: la dirección del PLC no cambia tras reiniciar el router, y las reglas de firewall y la configuración del SCADA siguen siendo predecibles.

La dirección MAC

Cada dispositivo en una red Ethernet necesita una dirección MAC única. Usa la impresa en tu PLC o la indicada en su documentación. Si alguna vez tienes que definir una tú, debe ser única en la red: dos dispositivos con la misma MAC provocan problemas de conexión intermitentes y difíciles de diagnosticar.

#include <Ethernet.h>

// Sustituye por la dirección MAC de tu PLC
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 50);

void setup() {
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  Serial.print("PLC address: ");
  Serial.println(Ethernet.localIP());
}

void loop() {
}

Elige una dirección libre en tu red y dentro de la misma subred que tu PC. Para DHCP, llama a Ethernet.begin(mac) sin la dirección.

Confirmar que el PLC es alcanzable

Antes de escribir lógica de aplicación, confirma que la capa de red funciona. Desde un PC en la misma red, ejecuta ping 192.168.1.50 con la dirección que configuraste. Si no responde, revisa el cable, el puerto del switch y que PC y PLC estén en la misma subred antes de sospechar de un problema de código.

Un primer servidor TCP: prueba de eco

Con la capa de red confirmada, un servidor TCP que devuelve lo que recibe es la forma más simple de demostrar que una conexión real funciona. Este sketch escucha en el puerto 5000.

#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 50);
EthernetServer server(5000);

void setup() {
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop() {
  EthernetClient client = server.available();
  if (client && client.available()) {
    client.write(client.read());
  }
}

Pruébalo desde tu PC

Abre un terminal y conéctate con telnet 192.168.1.50 5000 (o nc 192.168.1.50 5000). Escribe algunos caracteres: cada uno vuelve desde el PLC. Esa es tu primera conexión TCP funcionando.

Más adelante en esta ruta de aprendizaje usarás el mismo mecanismo en el puerto 502, el puerto estándar de Modbus TCP.

Si la prueba falla

  1. Sin respuesta al ping: cable, puerto del switch o subred incorrecta.
  2. El ping funciona pero la conexión es rechazada: revisa el número de puerto en el sketch y en tu comando, y cualquier firewall del PC.
  3. Comportamiento intermitente: busca una IP o MAC duplicada en la red.

Siguiente lección: opciones inalámbricas, una guía de decisión para leer antes de pedir el hardware. Haz primero el cuestionario de abajo para comprobar lo aprendido.

Rating
0 0

There are no comments for now.

to be the first to leave a comment.