Forum: Mikrocontroller und Digitale Elektronik ESP32 oder 86 für SMA Modbus TCP/IP


von Daniel E. (everyday_fun69)


Lesenswert?

Grüße in die Runde und schöne Ostern,

Würde gern alte Beiträge aufwärmen

Beitrag "PI 4 mit PIC18F Kommunikation"

Beitrag "PIC mit Ethernet für SMA Modbus TCP auslesen"

und denke mit einem ESP 32 oder 86 sollte der Modbus TCP/ IP „einfacher“ 
auslesen zu gehen ?

Was denkt ihr ?

Danke

von Harald K. (kirnbichler)


Lesenswert?

Daniel E. schrieb:
> und denke mit einem ESP 32 oder 86 sollte der Modbus TCP/ IP „einfacher“
> auslesen zu gehen ?

Warum? Was soll daran "einfacher" gehen? Du brauchst einen µC, auf dem 
Du einen IP-Stack zum Laufen bekommst. Ob der irgendein ARM, irgendein 
32-Bit-PIC oder ein ESPirgendwas ist, ist ziemlich wurscht.

Warum plenkst Du?

von Daniel E. (everyday_fun69)


Lesenswert?

Harald K. schrieb:
> Daniel E. schrieb:
>> und denke mit einem ESP 32 oder 86 sollte der Modbus TCP/ IP „einfacher“
>> auslesen zu gehen ?
>
> Warum? Was soll daran "einfacher" gehen? Du brauchst einen µC, auf dem
> Du einen IP-Stack zum Laufen bekommst. Ob der irgendein ARM, irgendein
> 32-Bit-PIC oder ein ESPirgendwas ist, ist ziemlich wurscht.
>
> Warum plenkst Du?


Ja, und nen Stack zum laufen zu bekommen ist ja kein Problem scheinbar 
für Dich ? Für mich schon ..

von Harald K. (kirnbichler)


Lesenswert?

Bevor Du Dich mit unnötigen Details auseinandersetzt, solltest Du erst 
mal klären, was Du überhaupt willst.

Anscheinend willst Du mit einem Modbus-Gerät via Modbus/TCP 
kommunizieren. Weißt Du, welche Register dieses Gerätes Du auslesen 
willst und gegebenenfalls in welche Register Du Dinge hineinschreiben 
willst?

Wenn das Gerät Modbus/TCP verwendet, wird es irgendwie mit einem 
Netzwerk verbunden sein. WLAN ist hier eher ungebräuchlich, so etwas 
geschieht i.d.R. via Ethernet.

Wenn Du Deine Aufgabe mit einem Microcontroller umsetzen willst, 
solltest Du also einen Microcontroller verwenden, der mit Ethernet 
kommunizieren kann. Ein WLAN-fähiger Microcontroller wie ESP32 oder 
ESP8266 (ich nehme an, daß Du das mit "86" meinst) benötig also noch 
einen WLAN-Accesspoint oder -Router, um mit dem über Ethernet 
verbundenem Gerät kommunizieren zu können.

Was soll der Microcontroller mit den ermittelten Werten anstellen? Bzw. 
woher soll der Microcontroller die Werte nehmen, die er in irgendwelche 
Register des Modbus-Gerätes schreiben soll?

Auch diese Frage solltest Du klären, bevor Du Dir überhaupt Gedanken 
darüber machst, welche Art von Microcontroller Du einsetzt.

von Daniel E. (everyday_fun69)


Lesenswert?

Harald K. schrieb:
> Bevor Du Dich mit unnötigen Details auseinandersetzt, solltest Du erst
> mal klären, was Du überhaupt willst.
>

SMA Modbus Werte vom Homemanager 2.0 auslesen, hab ich schon mit einem 
Softwaretool für Windows für Modbus hinbekommen

> Anscheinend willst Du mit einem Modbus-Gerät via Modbus/TCP
> kommunizieren. Weißt Du, welche Register dieses Gerätes Du auslesen
> willst und gegebenenfalls in welche Register Du Dinge hineinschreiben
> willst?
>

Ja, will nur lesen! Nichts mehr ..

> Wenn das Gerät Modbus/TCP verwendet, wird es irgendwie mit einem
> Netzwerk verbunden sein. WLAN ist hier eher ungebräuchlich, so etwas
> geschieht i.d.R. via Ethernet.
>

Wenn ich das ganze bisher über LAN gemacht hat sollte das auch über WLAN 
gehen oder nicht ? IP Adresse die anzusprechen ist und Passwort für WLAN 
oder ? Ansonsten ebend LAN.

