Go Down

Topic: Problema para conectar Ethernet Wiznet W5100 con PLC (Read 687 times) previous topic - next topic

ROBERTOPLA

Dec 13, 2017, 08:33 am Last Edit: Oct 01, 2018, 06:55 pm by surbyte Reason: Agregado de etiquetas de código
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.

Code: [Select]
#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.

surbyte

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)..

blas_g

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.

surbyte

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.

Go Up