Stromzähler Modbus RS485 Modbusregister

Hallo Zusammen,

stehe gerade mal wieder auf dem Schlauch. Hab einen Modbus Stromzähler der über einen USB Adapter RS485 an einem Raspi hängt. Soweit so gut. Wie bekomme ich die Adressen aus der Doku in IPS eingetragen? Muss ich die irgendwie umrechnen? (Siehe Bild)

Viele Grüße
Stephan

Müsste HEX sein. 130 = 304

Gruß

ah super, das klappt.
Hast du noch einen Tipp für diese Adressen? Wie müsste ich die umrechnen?
Onlinekonverter gibt nen error…

A000 = 40960

Grüße,
Kai

Hi, nimm einfach den Windows Rechner und stelle auf Programmierer :wink:

Gruß

Das muss doch bestimmt noch minus 40001 gerechnet werden. Gibt doch nur 9999 Adressen pro Block.
Hier ist etwas Einstiegslektüre:

Michael

1 „Gefällt mir“

Vielen Dank für die zahlreichen Antworten :slight_smile:

Die 40960 schein auf den ersten Blick zu funktionieren. Er zeigt mir 0,02 an. Am Display des Zählers sind es 0,016. Das sind dann gerundet 0,02. Passt also.

Was mach ich denn mit diesen Adressen: 140h-141H LONG?

Viele Grüße
Stephan

Ich hätte hier direkt das nächst Problem. Bei meiner Wärmepumpe gibts es solche Register. Da hat jedes BIT eine Funktion. Wir lese und vor allem wie schreibe ich denn einzelne BITs?

Viele Grüße
Stephan

Gar nicht, du schreibst immer das Register. Also alle 16BIT.
Musst dir aus allen gewünschten Bits die 16Bit Zahl erstellen und Die schreiben.
Michael

Irgendwo gab es hier im Forum mal ein Script das die 16 Bit in einzelne Werte zerlegt und wieder zusammen fügt… kann man auch schnell selber bauen, aber was es schon gibt… kann man ja nutze… aber ich hab jetzt nicht gesucht

Das mit den einzelnen Bits hab ich hinbekommen. Danke.

Jetzt hab ich aber direkt das nächste Problem:

Gelesen wird ein 16 Bit und dieser soll zwei Temperaturen enthalten die ich auch schalten möchte.
Lese ich das als 8bit CHAR kommt der erste Wert korrekt an (42). Lese ich es als byte kommt der zweite wert korrekt an (35).
Lese ich das als Word oher Short erhalte ich 9002 und jetzt bin ich mal wieder am Ende… :crazy_face:

Jemand einen Wink mit dem Zaunpfahl?

Vielen Dank
Stephan

Ich versuch’s :wink:

9002 als Dezimalzahl entspricht Hexwert 232A
Zerlegt in zwei Hexwerte ergibt das hex 23 = dezimal 35 sowie hex 2A = dezimal 42

1 „Gefällt mir“