> Wenn Du Deine Aufgabe mit einem Microcontroller umsetzen willst,
> solltest Du also einen Microcontroller verwenden, der mit Ethernet
> kommunizieren kann. Ein WLAN-fähiger Microcontroller wie ESP32 oder
> ESP8266 (ich nehme an, daß Du das mit "86" meinst) benötig also noch
> einen WLAN-Accesspoint oder -Router, um mit dem über Ethernet
> verbundenem Gerät kommunizieren zu können.
>
Fritz Box/ Switch verbindet alle Teilnehmer

> Was soll der Microcontroller mit den ermittelten Werten anstellen? Bzw.
> woher soll der Microcontroller die Werte nehmen, die er in irgendwelche
> Register des Modbus-Gerätes schreiben soll?
>

Der Controller soll einen Tiefsetzsteller entsprechend Takten und 
regeln/ Strom messen, auch darüber habe ich mir Gedanken gemacht…

> Auch diese Frage solltest Du klären, bevor Du Dir überhaupt Gedanken
> darüber machst, welche Art von Microcontroller Du einsetzt.

von Harald K. (kirnbichler)


Lesenswert?

Daniel E. schrieb:
> Ja, will nur lesen! Nichts mehr ..

Nun, da für die von Dir genannten µCs fertige IP-Stacks verfügbar sind, 
es Unmengen an funktionierendem Beispielcode gibt, der irgendwas mit 
diesen IP-Stacks anstellt, solltest Du mit Deiner 
Modbus/TCP-Implementierung ja jetzt eigentlich schon fertig sein.

Woran hapert's denn noch?

Weißt Du nicht, wie Du einen TCP-Client auf Deinem ESP32/ESP8266 zum 
Laufen bekommst? Weißt Du nicht, wie Modbus/TCP funktioniert?

von Daniel E. (everyday_fun69)


Lesenswert?

Harald K. schrieb:
> Daniel E. schrieb:
>> Ja, will nur lesen! Nichts mehr ..
>
> Nun, da für die von Dir genannten µCs fertige IP-Stacks verfügbar sind,
> es Unmengen an funktionierendem Beispielcode gibt, der irgendwas mit
> diesen IP-Stacks anstellt, solltest Du mit Deiner
> Modbus/TCP-Implementierung ja jetzt eigentlich schon fertig sein.
>
> Woran hapert's denn noch?
>
> Weißt Du nicht, wie Du einen TCP-Client auf Deinem ESP32/ESP8266 zum
> Laufen bekommst?

Werd ich sehen anhand von Beispielen im Netz !


Weißt Du nicht, wie Modbus/TCP funktioniert?

Nein! Muss ich das ? Wenn ich ein anzupassendes Beispiel habe/ finde und 
das anpassen kann ?

Wahrscheinlich ist der Ursprung meiner Frage immer noch nicht ganz klar? 
Mir ging es darum, welche Plattform die einfachere ist. Gehen tut es mit 
so ziemlich vielen, nur der Aufwand und die verfügbarkeit von Beispiel 
codes im Internet ist halt verschieden.

Do you understand what I mean ?

Danke.

von Εrnst B. (ernst)


Lesenswert?

Daniel E. schrieb:
> Mir ging es darum, welche Plattform die einfachere ist.

Nein. Es geht dir darum, welche Plattform FÜR DICH die einfachere ist.

Es gibt sicher Leute, die das auf einen Nachmittag in Z80-ASM-Code 
hinbasteln. Ist der Z80 deswegen die "einfachere Plattform" dafür? Nein.

Nach deinen anderen Posts schätze ich, dass sich deine 
Programmier-Skills irgendwo auf dem Level "Google, Ctrl-C, Ctrl-V, Geht 
nicht, Forum um Hilfe fragen" befinden.

Wie wär's mit einem RasPi und Node-Red? Da kannst du "Modbus-TCP" 
einfach Klicki-Bunti in ein Fenster schieben, die Register-Adressen 
eintippen, fertig?

Gibt auch Youtube-Tutorials. Da musst du nur zusehen, und keine 
Dokumentation lesen...
https://www.youtube.com/watch?v=nN9SJfK0iIo

von Frank K. (fchk)


Lesenswert?

Daniel E. schrieb:

> Was denkt ihr ?

Angesichts der Tatsache, wie lange Du schon daran rumdaddelst, denke 
ich, dass Du meinen Ratschlag, einfach ein MODBUS/RTU auf MODBUS/TCP 
Gateway fertig zu kaufen, das gescheiteste für Dich ist. Da ist der 
ganze Netzwerkkram für Dich schon erledigt, und Dein PIC müsste einfach 
nur RS485 und MODBUS/RTU implementieren. Das sollte für Dich machbar 
sein, einfacher gehts nicht.

OK, Du müsstest es hinbekommen, das Gateway korrekt zu konfigurieren.

A fool with a tool is still a fool.

fchk

von Daniel E. (everyday_fun69)


Lesenswert?

Hallo zusammen, manchmal ist es mit einer Idee wie mit einem Wein. Wenn 
dieser lange liegt wird er meist besser im Geschmack 🤣.

Hatte auch als Vorschlag von einem Arbeitskollegen mit dem XPORT zu 
probieren. Man sendet Seriel und bekommt vom Bus seriell gewandelt 
zurück. Das ganze mit AT Befehlen natürlich… kennt ihr das Ding zum 
Beispiel?

So ein ESP fürn paar Euro ist natürlich auch unschlagbar..

Grüße

von Frank K. (fchk)


Lesenswert?

Daniel E. schrieb:

> Hatte auch als Vorschlag von einem Arbeitskollegen mit dem XPORT zu
> probieren. Man sendet Seriel und bekommt vom Bus seriell gewandelt
> zurück. Das ganze mit AT Befehlen natürlich… kennt ihr das Ding zum
> Beispiel?

Ja. Problem ist, dass Du damit eben KEIN MODBUS/RTU rausbekommst, weil 
die Paketstruktur von MODBUS/TCP und MODBUS/RTU leicht unterschiedlich 
ist. Bei MODBUS/TCP sorgt das TCP für die fehlerfreie Übertragung, bei 
MODBUS/RTU muss das das Protokoll selber leisten (und hat dafür 
Prüfsummen, die bei TCP unnötig sind). Es gibt mehr als genug solcher 
Gateways, die MODBUS/RTU in MODBUS/TCP und zurück wandeln können, und so 
was wäre für Dich die Lösung.

fchk

von Harald K. (kirnbichler)


Lesenswert?

Frank K. schrieb:
> Angesichts der Tatsache, wie lange Du schon daran rumdaddelst, denke
> ich, dass Du meinen Ratschlag, einfach ein MODBUS/RTU auf MODBUS/TCP
> Gateway fertig zu kaufen, das gescheiteste für Dich ist.

Ich wüsste nicht, wie das das Problem lösen soll, denn Modbus/RTU wird 
er ebensowenig kennen wie Modbus/TCP. Würde er sich mit den Inhalten 
beschäftigen, hätte er eine eigene Implementierung für Modbus/RTU, wäre 
es für ihn ein leichtes, das selbst auf Modbus/TCP zu portieren (er muss 
ja nur 'rausfinden, wie man einen Socket aufmacht, Daten sendet und 
empfängt, 'nen anderen Header vor die Modbusdaten setzen und die 
überflüssige Prüfsumme weglassen).

Ist alles keine Raketenwissenschaft, wenn man sich mit dem Thema selbst 
beschäftigt. Wenn man aber darauf angewiesen ist, fertig vorverdaute 
Beispiel vorgesetzt zu bekommen, dann sind das natürlich alles 
unüberwindbare Hindernisse.

von Frank K. (fchk)


Lesenswert?

Harald K. schrieb:
> Frank K. schrieb:
>> Angesichts der Tatsache, wie lange Du schon daran rumdaddelst, denke
>> ich, dass Du meinen Ratschlag, einfach ein MODBUS/RTU auf MODBUS/TCP
>> Gateway fertig zu kaufen, das gescheiteste für Dich ist.
>
> Ich wüsste nicht, wie das das Problem lösen soll, denn Modbus/RTU wird
> er ebensowenig kennen wie Modbus/TCP.

Naja, wenigstens müsste er sich dann nicht mit Netzwerken beschäftigen. 
Einen UART anzusteuern sollte er können. Notfalls greift er zum MCC 
(Microchip Code Configurator), der beim MPLABX dabei ist. Der erzeugt 
ihm dann nach einigen Mausklicks schon den passenden Code.

> Ist alles keine Raketenwissenschaft, wenn man sich mit dem Thema selbst
> beschäftigt. Wenn man aber darauf angewiesen ist, fertig vorverdaute
> Beispiel vorgesetzt zu bekommen, dann sind das natürlich alles
> unüberwindbare Hindernisse.

Das stimmt allerdings.

4 von 3 Leuten können auch keine Prozentrechnung.

fchk

von Harald K. (kirnbichler)


Lesenswert?

Frank K. schrieb:
> Der erzeugt
> ihm dann nach einigen Mausklicks schon den passenden Code.

Für eine UART sicher, aber Modbus/RTU muss man dann immer noch selber 
bauen.

von Frank K. (fchk)


Lesenswert?

Harald K. schrieb:
> Frank K. schrieb:
>> Der erzeugt
>> ihm dann nach einigen Mausklicks schon den passenden Code.
>
> Für eine UART sicher, aber Modbus/RTU muss man dann immer noch selber
> bauen.

Wenn er das nicht schafft, sollte er es ganz sein lassen und sich der 
Taubenzucht oder der Philatelie widmen.

fchk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.