Go Down

Topic: Arduino Mega mit W5100 funktioniert nicht (Read 4367 times) previous topic - next topic

power-dodge

#60
Feb 04, 2018, 09:15 pm Last Edit: Feb 04, 2018, 09:18 pm by power-dodge
Hi,

doch wenn ich richtig gesehen hab schon.
Den Pin10 hatte ich auch verplant gehabt, aber diesen
möchte leider dringend das Ethernetmodul haben.

Daher im Modbus Adresse 10 wird der Pin 45 angesprochen.

Hier das Bild des Mega mit Pins:

Arduino Mega

Gruß

power-dodge

Hallo,

um eine bessere Übersicht zu haben habe ich einen neues Thema ausgemacht.
Wer so etwas sucht, wird es viel einfacher dadurch finden.
Denke ich mal...


Also das fertige Projekt ist hier zu finden:

Klick

Danke euch noch mal alle!!!

Gruß

power-dodge

Hallo,

noch mal ne Frage zu den W5100...

Weswegen kann die Verbindung verloren gehen?
Nach ein paar Stunden ist er nicht mehr erreichbar.
Wenn man an und ausmacht mit dem Mega funktioniert
alles wieder wie es soll.

Danke schon mal für die Tipps!

Gruß

HotSystems

#63
Feb 18, 2018, 04:31 pm Last Edit: Feb 18, 2018, 04:33 pm by HotSystems
Hallo,

noch mal ne Frage zu den W5100...

Weswegen kann die Verbindung verloren gehen?
Nach ein paar Stunden ist er nicht mehr erreichbar.
Wenn man an und ausmacht mit dem Mega funktioniert
alles wieder wie es soll.

Danke schon mal für die Tipps!

Gruß
Nach obiger Erklärung funktioniert es anschließend nicht mehr. ;)

Könnte mit der Betriebsspannung zu tun haben.

Wie betreibst du den Mega und den W5100 ?
Welche Spannung und wo angeschlossen ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Tommy56

Ich weiß nicht, wie sauber Deine Modbus-Installation arbeitet, aber der W5100 kann gleichzeitig nur 4 Verbindungen halten. Wenn die belegt sind, kann er nichts mehr annehmen.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

power-dodge

Hallo,

danke euch für die Antworten!

Spannung bekommen die komponente über
einen 5V 10A Netzteil. Hoffe da ist nichts faul,
muss ich mal nachmessen.

4 Verbindung zu IP Adressen oder 1 Modbusadresse
ist eine Verbindung?
Ach ja Verbunden wird nur zu einem Gerät, eine Raspi.

Oben in ein Posts weiter ist Weiterleitung,
wo es dann weiter ging.
Ob es da sauber genug Modbus drauf ist,
kann ich nicht sagen. Da keine Erfahrung.

Da wo es funktioniert blinken die kleinen Led's
bei dem W5100.
Wo es aber nicht mehr geht, blinken die nicht mehr.


Danke euch für die Tipps.

Gruß

combie

Ich tippe auf ungeschickten Umgang mit der dynamischen Speicherverwaltung.
*meiner Kristallkugel sei Dank*
Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

power-dodge

Danke Dir für die Antwort!

Wie kann ich es feststellen das es so sei?
Oder auch wie den beheben?

Gruß

power-dodge

Hallo,

hab erst mal nur ModBus stehen lassen, Werde dieses heute und morgen mal testen.
Wenn es da streikt dann wird es wohl daran liegen.

Was meint Ihr kann man dies dann so eingrenzen?:

Code: [Select]
#include <SPI.h>

#include <Ethernet.h>



#include "Mudbus.h"


int sensorwert; // LM35 Temperatur auslesen.
int temperatur = 0; //Unter d

Mudbus Mb;

//Function codes 1(read coils), 3(read registers), 5(write coil), 6(write register)

//signed int Mb.R[0 to 125] and bool Mb.C[0 to 128] MB_N_R MB_N_C

//Port 502 (defined in Mudbus.h) MB_PORT



void setup()

{

  uint8_t mac[]     = { 0x90, 0xA2, 0xDA, 0x00, 0x51, 0x06 };
  uint8_t ip[]      = { 192, 168, 178, 70 };
  uint8_t gateway[] = { 192, 168, 178, 1 };
  uint8_t subnet[]  = { 255, 255, 255, 0 };
  Ethernet.begin(mac, ip, gateway, subnet);

  //Avoid pins 4,10,11,12,13 when using ethernet shield


}



void loop() {

  Mb.Run();
 
  //Ausgänge 2-13, anstatt 10 ist 45
 
  analogWrite(2, Mb.R[2]);
 
  analogWrite(3, Mb.R[3]);
 
  analogWrite(4, Mb.R[4]);
 
  analogWrite(5, Mb.R[5]);
 
  analogWrite(6, Mb.R[6]);
 
  analogWrite(7, Mb.R[7]);
 
  analogWrite(8, Mb.R[8]);
 
  analogWrite(9, Mb.R[9]);
 
  analogWrite(45, Mb.R[10]);
 
  analogWrite(11, Mb.R[11]);
 
  analogWrite(12, Mb.R[12]);
 
  analogWrite(13, Mb.R[13]);

  // Digitale Eingänge herauslesen und zu Modbus übergeben:
  //Pin31
  Mb.R[14] = digitalRead(31);

  //Pin33
  Mb.R[15] = digitalRead(33);

  //Pin35
  Mb.R[16] = digitalRead(35);

  //Pin37
  Mb.R[17] = digitalRead(37);

  //Pin39
  Mb.R[18] = digitalRead(39);

  //Pin41
  Mb.R[19] = digitalRead(41);

  //Pin43
  Mb.R[20] = digitalRead(43);

  //Pin47
  Mb.R[21] = digitalRead(47);

  //Pin49
  Mb.R[22] = digitalRead(49);

  //Pin53
  Mb.R[23] = digitalRead(53);


  // Analoge Eingänge herauslesen und zu Modbus übergeben:

  //Pin Analog 0
  Mb.R[24] = analogRead(0);

  //Pin Analog 1
  Mb.R[25] = analogRead(1);

  //Pin Analog 2
  Mb.R[26] = analogRead(2);

  //Pin Analog 3
  Mb.R[27] = analogRead(3);

  //Pin Analog 4
  sensorwert = analogRead(4); // LM35 am Pin A4 Platine Mega - Modbus
  temperatur = map(sensorwert, 0, 307, 0, 150);
  Mb.R[28] = temperatur;
}


Danke euch.

Gruß

agmue

Du könntest zusätzlich eine Herzschlag-LED zur Diagnose blinken lassen, selbstverständlich mit millis().
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

power-dodge

Hey,

danke für den Tipp!

Werde vorerst so lassen. Vorm schlafen
mache ich eh aus und wenn es hängen
bleibt. Entweder gibt es ne Disko oder
es leuchtet nicht und über Pir geht auch
eine Lampe nicht an.

Mal sehen ob es überhaupt mal länger
funktioniert wie vorher.

Toi toi toi...

Gruß

power-dodge

Hallo,

hängte sich wieder auf. 
Mit einem TCP Testprogramm beim ersten 
Verbindung gabs Timeout. Beim zweiten 
gings wieder, aber wie es aussah startete
das System neu.

Soll mann vielleicht was anderes anstatt Modbus nehmen?

Gruß

Go Up