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

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