Register per Hex lesen, oder umrechen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Oaki
    Smart Home'r
    • 05.04.2024
    • 47

    #1

    Register per Hex lesen, oder umrechen

    Hallo zusammen,

    ich mache bereits viel mit Modbus und hatte bis jetzt das Glück, immer Registertabels zu bekommen, wo vernünftige Adressen drin stehen.
    Jetzt habe ich etwas wo die Register per Hex angegeben sind. Absolutes Neuland und ich bringe es nicht hin.
    Vermutlich bin ich gerade zu verwirrt, oder es ist nur eine Kleinigkeit.

    Grün habe ich markiert was ich gerne hätte.
    Was trage ich denn jetzt bitte am Analogsensor ein?

    Danke für Eure Hilfe

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 139
Größe: 648,7 KB
ID: 478892
  • Grestorn
    MS Profi
    • 11.07.2022
    • 621

    #2
    Wie kommst Du darauf, dass der hexadezimal sind? Um genau zu sein ist hexadezimal nur eine Darstellungsform, die Werte kommen immer als Binärdaten und werden auch immer so gelesen.

    Die einzige Ausnahme wäre, wenn ein TEXT geliefert werden würde und der Text dann eine hexadezimal dargestellte Zahl wäre. Aber das ist hier sicher nicht der Fall (Register 107a, "Combined Code" ist hier das einzige derart kodierte Register).

    Das einzige, was Du für das von Dir markierte Register beachten musst, ist "4-Byte Float" und "BigEndian". D.h. Du musst im Config "32bit Floating Point" (das sind die 4 Bytes Float) wählen und "Wortreihenfolge" aktivieren (das ist der "Big-Endian).

    Kommentar

    • Oaki
      Smart Home'r
      • 05.04.2024
      • 47

      #3
      Sorry da habe ich mich vermutlich falsch ausgedrückt.
      Ich kann bei Loxone ja keine Hex Zahl bei der IO Adresse eingeben. Das ist mein Problem. Und eine IO Adresse mit 8196 oder so klappt nicht, wenn ich Hex in Dezimal umwandle.

      Kommentar

      • Grestorn
        MS Profi
        • 11.07.2022
        • 621

        #4
        Ach soooo....

        Probier mal 1 abzuziehen vom angegebenen Wert. Und außerdem sieht man nicht, ob jetzt 2080 oder 5012 die IO-Adresse sein soll.

        Also probier mal:

        8320 und 8319

        und auch

        20498 und 20497

        ob bei einem dieser IO-Adressen der Zugriff klappt (den ModBus Monitor anmachen, damit Du siehst, ob der Zugriff mit einer Ok oder Fehlermeldung quittiert wird)

        Kommentar

        • Labmaster
          Lox Guru
          • 20.01.2017
          • 2744

          #5
          Wenn es nur um die Umrechnung geht, dann kannste z.B. den Windows Taschenrechner verwenden (rechner)
          Diesen in den Modus "Programmierer" stellen (über das Menü), dann "HEX" anklicken und die jeweilige HEX Zahl eingeben z.B. 200C ("L2 Voltage"), bei DEC kannst du dann den Dezimalwert lesen (0x200C => 8204).
          Der HEX Wert 0x2080 ist in Dezimal somit 8320, der Wert hex 0x5012 ist 20498. ( 0x am Anfang markiert bei einzelnen Zahlen üblicherweise das es sich um einen HEX Wert handelt)

          Man kann in dem Windows Rechner auch HEX ind Dezimal in wandel lassen, dazu einfach DEC anklicken die Zahl eingeben und bei HEX ablesen.

          Man kann auch einfach Google fragen, mit z.B. "0x2080 to decimal"


          Alternativ auch einfach eine KI die komplette Tabelle aus dem Bild incl. der umgerechneten Hex Werte erstellen lasse, siehe nachfolgend.
          CSV Daten kann man auch sehr gut in z.B. Excel importieren.
          Achtung ungeprüft !
          Ob die KI also alle Zahlen (wichtig sind ja nur die HEX Spalten) aus dem Bild richtig erkannt hat musst du selbst schauen.

          Spalten mit Komma getrennt

          RegisterAddr1_HEX,RegisterAddr1_DEC,RegisterAddr2_ HEX,RegisterAddr2_DEC,Contents,ReadWrite,Datablock s,DataFormat,LCD_Page,Modbus,Remarks
          1000,4096,4000,16384,Serial number,Read,4,signed,P62,R,By default last 8 digits of serial number
          1010,4112,4002,16386,Meter code,Read,2,signed,/,R,0102 DC version; 0103 CT version
          1018,4120,4003,16387,Meter ID (Mbus/Modbus),Read/Write,2,HEX response,P61,R/W,001~247 (001 default; 000 broadcast)
          1020,4128,4004,16388,Baud Rate,Read/Write,2,HEX response,P64,R/W,"9600 (default), 4800, 2400, 1200, 600, 300"
          1050,4176,4005,16389,Protocol Version,Read,4,Float Big Endian (ABCD),/,R,3.2 = Imreno Modbus protocol version
          1054,4180,4007,16391,Software Version,Read,4,Float Big Endian (ABCD),/,R,Shows present software version
          1058,4184,4009,16393,Hardware Version,Read,4,Float Big Endian (ABCD),/,R,"1.03, updated if hardware modifications are made"
          1060,4192,400B,16395,Meter Amps,Read,2,HEX response,/,R,100 for DC version; 5 for CT version
          1062,4194,400C,16396,CT rate,Read/Write,2,signed,P58,R/W,"5; 40; 50; 60; 75; 100; 125; 150; 200; 250; 300; 400; 500; 600; 800; 1000; 1250; 1500; 2000; 2500; 3000; 4000; 5000; 6000; 7500"
          1066,4198,400D,16397,S0 output rate,Read/Write,4,Float Big Endian (ABCD),P59/P60,R/W,"10000; 2000; 1000; 100; 10; 1; 0.1; 0.01"
          107A,4218,400F,16399,Combined Code,Read/Write,2,HEX response,P60,R/W,"01, 04, 05, 06, 09, 10"
          1510,5392,4010,16400,LCD cycle time,Read/Write,2,signed,P63,R/W,"0~30 seconds (10 default)"
          1520,5408,4011,16401,Parity setting,Read/Write,2,signed,/,R/W,"01 (even); 02 (none)"
          2000,8192,5000,20480,Voltage,Read,4,Float Big Endian (ABCD),,,"Only for 1 phase meter (PRO1 series)"
          2008,8200,5002,20482,L1 Voltage,Read,4,Float Big Endian (ABCD),P38,R,
          200C,8204,5004,20484,L2 Voltage,Read,4,Float Big Endian (ABCD),P39,R,
          2010,8208,5006,20486,L3 Voltage,Read,4,Float Big Endian (ABCD),P40,R,
          2020,8224,5008,20488,Grid Frequency,Read,4,Float Big Endian (ABCD),P56,R,
          2060,8288,500A,20490,Current,Read,4,Float Big Endian (ABCD),,,"Only for 1 phase meter (PRO1 series)"
          2068,8296,500C,20492,L1 Current,Read,4,Float Big Endian (ABCD),P41,R,
          206C,8300,500E,20494,L2 Current,Read,4,Float Big Endian (ABCD),P42,R,
          2070,8304,5010,20496,L3 Current,Read,4,Float Big Endian (ABCD),P43,R,
          2080,8320,5012,20498,Total Active Power,Read,4,Float Big Endian (ABCD),P44,R,
          2088,8328,5014,20500,L1 Active Power,Read,4,Float Big Endian (ABCD),P45,R,
          208C,8332,5016,20502,L2 Active Power,Read,4,Float Big Endian (ABCD),P46,R,
          2090,8336,5018,20504,L3 Active Power,Read,4,Float Big Endian (ABCD),P47,R,
          20A0,8352,501A,20506,Total reactive power,Read,4,Float Big Endian (ABCD),/,R,
          20A8,8360,501C,20508,L1 reactive power,Read,4,Float Big Endian (ABCD),/,R,
          20AC,8364,501E,20510,L2 reactive power,Read,4,Float Big Endian (ABCD),/,R,
          20B0,8368,5020,20512,L3 reactive power,Read,4,Float Big Endian (ABCD),/,R,
          20C0,8384,5022,20514,Total Apparent Power,Read,4,Float Big Endian (ABCD),P48,R,
          20C8,8392,5024,20516,L1 Apparent Power,Read,4,Float Big Endian (ABCD),P49,R,
          Zuletzt geändert von Labmaster; 10.02.2026, 06:19.

          Kommentar

          • loxGigi
            Dumb Home'r
            • 21.09.2025
            • 13

            #6
            Mit dem Stückchen Code hinter dem Link kannst Du eine Adresse in Hex angeben und dann die Werte und den Rest inkl. Adresse in Dezimal direkt in Loxone anzeigen lassen.

            Kommentar

            • Jan W.
              Lox Guru
              • 30.08.2015
              • 1546

              #7
              hier schon mal geschaut:
              https://www.loxforum.com/forum/faqs-...pro-380-mod-pm

              Im User Manual vom Hersteller sind die Werte aus meiner Sicht etwas deutlicher beschrieben:


              Da ist das Register eindeutig (die 2. Spalte aus Deiner Tabelle), also hex 5012 = dec 20498, evtl. 20497, die Registerlänge passt mit 2x 16-Bit Register für 1 Float, es gibt eine Einheit (kW) und der (Modbus) Function Code wird erwähnt (siehe https://en.wikipedia.org/wiki/Modbus...function_codes), hier 3=Read Holding Register (nicht 4=Read Input Register).

              Der Code passt allerdings ebenso wie das Register nicht zum letzten Screenshot im verlinkten Beitrag. Die Herausforderung sehe ich eher in der Deutung der schlechten Beschreibung, als in der Konvertierung Hex zu Dezimal.
              Zuletzt geändert von Jan W.; 10.02.2026, 21:26.
              Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
              Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
              Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
              Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
              Node-RED: IKEA Tradfri

              Kommentar

              Lädt...