Wie Daten bei Software (mit C# am PC) übers Netzwerk an µC übermitteln?

OP #4472857
Lesenswert?

Guten Tag zusammen,

mich interessiert aktuell wie denn der generelle Ablauf einer Verbindung 
zwischen PC Software und µC über Netzwerk stattfindet?

Konkret möchte ich mir ein kleines Tool bastelen (mit C# am Windows PC) 
welches mir Daten aufs Netzwerk schickt, von einem µC angenommen wird 
der diese Daten entpackt und auf den I2C Bus ausgibt.

Selbstverständlich soll auch ein Lesen möglich sein.

Nun ist es so dass ich in C# und C jeweils Grundlagen besitze, sprich 
ich kann auf beiden Welten kleine Programme schreiben und I2C bzw. TWI 
Verbindungen laufen auch stabil.

Was mir allerdings fehlt ist das Verständnis wie die Daten eingelesen 
und ausgegeben werden.

Vielleicht könnt ihr mir ein wenig helfen? Danke :)

Gruß
Matthias
#4472928
Lesenswert?

1
String tmp; 
2

3
#define BAUD_RATE 9600
4

5
void setup() {
6
  Serial.begin(BAUD_RATE);
7
  Serial1.begin(BAUD_RATE); 
8
  while (!Serial) {
9
    ; // wait for serial port to connect. Needed for Leonardo only
10
  }
11
  Serial.println("Hello Cactus Micro!");
12
  
13
  // Enable esp8266 
14
  pinMode(13, OUTPUT);
15
  digitalWrite(13, HIGH);  
16
};
17

18
void loop() {
19

20
  while (Serial1.available() > 0)  {
21
    tmp += char(Serial1.read());
22
    delay(2);
23
  }
24

25
  if(tmp.length() > 0) {
26
    Serial.println(tmp);
27
    tmp = "";
28
  }
29

30
  if (Serial.available()) {
31
    Serial1.write(Serial.read());
32
  }
33
}

Quelle 
https://github.com/AprilBrother/cactus-micro-r2/blob/master/libraries/CactusMicro/examples/hardwareSerialMonitor/hardwareSerialMonitor.ino
bildet dir eine brücke zwischen einem ESP8266 und einer seriellen usb 
schnittstelle ab...
das ding verhält sich letztendlich wie eine serielle schnittstelle also 
eher kein hexenwerk ... ^^



http://wiki.aprbrother.com/wiki/Cactus_Micro_R2_Tutorial
http://www.esp8266.com/
Gast #4473089
Lesenswert?

Matthias M. schrieb:
> mich interessiert aktuell wie denn der generelle Ablauf einer Verbindung
> zwischen PC Software und µC über Netzwerk stattfindet?

Hallo,
es gibt keinen "generellen Ablauf".
Die Frage lautet:
Wie möchtest du das die Verbindung abläuft.

Frage 1:
Welche Art von Netzwerk
 - Ethernet
 - Seriell: RS232 /RS 485 ...
 - ....
Frage 2:
 - Drathlos
 - Kabelgebunden


Frage 3:
Wir nehmen mal Ethernet basiert:

 - TCP/IP
 - UDP
 - OPC
 -OPC UA

im einfachsten Fall
hier wohl: TCP/IP  oder UDP


Vorschlag TIP:
Es gab im Rahmen von C# Tutorials mal ein Beispiel für ein
TCP/IP oder UDP basiertes Chatprogramm

Als Einstieg gut geeignet.

Es gibt auch µC seitig  genügend Tutorials (Senden <->Empangen).

Gruß
OP #4473808
Lesenswert?

Danke für die vielen Tips erstmal.

Kurze Frage noch zum XPort:

So ganz verstanden hab ich es leider noch nicht. Im Xport steckt ein 
32bit µC um den ich mich im Idealfall nicht sonderlich kümmere, richtig? 
Sprich ich stell meine IP über das Webinterface ein und der Xport 
schiebt mir dann die empfangenen Daten vom Ethernet TCP Stack auf den 
RS485 Bus in meinen µC. Dieser µC wiederum nimmt die Daten und packt Sie 
auf den I2C Bus.

Aber wie bringe ich die Daten von meiner Software am PC auf den Ethernet 
Bus?
Gast #4473882
Lesenswert?

Da PC's keine freie externe I2C Schnittstelle haben und diese ohnehin 
nur für sehr kurze Leitungen vorgesehen sind, rate ich zu einer anderen 
Schnittstelle. Zum Beispiel RS232, RS485 oder Ethernet.

Als Anregung, wie man sowas machen kann, schau Dir mal die zahlreichen 
NET-IO Projekte an. Meins findest du hier: 
http://stefanfrings.de/net_io/index.html

Ich bevorzuge Textbasierte Kommunikationsprotokolle, weil man die ohne 
großen Aufwand mitlesen und manuell prüfen kann. Die Fehlersuche 
gestaltet sich auf deise Weise recht einfach. Vor allem dann, wenn man 
die Kommandos auch noch manuell absetzen kann.
Gast #4473892
Lesenswert?

> Sprich ich stell meine IP über das Webinterface ein und der Xport
> schiebt mir dann die empfangenen Daten vom Ethernet TCP Stack auf
> den RS485 Bus in meinen µC.

Im Prinzip ja. Über das Webinterface konfigurierst du den Xport. 
Anschließend öffnest du mit deinem PC Programm einen IP-Socket. Die 
Daten werden dann transparent bidirektional zum Seriellen port 
durchgereicht.

Aus Sicht der PC Anwendung ist es so, als hättest du eine serielle 
Verbindung über RS232 aufgebaut. Nur dass das Timing ein bisschen anders 
ist und du natürlich für den Verbindungsaufbau selbst andere Befehle 
brauchst.

Bei Digicom findest du ähnliche Produkte unter dem namen "Digi Connect". 
Sie sind wirklich einfach anzuwenden - nur leider teuer.

Weniger zuverlässig, dafür aber sehr billig und noch einfacher 
anzuwenden sind Bluetooth Module, zum Beispiel BTM-222, HC-05 oder 
HC-06. Da bist du dann schon ab 5 Euro dabei.

> Aber wie bringe ich die Daten von meiner Software am PC auf den
> Ethernet Bus?

Na deine Software muss eine Verbindung über Ethernet aufbauen, nennt man 
auch IP-Socket. Siehe 
http://www.codeplanet.eu/tutorials/csharp/4-tcp-ip-socket-programmierung-in-csharp.html
Gast #4473928
Lesenswert?

Hallo,

ja der ESP8266 ist preislich schon ein Hammer,... was der kostet dafür 
bekommt man nicht mal das Kabel mit den Steckern.

Nachteil, es ist Funk und wenn man kein 2tes Netz hat dann hängt das 
Ding mit am Internet,... .

Für eine kleine Applikation, nimm einen Arduino oder Raspberry Pi,... 
ist man ratz fatz fertig.

Grüße

Sebastian
#4474269
Lesenswert?

solange man keine portweiterleitung einrichtet, macht das garnix ob ein 
esp8266 es am inet hängt... (ein router wird eh vorhanden sein...)

die gibt es auch von conrad/franzis gleich mit nano dran für 25€ das 
stück

http://iot.fkainka.de/technische-daten

die dinger funktionieren einfach und das netzwerk wird wie jedes andere 
streamobjekt angesprochen (seriel ect...)


blätter mal den advendskalender durch... der zeigt es eigentlich schritt 
für schritt wie die kommunikation mit anderen teilnehmern läuft...

das trau ich einem 13jährigen problemlos zu...


allerdings will ich wohl nochmal auf die Logo!
http://w3.siemens.com/mcms/programmable-logic-controller/de/logikmodul-logo/seiten/produktneuheit.aspx 
hinweisen, die im produktiven umfeld wohl keine schlecht wahl wäre...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren