Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Rund um die Hardware des Revolution Pi
Post Reply
Manuel M.
Posts: 4
Joined: 17 May 2020, 22:38

Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Post by Manuel M. »

Hallo zusammen,
mit den ganzen Protokollen und Schnittstellen habe ich mich erst seit kurzem befasst und habe Messgeräte (WAGO-Stromsensor und Energiezähler SDM120) gefunden, die sich in Sachen Schnittstelle unterscheiden:
Datenblätter:
WAGO-Stromsensor (RJ45): https://asset.re-in.de/add/160267/c1/-/ ... C-IP20.pdf
Energiezähler (RS485): https://data.stromzähler.eu/eastron/SDM ... manual.pdf
Beide aber mit Modbus-RTU.

Zudem möchte ich auch mit einem Gateway (VenusGX) kommunizieren, das über Ethernet-TCP ausgelesen/beschrieben werden soll. Damit kann z.B. ein Lade-/Wechselrichter "angesprochen" werden.
Datenblatt:
VenusGX (RJ45): https://asset.re-in.de/add/160267/c1/-/ ... x-96mm.pdf

Alle Geräte sollen entweder über einen RevPi Core 3 oder wie ich es mir am Besten vorstellen könnte über den RevPi Connect+ mittels Python-Programm überwacht werden, da dieser ja einen RS485-Anschluss hat.
Damit Ihr Euch eher etwas vorstellen könnt, habe ich von meinem Vorhaben ein Bild beigefügt.
Veranschaulichung.jpg
Veranschaulichung.jpg (72.13 KiB) Viewed 6968 times
Welchen RevPi sollte ich Eurer Meinung nach wählen? Klappt das überhaupt so, wie im Bild dargestellt?
Verbesserungsvorschläge sind sehr willkommen.
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Post by dirk »

Hi Manuel M. mit dem RevPi Connect/+ kannst Du sowohl via eingebauter RS485 Schnittstelle ein oder mehrere Modbus RTU Master als auch via Ethernet Schnittstelle ein oder mehrere Modbus TCP Master betreiben.
Mit dem RevPi Core/+ würdest Du eine zusätzliche USB-RS485 Schnittstelle benötigen und falls notwendig eine weitere USB-Ehternet Schnittstelle. Nur um das abzurunden.

Bitte hab Verständnis dafür, dass ich sehe, dass Du Dir viel Mühe gemacht hast, die Datenblätter hier zu verlinken, ich mich jedoch nicht mit den Datenblättern tiefer befasse.
Die Modbus Function Codes (FC), die unterstützt werden kannst Du hier schnell nachschauen und damit erkennen, ob Deine Slave Module kompatibel sind.
Für praktischen Beispiele kannst Du Dir die Video Tutorials zu Modbus anschauen:
  • Tutorial 20 – Modbus TCP Master
  • Tutorial 21 – Modbus RTU Master
In Deiner Zeichnung hat sich wohl ein kleiner Fehler eingeschlichen - am Ethernet Swich befinden sich die Modbus TCP Slaves...
Manuel M.
Posts: 4
Joined: 17 May 2020, 22:38

Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Post by Manuel M. »

Hallo Dirk,
vielen Dank für Deine Auskunft.
Wegen dem einen Modbus-TCP Slave am LAN-Switch (erste Abbildung) muss ich noch schauen, wie ich den unterbringe.
Leider habe ich nur RTU-Messgeräte gefunden und das VenusGX-Gateway lässt leider nur über Modbus-TCP mit sich kommunizieren.
Manuel M.
Posts: 4
Joined: 17 May 2020, 22:38

Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Post by Manuel M. »

Da habe ich jetzt nochmal genauer bei den verwendeten Messgeräten nachgesehen. Die Function-Codes stehen so auch im Datenblatt wie im KUNBUS-Support beschrieben.
Leider haben beide Messgeräte unterschiedliche Baudraten. Hier die wichtigsten Informationen:
WAGO-Stromsensor
  • Baudrate: 19200
  • Protokoll: Modbus-RTU
  • Schnittstelle: RS485
  • Steckverbinder: RJ45 (over serial line)
SDM120
  • Baudrate: max. 9600
  • Protokoll: Modbus-RTU
  • Schnittstelle: RS485
Ich hoffe aufgrund der unterschiedlichen Baudraten im "PiCtory" nur jeweils einen eigenen virtuellen RTU-Master anlegen zu müssen.
Die RS485-Schnittstelle können sich die unterschiedlichen Messgeräte-Slaves dann hoffentlich teilen ?
Somit sollte dann der Ethernet-Anschluss am RevPi Connect für den Modbus-TCP Slave frei sein.
Ist meine Überlegung soweit richtig?
Hier die überarbeitete Abbildung aus dem ersten Beitrag:
InkedVeranschaulichung_2_LI.jpg
InkedVeranschaulichung_2_LI.jpg (504.67 KiB) Viewed 6895 times
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Post by dirk »

Hallo Manuel M. das sieht gut aus, mit diesen Informationen kann man gut arbeiten, vielen Dank hierfür.
Du benötigst unterschiedliche RS485 Schnittstellen für die unterschiedlichen Modbus Kommunikationen z.B. Master, Slave, unterschiedliche Baudraten.
Deine Zeichnung musst Du dann dahingehend ändern, zwei getrennte RS485 Schnitstellen für die Gruppen 19200 Baud und 9600 Baud vorzusehen.

Hierfür kannst Du z.B. ein oder mehrere USB 2.0 zu 2 x Seriell RS-422/485 Adapter verwenden.

Wie Du Geräte mit der vorhandenen RS485 Schnittstelle des RevPi Connect Modules anschließen kannst siehst Du hier.

In PiCtory kannst Du dann problemlos mehrere ModbusRTU Master verwenden mit jeweils unterschiedlichen Konfigurationen. Z.B. mit "/dev/ttyRS485" und z.B. "/dev/ttyUSB1" oder so.
Die 2. Ehernet Schnitstelle für ModbusTCP ist frei, das passt.
Manuel M.
Posts: 4
Joined: 17 May 2020, 22:38

Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Post by Manuel M. »

Hallo Dirk,
dann weiß ich darüber erstmal Bescheid.
Das Forum ist mir eine sehr große Hilfe. Vielen Dank für Deine Unterstützung bis jetzt.
Bei Fragen im weiteren Verlauf des Projekts melde ich mich einfach wieder.
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben

Post by dirk »

Hallo Manuel M. vielen Dank für Deine positive Rückmeldung. Genau das ist der richtige Weg, einfach fragen wenn noch was aufpoppt.
Post Reply