Problema para conectar Ethernet Wiznet W5100 con PLC

Hola a todos. tengo un arduino UNO y una Ethernet Shield Wiznet W5100 y quiero conectarla a un PLC Siemens S7-1200 para que me lea los datos de un sensor ultrasonico Hc-sr04, buscando en vídeos tutoriales y foros vi el código para poder conectar ambos aparatos (arduino - plc) a los cual le acople el resto del código para hacer funcionar el sensor. Pero tengo un problema y es que no puedo hacer "ping" y comprobar la conexión con el arduino apareciéndome la frase "Host de destino inaccesible."

  • ya verifique que mi PC y el arduino estén en la misma subred.
  • verifique que la shield, cable, router y los materiales están buenos, ya que hice pruebas con los ejemplos de la librería de ethernet como servidor y luego poniendo la ip en google y ningún drama.
  • probé con el mismo código pero con otras librerías (SPI.h, Ethernet.h, Modbus.h, ModbusIP.h) y puedo hacer "ping" pero cuando pongo la librería que necesito para enlazar el arduino con el plc me sale error al momento de compilar el arduino (Se encontraron múltiples librerías para "EtherCard.h")

adjunto el código para que revisen y vean si me pueden ayudar.

#include <EtherCard.h>
#include <ModbusIP_ENC28J60.h>
#include <Modbus.h>

#define Ptrig 7


const int SENSOR_IREG = 100;  //direccion modbus para el dato del sensor.
const int Pecho= A0;
ModbusIP mb;
long duracion, distancia;  
long ts;                                                //para modbus
                                   
byte mac[]= {0XDE, 0XAD, 0XBE, 0XEF, 0XFE, 0XED};      // MAC
byte ip[]= {192, 168, 0, 6};                           // IP

void setup() 
{                
Serial.begin (9600);   // inicializa el puerto seria a 9600 baudios



mb.config(mac,ip);                                 // configuracion de la tarjeta
mb.addIreg (SENSOR_IREG);
ts = millis ();

pinMode(Pecho, INPUT);     // define el pin 0 como entrada (echo)
pinMode(Ptrig, OUTPUT);    // define el pin 7 como salida  (triger)
pinMode(13, 1);            // Define el pin 13 como salida
}

void loop() {

digitalWrite(Ptrig, LOW);
delay(2);
digitalWrite(Ptrig, HIGH);   // genera el pulso de triger por 10ms
delay(10);
digitalWrite(Ptrig, LOW);

duracion = pulseIn(Pecho, HIGH);
distancia = (duracion/2) / 29;            // calcula la distancia en centimetros


if (distancia >= 500 || distancia <= 0){  // si la distancia es mayor a 500cm o menor a 0cm 
 Serial.println("---");                  // no mide nada
}
else {
 Serial.print(distancia);           // envia el valor de la distancia por el puerto serial
 Serial.println("cm");              // le coloca a la distancia los centimetros "cm"

}
mb.task();
if (millis()>ts+1000) 
ts= millis();
mb.Ireg(SENSOR_IREG, analogRead(Pecho));




delay(500);                                // espera 400ms para que se logre ver la distancia en la consola
}

Espero me puedan ayudar ya que estoy casi desesperado, por que le doy y le doy vueltas y nada.

No has leído las normas del foro y primero has posteado un código sin etiquetas. Mira el privado que te envié para que lo corrijas.
Tampoco nos dices que hardware acompaña al arduino ni los enlaces a las librerías que refiere ese código (usa etiqueta en cada caso)..

Hola buenas tardes, me gustaría me dijeras si es posible como pudiste resolver la conexión de arduino, la tarjeta t5100 y la conexión con S7-1200.

Estoy teniendo los mismos problemas y la verdad no se como resolverlo.

Saludos y gracias de antemano.

Hilo cerrado por revivir un tema de mas de 120 dias.
Lee las normas del foro y crea tu consulta en la sección adecuada : Software si nos quedamos en lo que se esta consultando.