Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19001586 ModBus Read GENERIC

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

    #46
    Zitat von ChrisChros Beitrag anzeigen
    Momentan kann ich das leider nicht, verstehe es selbst nicht.
    Eventuell kann WagoKlemme etwas dazu sagen, er kann ja mit seinem LBS das E3DC erfolgreich auslesen.
    Sorry für die späte Antwort, ich bin zur Zeit viel unterwegs.
    Ich habe das Problem vermutlich nicht richtig verstanden, deshalb setze ich hier mal einen Screenshot rein, wie das Byte zerlegt wird:

    Bildschirmfoto 2021-06-06 um 14.03.29.png
    Angehängte Dateien
    >>Smelly One<<
    >> BURLI <<
    Grüße Armin

    Kommentar


      #47
      Zitat von WagoKlemme Beitrag anzeigen
      Ich habe das Problem vermutlich nicht richtig verstanden,
      Danke für die Screeenshots.

      Es geht darum, das mit dem LBS von saegefisch scheinbar ein offset in den Registeradressen des E3DC nötig ist um die richtigen Werte zu bekommen. Hattest du das Problem auch bei deinem Baustein auch, oder sitzt das Problem in meinem Fall vor dem Bildschirm?

      Kommentar


        #48
        Ich lese einfach 40 Bytes aus, beginnend ab Register 40067. Das 1. Register gibt E3DC beginnend mit 40068 an. D.h. ich muss 1 Byte früher mit dem Lesen beginnen.
        >>Smelly One<<
        >> BURLI <<
        Grüße Armin

        Kommentar


          #49
          Hallo zusammen,

          da ich hier reiner "Nutznießer" bin und nicht selbst in der Lage, LBSen zu erstellen, möchte ich an dieser Stelle mal DANKE sagen!

          Ich habe bis heute den LBS für den SMA-Modbus genutzt, welcher, wie bei einigen anderen auch, zwischendurch mal neu gestartet werden wollte, damit die Werte wieder ausgelesen werden.

          Nun habe ich den LBS19001586 installiert (übrigens völlig problemlos) und meine ModBus-Abfrage neu gestrickt. Ein bisschen musste ich herumprobieren, ich hatte hier irgendwie einen Fehler in meinem request... Dann... schwupps.... Alle benötigten Werte da!

          Also an dieser Stelle vielen Dank für die Erstellung dieses super LBS. Nächster Einsatzbereich für den LBS wird es sein, SDM230 (bzw. SDM630) über Elfin EE11 abzufragen (hier fehlt mir leider noch das Anschlußkabel, welches ich Trottel nicht mitbestellt habe).

          Gruß
          Sven

          Kommentar


            #50
            Das freut mich, zu hören, dass der LBS seine Funktion erfüllt und offenbar auch so leicht, wie erhofft.
            Lieben Dank für deine Rückmeldung!

            Kommentar


              #51
              Hallo zusammen,

              nach anfänglicher Euphorie nun nach rd. 7 Tagen Laufzeit, nun auf erstem Blick wieder der Fehler, welcher auch im SMA-LBS entstanden ist (Leider habe ich diesen Fehler nie wirklich untersucht, daher passt der Vergleich jetzt natürlich nicht).

              Im Fehlerlog finde ich folgenden Eintrag:

              2021-06-15_08h35_07.png
              Bei der IP-Adresse handelt es sich um den SMA-WR.

              Den Fehlerlog des LBS kann ich leider nicht öffnen, da ich ihn noch auf 8 stehen hatte und die Einträge zu viel sind (zu wenig Speicher zum Öffnen).

              Der LBS liest nun keine Werte mehr aus dem LBS. Das Problem hatten ja einige mit dem alten Baustein analog. Bin ich nun mit dem neuen Baustein der einzige mit dem Problem? Oder lohnt es, hier mal weiter nachzuforschen?

              Sobald ich das Projekt einmal neu aktiviert habe, funktioniert die Datenverbindung sofort wieder...

              Gruß
              Sven

              Kommentar


                #52
                Hallo zusammen,

                dem Problem aus dem vorheigem Post konnte ich leider noch nicht nachgehen, habe aber weiter ein wenig mit dem LBS gespielt.

                Nachdem die Anbindung meines SMA WR recht fix funktionierte, würde ich nun gern meine Strommesser anbinden.

                Hier habe ich bspw. einen SDM230 im Einsatz, die Verbindung erfolgt über einen Elfin EE11.

                Nun habe ich den LBS so konfiguriert:

                LBS.jpg

                Grundsätzlich sehe ich auch am EE11 und am SDM, dass eine Datenübertragung stattfindet. Aber leider bekomme ich es nicht hin, die Register sauber auszulesen.

                Ein Auszug aus der Beschreibung der Register liegt vor:

                Register.jpg
                Jetzt bin ich mir nicht sicher, ob für mich das rot eingerahmte eine Bedeutung hat. Ich wüsste gerade nicht, wie ich den LBS damit füttern sollte.

                Tatsache ist: Ich bekomme keine Werte geliefert.

                Der Log sagt folgendes:

                Log_LBS.jpg

                Hat hier jemand vielleicht ne Idee?

                Danke vorab und Grüße
                Sven
                Angehängte Dateien

                Kommentar


                  #53
                  Probier mal in E8 statt 30007 nur 6. Alternativ auch in E19 als Offset 30001 einstellen.

                  Kommentar


                    #54
                    ich würde es mit einem einzelnen Register versuchen, bei dem der Zielwert bekannt ist, z.B. Spannung ~230 oder Frequenz ~ 50. Damit ist die Wertprüfung einfacher auf Plausibilität
                    E6 also z.B. =30071;"Frequenz [Hz]";int16. Wie h1as schrieb, auch Register mal variieren +/-1 oder Offset versuchen. Und auch mal uint16
                    Kennst Du verlässlich die ID für E7?
                    E18= 3
                    Wenn Du etwas zurück bekommst, aber die Werte komisch sind, mal mit dem Endian an E9 spielen.

                    Ansonsten würde ich erst mal z.B. mit dem qModMaster oder anderer SW einfacher den ersten Zugriff testen und erreichen. Wenn der geht, dann am LBS weiter. Selbst mit der performanten Lösung, dass man mit dem LBS im LiveView Register ändern kann, geht es mit dedizierter SW in Deiner Phase schneller, um überhaupt einen Connect zu erreichen.

                    Kommentar


                      #55
                      Hallo zusammen,

                      ersteinmal danke für die Hilfestellungen.

                      Die Id (hier ist ja die ModBus ID des Stromzählers gemeint) stimmt defintiv, das kann ich sicher sagen.

                      Mit qModMoaster bekomme ich einen connect, wenn ich register abfrage, bekomme ich auch eine Antwort, leider hier ebenfalls "0".

                      Es gibt es cooles Tool, um die Stromzähler auszulesen: MBMD

                      Dies habe ich in einem Docker-Container laufen, wenn ich es mit den richtigen Parametern starte, dann liest er mir auch den Zähler korrekt und vollständig aus. Im Notfall wäre das der workaround, mittels MBMD an den mqtt-Broker zu senden und dann die Daten weiter zu verarbeiten. Aber eigentlich würde ich mir diesen Zwischenschritt gerne sparen, die Werte benötige ich halt in Edomi.

                      Aber der Test mit MBMD gibt mir zumindest die Sicherheit, dass mein Modbus-Gateway und der Zähler an sich korrekt konfiguriert sind. Offenbar hakt es "nur" an den Einstellungen des LBS.

                      Ich werde mal weiter testen... Wenn ihr noch ne Idee habt, immer her damit! ;-)

                      Gruß
                      Sven

                      Kommentar


                        #56
                        Erst mal hakt es am wissen, um mit qmodmaster die Daten auszulesen ungleich 0. wenn du das hast, hast du alles, was du für den LBS brauchst.

                        dieses MBMD hat irgend ein Wissensvorsprung, den du dir noch erarbeiten musst. Aber am Ende ist es alles Modbus. Spricht das Tool zu dir bezüglich der tatsächlich abgefragten Register? Aber in der Tat gut zu wissen, dass es funktionieren muss/kann. Das ist auf jeden Fall hilfreich.

                        Ich würde h1as Tipps mal mit dem qmodmaster probieren.

                        Kommentar


                          #57
                          Hey...

                          puh, das war ne schwere Geburt. Also für die Nachwelt festgehalten: Es funktioniert einwandfrei! ;-)

                          Ziel: Auslesen von SDM-Stromzählern (SDM230 und SDM630, vermutlich auch alle anderen SDM) über Elfin EE11-Converter.


                          LBS_Modbus.jpg
                          Danke an saegefisch für diesen LBS und die Hilfestellungen.

                          Mal wieder habe ich viel gelernt und kann jetzt hier weitermachen! :-)

                          Grüße
                          Sven


                          Kommentar


                            #58
                            Das freut mich zu hören! Vor allem, dass der LBS offenbar tatsächlich wunderbar divers funktioniert, also sein GENERIC offenbar verdient. Daher bin ich auch sehr dankbar für Deine weiteren Geräte hier...
                            Dank gebührt auch h1as mit seinen Tipps zu den Registern.

                            Anhand Deiner Doku vom ersten Post bin ich erstaunt, dass es nun doch E18=4 ist. Aber egal - Hauptsache Daten
                            Was Du noch probieren könntest, weil es sich vielleicht passender zur Doku anfühlt: An E8 die Register 30000, 30006, 30070 verwenden und ein Offset von E19 = -30000. Damit solltest Du zum selben Ergebnis kommen, aber mit "schöneren" Registern. Oder sind es 40000, 40006, 40070? Dann halt entsprechend E19 = -40000.

                            Würde mich freuen, wenn Du das noch probieren könntest; zum neuen Offset habe ich noch nicht so viele Rückmeldungen...
                            Zuletzt geändert von saegefisch; 24.06.2021, 20:57.

                            Kommentar


                              #59
                              Hey...

                              irgendwie scheint das nicht zu funktionieren. Wenn ich E19 = -30000 (-40000) einstelle und in E8 entsprechend die Register lt. Doku bekomme ich keine Werte! Irgendetwas passt hier scheinbar nicht!?

                              Gruß
                              Sven

                              Kommentar


                                #60
                                Hey @saegefisch,

                                erstmal riesen Kompliment zu deinem LBS. Das Ding funktioniert großartig. Ich habe einen Wechselrichter von SMA und eine Batterie von Varta und alle Werte werden problemlos ausgelesen. Vielen Dank also schon mal dafür. 😀

                                Ein kleines Problem habe ich aber auch und wollte mal schauen, ob du dazu eine Idee hast. Aktuell ist es ja so, dass du es so programmiert hast, dass man auf dem E1 starten und stoppen kann. Ich habe nun ja einen Wechselrichter und eine Batterie, wo ich die Werte per Modbus abfrage und der Baustein immer etwas unterschiedliche lange braucht, um die Anfrage abzuarbeiten. Über den gesamten Tag gesehen, laufen also die beiden LBS immer mehr ganz leicht auseinander. Ich brauche die Werte aber ungefähr zur selben Zeit, damit ich mit den ermittelten Daten auch sinnvolle Werte (wie den Verbrauch) berechnen kann, da ich diese nicht von deinem der Geräte erhalte. Für mich wäre es im ersten Moment am einfachsten, wenn ich einen Impuls auslöse und selbst entscheiden könnte, wann der LBS einmal durchläuft und er danach dann einfach wieder stoppt.

                                Wie löst ihr sowas oder habt ihr das Problem gar nicht, weil ihr die benötigten Werte alle sauber von einem Gerät bekommt?

                                Wäre es denkbar, dass ich an E1 einfach nur einen Impuls mit einer 1 sende und dann direkt wieder auf 0 setze? Würde er dann sauber durchlaufen?

                                Viele Grüße

                                Kommentar

                                Lädt...
                                X