Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS: Abfrage von Modbus TCP via Homeserver

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

    Der Parameter heißt “ Sleep500ms” - 600ms gibts nicht.

    mit der Laufzeit hast du eigentlich recht. Außer der Modbus-Server verschluckt sich. Bitte debug aktivieren und im Debug nachsehen. Kann hier daran liegen, dass er bisher mit dem falschen sleepwert ganz ohne Sleep lief.

    Kommentar


      Zum Verständnis noch mal: Fragt die Logik die 8 möglichen Register in einem Rutsch oder einzeln hintereinander (im Abstand des Sleep-Wertes, wenn gesetzt) ab?

      Kommentar


        Hallo Sven,

        so sieht es aus:

        Global
        Kontext / Instanzen / Threads
        - ModulID / FW-Index / Instanzen / Version
        hsl20_3 / 18 / 2
        - 10158 / 5 / 18 / 1.0
        hs_modbusTCP_reader14184 / 6 / 2
        - 14184 / 5 / 6 / 1.2
        Ping / 18 / 2
        - 13682 / 5 / 18 / v1.4 www.TecSupport.de
        hs_modbusTCP_writer14185 / 2 / 2
        - 14185 / 5 / 2 / 1.1
        TIMER IN LIST 23
        Exceptions
        29.11.2023 19:28:41 (1)
        File "<Hs_modbusTCP_reader14184>", line 500, in __thread_queue_consumer
        File "<Hs_modbusTCP_reader14184>", line 801, in on_input_value
        AttributeError: 'NoneType' object has no attribute 'stop'
        hs_modbusTCP_reader14184
        Raw value 2 of type uint32 4222269
        Raw value 7 of type uint32 0
        Raw value 1 of type uint32 6000
        Conn IP:Port (UnitID) 192.168.2.13:502 (255)
        Error values: 1/41/42/15
        Raw value 3 of type uint32 10872
        Last exception msg logged Message: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.2.13:502)]
        Output value 6 with address 1004 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
        Raw value 4 of type uint32 769146
        Raw value 6 of type uint32 7
        Output value 5 with address 1000 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
        Raw value 5 of type uint32 3
        Output value 4 with address 1036 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe


        ACHTUNG: Die Wallbox 192.168.2.13 ist noch nicht in Betrieb, nur die 192.168.2.14.

        In der Anleitung (hier noch mal in der Anlage) steht, dass der Abstand zwischen den Abfragen >0,5s sein soll. Ich habe nun "Sleep500ms" eingebaut. Jetzt sieht es schon viel besser aus. Das Einlesen aller Daten dauert nur noch 16s. Es sind auch zwei Logikmodule pro Wallbox im Einsatz, die ich zweitversetzt starten. Da passen die 15s genau. Schneller muss es auch nicht sein.
        Angehängte Dateien

        Kommentar


          Ich habe meine Heidelberg Wallbox gegen eine em2go aus echtem Chinesium (KATASTROPHE) und anschließend durch eine Warp2 ersetzt. Was soll ich sagen.. erstmal ging mit der Warp2 gar nichts. Dann habe ich die Warp2 auf Keba umgestellt und seit dem Schnurrt sie wie ein Kätzchen!
          grafik.png
          Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

          Kommentar


            Achso und meinen SMA Wechselrichter habe ich auch endlich umgestellt.
            WICHTIG! Die Slave ID von 3 beachten! das hat mich die meiste Zeit gekostet. Hat man es zu sehr vermurkst, lehnt der Baustein die Antworten des Wechselrichters ab, dann einmal den HS neustarten.
            grafik.png
            Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

            Kommentar


              BadSmiley
              ein Blick in Beitrag 3 hier hätte die evtl. ein wenig Zeit erspart . Hatte damals auch einen SMA getestet
              greetz Benni

              Kommentar


                Ja schon gesehen aber das war die Version 0.1 und die Einstellungen haben sich seit dem etwas geändert. Ich habe mich daran orientiert. Danke.
                Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

                Kommentar


                  Hallo zusammen anbei mal meine Umsetzung für einen Stiebel Eltron WPM mit einem ISG-Web.

                  Hier der Link zu der wirklich sehr guten und vollständigen Doku.
                  https://www.stiebel-eltron.de/conten...32a657e54a.pdf

                  Wichtig ist vor der Integration mit dem Homeserver die Register extern abzufragen um zu schauen ob man überhaupt einen Wert bekommt, da diese je nach Konfiguration der Anlage beschrieben werden.

                  Stiebel-Eltron ISG Web Holding Register Read.jpg Stiebel-Eltron ISG Web Input Register.jpg

                  Kommentar


                    Meine W Angabe vom sma stimmt nicht. Da kommt voll der Mist heraus.
                    Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

                    Kommentar


                      Weil S32 auch „int32“ ist und nicht „uint32“.

                      Kommentar


                        Guten Abend in die Runde,

                        ich bin gerade dabei unsere Pelletsheizung über Modbus TCP auszulesen und habe hierzu eine Verständnisfrage bezüglich der Modbus Slave ID. Auf welchen Wert muss diese gesetzt sein (egal ob ich 1, 2, oder 3.... einsetze funktioniert es) fühle mich allerdings "unwohl" irgendetwas zu vergeben ohne es zu verstehen!
                        Über eine kleine Hilfestellung wäre ich sehr dankbar
                        p.s.: Ich habe das Logikmodul 3x verwendet und kaskadiert - weiß nicht ob das hierbei eine Rolle spielt!?

                        Liebe Grüße

                        Kommentar


                          SlaveID ist die Geräte-Adresse. Das kommt in meinen Augen daher, dass mehrere Geräte auf einem ModBus RTU lauschen können.
                          Bei TCP hingegen erledigt dies in der Regel die IP-Adresse und hier verwendet man es garnicht (dann ist die SlaveID egal), sitzt fest auf einem Wert wie 1 oder 255 oder unterscheidet Geräte-Funktionen.

                          Kaputtmachen kannst du da nichts beim Lesen. Kaskade spielt keine Rolle. Siehe auch https://ipc2u.de/artikel/wissenswert...hlsbeispielen/

                          Kommentar


                            Hallo Sven,

                            vielen Dank dafür! Dann werden ich die auf dem Default belassen und mich weiter ausprobieren! Bin auch direkt über die nächste Hürde gestolpert: Unsere Heizung hat 3 Erweiterungsmodule verbaut (Boiler, Puffer, Heizkreis) welche alle auf das Register 41xxx laufen. Laut der Registerbeschreibung muss wohl das Register 41000 mit einem Wert beschrieben werden um die Auswahl auf das jeweilige Modul zu treffen (z.Bsp. Wert "10" zur Auswahl des Moduls "Heizkreis") --> zumindest deute ich das ganze so (Bin absoluter Neuling was Modbus angeht und habe mich versucht weitestgehend einzulesen und zu probieren) konnte dazu bis Dato leider aber nichts finden.
                            Habe mal einen Screenshot beigefügt, vielleicht hatte jemand ja schonmal das gleiche oder ein ähnliches Problem!?

                            Liebe Grüße

                            87268F9D-33A0-4E66-B05E-272E50417C68.jpg
                            1DB9BADA-AD53-4D54-BCEC-275D81C77EE8.jpg

                            Kommentar


                              Verstehe deine Screenshots irgendwie nicht. Hast du auch eine Typenbezeichnung und Anleitung? Welche Module sind verbaut?

                              Kommentar


                                Bei der Heizung handelt es sich um eine HERZ Pelletstar Condensation. Die Anleitung hilft leider überhaupt nicht weiter, da steht nichts drin zum Thema Modbus und den Registern. Auf Anfrage bei HERZ gab es dann nur eine Excel mit den Registerbeschreibungen. Die Register für die Anlage als solches funktionieren auch alle (Sind alle im 40xxx Bereich) --> Screenshot anbei.
                                Für die oben erwähnten Module stehe ich wie gesagt völlig auf dem Schlauch da alle die gleiche Registernummern Haben, aber logischerweise alle andere Werte!

                                z.Bsp. ruft das Register 41002 (erster Screenshot) auf dem Modul für den Heizkreis die Vorlauf -Ist Temperatur ab.

                                Das zweite Modul ist für den Boiler zuständig (zweiter Screenshot), hat aber ebenfalls die Registernummer 41002 --> hier allerdings für die Boilertemperatur

                                Für das dritte Modul "Pufferspeicher" (neuer Screenshot hier anbei) sieht es genauso aus! Auch hier gibt es wieder ein Register 41002 welches hier die Werte der oberen Puffertemperatur liefert.

                                In der Registerbeschreibung steht ja unter der Register Nr.: 41000 + X und es ist jeweils eine Spalte beim Statusbyte Grün hinterlegt mit einem jeweiligen Wert (Im Falle des Heizkreises die 10, für den Boiler die 9 und für den Puffer die 8.
                                Wenn ich mittels Modbus Poll das Register 41000 Abfrage steht hier als Wert auch eine 8 drin, welche auf das Puffermodul schließen lässt (und sämtliche weitere Werte der folgenden Register auch der Realität entsprechen)
                                Somit bekomme ich das Modul für den Pufferspeicher noch abgefragt, Heizkreis und Boiler allerdings nicht, da gleiche Registernummern
                                ich frage mich halt ob ich irgendetwas schreiben muss um (ich formuliere es mal blöde und rudimentär) in dem Register 41000 in den Werten 8, 9 und 10 springen zu können und somit die Module der Reihe nach abzufragen und somit die gleichen Registernummern nutzen kann!?
                                image.png

                                Kommentar

                                Lädt...
                                X