Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
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. Welchen RevPi sollte ich Eurer Meinung nach wählen? Klappt das überhaupt so, wie im Bild dargestellt?
Verbesserungsvorschläge sind sehr willkommen.
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. Welchen RevPi sollte ich Eurer Meinung nach wählen? Klappt das überhaupt so, wie im Bild dargestellt?
Verbesserungsvorschläge sind sehr willkommen.
Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
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:
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
Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
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.
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.
Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
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
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:
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)
- Baudrate: max. 9600
- Protokoll: Modbus-RTU
- Schnittstelle: RS485
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:
Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
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.
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.
Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
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.
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.
Re: Modbus RTU und TCP mit verschiedenen Schnittstellen lesen/schreiben
Hallo Manuel M. vielen Dank für Deine positive Rückmeldung. Genau das ist der richtige Weg, einfach fragen wenn noch was aufpoppt.