Modbus RTU Gerät in python

OP #8058292
Lesenswert?
• ▲
▼

Hallo,

ich möchte ein Gerät (in diesem Fall ein Zähler) in python abbilden. Wenn ich richtig gesucht habe soll das das Server-Modul von pymodbus können.

Jedoch finde ich keine Beispiele wie und wo ich die Register definiere. Gibt es überhaupt eine Unterscheidung der Input- und Holding-Register?

Hat jemand ein Beispiellink?

Hardy

#8058294
Lesenswert?
• ▲
▼

Hardy F. schrieb:

Hallo,

ich möchte ein Gerät (in diesem Fall ein Zähler) in python abbilden. Wenn ich richtig gesucht habe soll das das Server-Modul von pymodbus können.

Jedoch finde ich keine Beispiele wie und wo ich die Register definiere. Gibt es überhaupt eine Unterscheidung der Input- und Holding-Register?

Hat jemand ein Beispiellink?

Hardy

Wenn man dies hier sehen möchte:

Welcome to PyModbus’s documentation!

dann muss man dies hier anklicken:

https://pymodbus.readthedocs.io/en/latest/

#8058433
Lesenswert?
• ▲
▼

Hardy F. schrieb:

Gibt es überhaupt eine Unterscheidung der Input- und Holding-Register?

Ja, Input-Register können nur gelesen, Holding-Register auch beschrieben werden. Die gleiche Unterscheidung gibt es zwischen "discrete inputs" und "coils" - erstere können nur gelesen, letztere auch beschrieben werden.

Input- und Holding-Register sind 16 Bit breit, "discrete inputs" und "coils" sind nur 1 Bit breit.

#8062118
Lesenswert?
• ▲
▼

@Hardy: Beschreibe doch mal genauer was du machen möchtest. Welcher Zähler usw.

Um einen Eastron SDM630 auszulesen habe ich letzte Woche etwas in Python geschrieben. Ich will z.B. die Zählerwerte anpassen um damit 3 Growatt SPH Wechselrichter zu versorgen.

Ich habs jetzt auch die schnelle so aufgebaut

Raspberry Pi 4 ->USB to 4x RS485

Später werde ich aber ein ESP32 S3 Board mit 4x RS485 verwenden, da ich nicht darauf warten will das irgendwann die µSD Karte aussteigt.

#8062134
Lesenswert?
• ▲
▼

ja das gleiche habe ich auch vor. Habe aber eben erst mit dem Auslesen begonnen. Man muss ja die Register auslesen und ablegen um dann als Slave auf einen Masteranfrage zu reagieren.

Ich werde jetzt erstmal einen Sniffer programmieren um mit zu lauschen, da die Zähler meist Blockweise (mehrere Register in einem Rutsch) abgefragt werden, damit ich später nicht unnötigerweise alle Register des Zählers auslese obwohl nur Regisiter 0-100 und 120-130 oder ähnlich benötigt werden.

Um welche Hersteller und Modelle geht es bei dir?

Antwort schreiben

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.