Moin zusammen,
ich versuche seit einiger Zeit, den Wert "Active_Power_Total" aus meinem MPM3PM per Modbus auszulesen. Ich habs geschafft für die Register h2 "Import_Active_kWh_Total" und h4 "Active_Power_Total", da kommen plausible Werte, die auch im Display des Zählers angezeigt werden.
Ab Register h26 soll der Wert "Active_Power_Total" kommen. Laut Anleitung des Zählers sind es 2 Register, 4 Bytes, signed 32. Ich hab jetzt schon mit allen möglichen unpack- und revReg-Werten rumgespielt, bekomme aber nur Murks zurück.
Kann mir wer sagen, mit welchen Parametern ich diesen Wert entpackt bekomme?
Danke
Michael
Kennst du QModMaster (https://sourceforge.net/projects/qmodmaster/)? Ich würde es zuerst mit diesem ausprobieren ob du damit einen vernünftigen Wert erhältst. Wenn ja, welche Einstellungen brauchst du dort (müsste eigentlich "Dec", 2 Register, Signed und Little Endian (Einstellungen) sein)?
Danke für den Tip, leider hab ich keinen Windows PC. Ich hab z. B. für die importierte Energiemenge folgendes im Device:
(laut Hersteller Register 0x0002, 2 Register, 4 Byte, unsigned32):
dev-type-I_R2u-len 2
dev-type-I_R2u-revRegs 0
dev-type-I_R2u-unpack N
obj-h2-expr $val / 100
obj-h2-format %.2f
obj-h2-len 2
obj-h2-poll 1
obj-h2-reading Import_Active_kWh_Total
obj-h2-type I_R2u
Das passt, ebenso für das Register für die exportierte Energiemenge 0x0004.
Das Register für die aktuelle Leistung ist laut Hersteller 0x0026, 2 Register, 4 Byte, signed32. Hier hab ich bislang das Lesen versucht mit:
dev-type-R2s-len 2
dev-type-R2s-revRegs 0
dev-type-R2s-unpack L
obj-h26-len 2
obj-h26-poll 0
obj-h26-reading Active_Power_Total
obj-h26-type R2s
Das unpack-Argument ist vom letzten Versuch. Es kommen Werte, aber die springen und sind nicht plausibel. Am Zähler selbst ist der Wert im Display stabil. Ich kriege es nicht hin.
Ich denke, da stimmt etwas mit der Byte-Reihenfolge nicht. Ich würde mal >l versuchen für unpack. Komisch ist, dass du das Register 2 mit dem Datentyp "N" ausliest. Was passiert, wenn du dort "L" verwendest? (siehe perl Doku für pack)