Seite 1 von 1

Schneider IEM + Minimalmodbus - Daten Auslesung

Verfasst: Donnerstag 24. April 2025, 08:28
von chris1984
Guten Morgen,

ich versuche mich das erste Mal an Minimalmodbus und bin eigentlich auch ohne Probleme an Daten gekommen.

Aber ich verstehe jetzt noch nicht richtig wie genau ich die Adresse / Abfrage zu gestalten habe. Was mich verwirrt ist,
ob ich jetzt einen Offset berücksichtigen muss oder nicht.

Meine Vorgabe - ich will diesen Wert auslesen:
  • Adresse: 0xB02B
    Register: 45100
    Registerart: Lesbar
    Größe: 2 (Größe: Die Datengröße in Int16)
    Typ: Float32
    Einheiten: kWh
    Beschreibung: Gesamtwirkenergie-Import
Wie sollte nun diese Auslesung dazu aussehen:

instrument.read_register(45100,0,3,False)

Auszug Doku Minimalmodbus:
read_register(registeraddress: int, number_of_decimals: int = 0, functioncode: int = 3, signed: bool = False) → Union[int, float]
  • registeraddress: The slave register address
    number_of_decimals: The number of decimals for content conversion
    functioncode: Modbus function code. Can be 3 or 4
    signed: Whether the data should be interpreted as unsigned or signed.
Auszug Doku Schneider IEM:
  • Adresse: Eine 16-Bit-Registeradresse im Hexadezimalformat. Bei der Adresse handelt es sich um die Daten, die im Modbus-Frame verwendet werden.
    Register: Eine 16-Bit-Registernummer im Dezimalformat (Register = Adresse + 1)
    Größe: Die Datengröße in Int16

Dankeschön!

Re: Schneider IEM + Minimalmodbus - Daten Auslesung

Verfasst: Donnerstag 24. April 2025, 13:53
von chris1984
Also ich hatte prinzipiell übersehen dass es ein Float32 ist.

Dh. ich muss zwei Register lesen und dabei eine Nummer tiefer gehen.

instrument.read_registers(45099,2,3) #2 Register lang, Function Code 3

Danach muss ich beide INT Werte in HEX umwandeln und diesen HEXSTRING dann in Float32 umwandeln.

Oder direkt die komfortable Funktion nutzen:
instrument.read_float(registeraddress=45099,functioncode=3,number_of_registers=2,byteorder=0)

Re: Schneider IEM + Minimalmodbus - Daten Auslesung

Verfasst: Freitag 25. April 2025, 08:25
von noisefloor
Hallo,

es wäre noch gut, wenn du noch sagen würdest, welches Python-Modul (inkl. Link zur Projektseite) du verwendet hast. Das macht es für die Nachwelt deutlich einfacher, bei gleichem oder ähnlichem Problem direkt eine komplette, funktionierende Lösung zu haben.

Gruß, noisefloor