Ankündigung

Einklappen
Keine Ankündigung bisher.

ModBus TCP Master Read mit ABB B23 112-100

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    ModBus TCP Master Read mit ABB B23 112-100

    Hallo zusammen,
    ich möchte meinen ABB Zähler auslesen. Spannung klapp auch soweit. Jedoch komme ich mit dem aktuellem Zählerstand nicht zurecht.
    Hier benötige ich ein 64Uint Zahl. Leider bekomme ich mit dem Baustein ModBus TCP Master Read und den Werten E10 + E11 nicht hin.

    Hier mal die Beschreibung aus der Doku:
    E10: Lenght to read 1, Default=1 (1=1 Dword=2 Bytes)
    E11: Type of Data returned 1, 0=Int, 1=uInt, 2=Float, 3=Byte, 4=Bit, 5=String, 6=Swap Float

    Der Wert wird nicht korrekt ausgegeben Siehe Bild. Hat jemand eine Idee?

    Vielen Dank

    Gruß Sascha
    Bildschirmfoto 2021-04-05 um 11.09.41.pnghttps://knx-user-forum.de/core/image...EAAAICRAEAOw==
    Angehängte Dateien

    #2
    Was sollte denn der korrekte Wert sein?
    Stimmen denn die anderen Werte?
    Zuletzt geändert von McJameson; 05.04.2021, 12:39.

    Kommentar


      #3
      Hi,
      ja die anderen Werte Stimmen. Es hat was mit der Größe zu tun.
      Der Wert müsste bei ca. 79000 liegen. Laut Handbuch muss dieser Wert dann *0,01 genommen werden. Das wäre dann der Zählerstand in KWh.
      Mit dem Client und den korrekten Einstellungen kommt auch der korrekte Wert. Nur in dem Baustein nicht.

      Auf dem Bild ist 64bit Uint die korrekte Einstellung. Weisst du wie ich diese im Baustein setzte?
      Hiermit komme ich nicht klar:
      E10: Lenght to read 1, Default=1 (1=1 Dword=2 Bytes)
      E11: Type of Data returned 1, 0=Int, 1=uInt, 2=Float, 3=Byte, 4=Bit, 5=String, 6=Swap Float

      Mit anderen Einstellungen bekomme ich 4294916140 als Antwort. Leider auch nicht korrekt.
      Bildschirmfoto 2021-04-05 um 13.47.25.png


      Bildschirmfoto 2021-04-05 um 10.26.19.png

      Kommentar


        #4
        Sorry, dass ich länger nicht ragiert habe; ich war leider privat heftigst eingespannt.
        Lt. Dokumentation des LBS sollten Deine Einstellungen eigentlich passen; Length = 2 = 2 DWORDs = 4 Bytes; Type= 1 = UINT
        Kann es sein, dass die Registeradresse ggf. um 1 reduziert werden muss? Manche Systeme fangen unterschiedlich an zu zählen, z.B. Register 1 = Adresse 0.

        Kommentar


          #5
          Hallo zusammen,

          ich muss das etwas ältere Thema nochmal hochholen, da ich gerade vor dem selben Problem stehe. Spannung lässt sich vom ABB Zähler auslesen, jedoch der Zählerstand und die aktuelle Leistung nicht.

          Im Datenblatt ist bei den Leistungen und beim Zählerwert eine "Size" von 4 angegeben, bei der Sapnnung lediglich "2". Hier sehe ich den Unterschied, vermutlich muss hier eine Auswertung anders erfolgen?

          Alles mit Size = 2 lässt sich auswerten, indem man das angebene Register in Dezimalwert umrechnung und um 1 erhöht. Bei Size = 4 erhält man hier keine plausiblen Werte. Auch das Auslesen von mehreren Registern komme ich hier nicht an's Ziel.

          sleepwalker86 : Bist du hier weiter gekommen??

          Danke & Grüße
          Sven

          Kommentar


            #6
            Hi,
            ja ich rechne die einzelnen Register mit dem folgenden Code um:

            Code:
            var x=msg.payload[0];
            var y=msg.payload[1];
            var z=msg.payload[2];
            var q=msg.payload[3];
            x=x*65535*65535*65535;
            y=y*65535*65535;
            z=z*65535;
            msg.payload=((x+y+z+q)/100);
            msg.payload = Math.round (msg.payload * 10) / 10;
            Gruß Sascha

            Kommentar


              #7
              sleepwalker86 : Hey Sascha, ignoriere meine PN. Ich habe mich nochmal mit dem Thema intensiv auseinander gesetzt und es nun verstanden. Bekomme nun offenbar alle Werte mit einem korrektem Ergebnis ausgelesen.

              DANKE für die Hilfe. Ohne diese wäre ich hier sicher kläglich gescheitert!

              Gruß
              Sven

              Kommentar


                #8
                Sehr gut. Hatte übersehen das du mir eine PN geschrieben hast.
                Hauptsache jetzt läuft es

                Kommentar


                  #9
                  Hallo Sven, hallo Sascha,

                  ich bin zwar hier im Edomi-Bereich, stehe aber meinem Weinzierl Gateway 886 vor dem gleichen Problem, dass ich die 4-Byte Werte nicht verarbeitet bekomme. Die 2-Byte Werte bekomme ich ausgelesen. Vielleicht könnt Ihr mir ja trotzdem auf die Sprünge helfen.

                  Das Startregister über Excel in Dez + 1 umgerechnet. Mit den Werten die ich dann bekomme kann ich aber nicht anfangen. Eigentlich müsste ich einen Wert um 187 kWh bekommen.
                  Quantity Details Start reg (Hex) Start Reg (Dez) +1 Size [Lengh (Word)] Res. Unit Datatype Datentyp Wert [gelesen]
                  Active (Wirkverbrauch) import kWh 5000 20481 4 0,01 kWh Unsigned 0 - kWh
                  Active (Wirkverbrauch) export kWh 5004 20485 4 0,01 kWh Unsigned 4c23d70a 12.774.172,26 kWh
                  In der ETS bin ich auch ein überfragt was hier einzustellen ist. Lt. Weinzierl werden double word register (2 register – 4 byte) nur mit DPT14 (float) unterstützt.

                  Unbenannt.jpg

                  Für einen Tipp wäre ich Euch dankbar.

                  Grüße
                  Sebastian



                  Kommentar


                    #10
                    Hi,
                    bei mir ist es so das ich ein Array mit vier Werten bekomme. Zb.:

                    0,0,2,19994

                    x= 0
                    y= 0
                    2= 2
                    q= 19994

                    Diese Werte werden dann wie folgt berechnet:

                    Code:
                    var x=msg.payload[0];
                    var y=msg.payload[1];
                    var z=msg.payload[2];
                    var q=msg.payload[3];
                    x=x*65535*65535*65535;
                    y=y*65535*65535;
                    z=z*65535;
                    
                    msg.payload=((x+y+z+q)/100);
                    Ergebnis =1510,64 Watt

                    Ich muss dazusagen das ich es mit Edomi ebenfalls nicht hinbekommen habe sondern nur mit NodeRed


                    Gruß Sascha
                    Zuletzt geändert von sleepwalker86; 24.02.2022, 21:15.

                    Kommentar


                      #11
                      Hi, Danke für die Rückinfo!
                      Leider hilft mir das bei meinem Problem erstmal nicht weiter.
                      Ich werde nochmal den Weinzierl Support anschreiben, ob die noch eine Idee haben.

                      VG Sebastian

                      Kommentar


                        #12
                        Zitat von sleepwalker86 Beitrag anzeigen
                        ich möchte meinen ABB Zähler auslesen.
                        Hihi,

                        kannst du mir verraten wie du diesen Zähler als TCP angebunden hast?

                        Gruß

                        Kommentar


                          #13
                          Ich habe mir einen USR-DR302 gekauft.
                          mit dem kannst du den Zähler auslesen.

                          Kommentar


                            #14
                            Zitat von sleepwalker86 Beitrag anzeigen
                            USR-DR302
                            Dankeschön

                            Kommentar

                            Lädt...
                            X