Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Probleme mit dem Modbus Adapter, oder doch der Hardware?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Probleme mit dem Modbus Adapter, oder doch der Hardware?

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Martin 5 last edited by

      Hallo,
      ich lese zwei Geräte mit dem Modbus-Adapter (Fronius WR und Elgris Zähler) aus.
      Von beiden Geräten lese ich alle 5 Sekunden die Leistung aus und das klappt gut.
      Auch von beiden Geräten möchte ich alle 5 Minuten Zählwerte auslesen und das klappt nur beim WR zufriedenstellend.
      Ich habe 4 Modbus Instanzen eingerichtet,
      modbus.0 Zähler Datenabfrageintervall 5000ms - funktioniert
      modbus.1 WR Datenabfrageintervall 5000ms - funktioniert
      modbus.2 Zähler Datenabfrageintervall 300000ms - funktioniert nicht
      modbus.3 WR Datenabfrageintervall 300000ms - funktioniert

      modbus.2 fragt den Zähler alle 1:40 (min:sek) ab. Ich habe das Intervall auf 1200000ms erhöht - ohne Änderung.
      Nun habe ich im Forum schon gesucht und gefunden das es an Verbindungsabbrüchen liegen kann. Und ja, diese sind vorhanden. 40 Sek. nach dem Pollbeginn wir wird die Verbindung unterbrochen. Nach der im Adapter eingestellten Minute wird dann wieder eine Verbindung aufgebaut, usw. Ich denke die Verbindung wird vom Zähler beendet.

      Was kann man da tun?
      Kann man von einem Script aus die Datenabfrage des Modbusadapters steuern?
      Kann man von einem Script aus TCP-Netzwerkverbindungen aufbauen und sich um den Modbus selber kümmern?

      Wer kann helfen? Gedankenanstöße?

      Grüße Martin

      Protokollausschnitt:

      2024-10-24 21:05:32.128 - debug: modbus.3 (7022) [DevID_1] Poll start ---------------------
      2024-10-24 21:05:32.130 - debug: modbus.3 (7022) [DevID_1/holdingRegs] Poll address 509 - 4 registers
      2024-10-24 21:05:32.367 - debug: modbus.3 (7022) [DevID_1/holdingRegs] Poll address 509 DONE
      2024-10-24 21:05:32.377 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus3 (509) alter Wert. 26270600, neuer Wert: 26270600
      2024-10-24 21:05:57.542 - info: modbus.2 (6993) Connected to slave 192.168.178.31
      2024-10-24 21:05:57.543 - debug: modbus.2 (6993) [DevID_1] Poll start ---------------------
      2024-10-24 21:05:57.544 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 - 10 registers
      2024-10-24 21:05:57.552 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 DONE
      2024-10-24 21:05:57.605 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40107) alter Wert. 4852271, neuer Wert: 4852271
      2024-10-24 21:05:57.609 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40115) alter Wert. 206768, neuer Wert: 206771
      2024-10-24 21:06:37.413 - debug: modbus.2 (6993) Socket closed with error
      2024-10-24 21:06:37.413 - debug: modbus.2 (6993) Clearing timeout of the current request.
      2024-10-24 21:06:37.414 - debug: modbus.2 (6993) Cleaning up request fifo.
      2024-10-24 21:06:38.416 - debug: modbus.2 (6993) Closing client on purpose.
      2024-10-24 21:06:38.416 - info: modbus.2 (6993) Disconnected from slave 192.168.178.31
      2024-10-24 21:07:38.426 - info: modbus.2 (6993) Connected to slave 192.168.178.31
      2024-10-24 21:07:38.427 - debug: modbus.2 (6993) [DevID_1] Poll start ---------------------
      2024-10-24 21:07:38.428 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 - 10 registers
      2024-10-24 21:07:38.440 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 DONE
      2024-10-24 21:07:38.448 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40107) alter Wert. 4852271, neuer Wert: 4852271
      2024-10-24 21:07:38.489 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40115) alter Wert. 206771, neuer Wert: 206774
      2024-10-24 21:08:18.011 - debug: modbus.2 (6993) Socket closed with error
      2024-10-24 21:08:18.012 - debug: modbus.2 (6993) Clearing timeout of the current request.
      2024-10-24 21:08:18.012 - debug: modbus.2 (6993) Cleaning up request fifo.
      2024-10-24 21:08:19.013 - debug: modbus.2 (6993) Closing client on purpose.
      2024-10-24 21:08:19.014 - info: modbus.2 (6993) Disconnected from slave 192.168.178.31
      2024-10-24 21:09:19.201 - info: modbus.2 (6993) Connected to slave 192.168.178.31
      2024-10-24 21:09:19.202 - debug: modbus.2 (6993) [DevID_1] Poll start ---------------------
      2024-10-24 21:09:19.203 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 - 10 registers
      2024-10-24 21:09:19.225 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 DONE
      2024-10-24 21:09:19.237 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40107) alter Wert. 4852271, neuer Wert: 4852271
      2024-10-24 21:09:19.278 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40115) alter Wert. 206774, neuer Wert: 206777
      2024-10-24 21:09:59.112 - debug: modbus.2 (6993) Socket closed with error
      2024-10-24 21:09:59.113 - debug: modbus.2 (6993) Clearing timeout of the current request.
      2024-10-24 21:09:59.113 - debug: modbus.2 (6993) Cleaning up request fifo.
      2024-10-24 21:10:00.114 - debug: modbus.2 (6993) Closing client on purpose.
      2024-10-24 21:10:00.115 - info: modbus.2 (6993) Disconnected from slave 192.168.178.31
      2024-10-24 21:10:32.422 - debug: modbus.3 (7022) [DevID_1] Poll start ---------------------
      2024-10-24 21:10:32.423 - debug: modbus.3 (7022) [DevID_1/holdingRegs] Poll address 509 - 4 registers
      2024-10-24 21:10:32.638 - debug: modbus.3 (7022) [DevID_1/holdingRegs] Poll address 509 DONE
      2024-10-24 21:10:32.646 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus3 (509) alter Wert. 26270600, neuer Wert: 26270600
      2024-10-24 21:11:00.123 - info: modbus.2 (6993) Connected to slave 192.168.178.31
      2024-10-24 21:11:00.123 - debug: modbus.2 (6993) [DevID_1] Poll start ---------------------
      2024-10-24 21:11:00.124 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 - 10 registers
      2024-10-24 21:11:00.139 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 DONE
      2024-10-24 21:11:00.147 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40107) alter Wert. 4852271, neuer Wert: 4852271
      2024-10-24 21:11:00.189 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40115) alter Wert. 206777, neuer Wert: 206780
      2024-10-24 21:11:39.711 - debug: modbus.2 (6993) Socket closed with error
      2024-10-24 21:11:39.711 - debug: modbus.2 (6993) Clearing timeout of the current request.
      2024-10-24 21:11:39.712 - debug: modbus.2 (6993) Cleaning up request fifo.
      2024-10-24 21:11:40.713 - debug: modbus.2 (6993) Closing client on purpose.
      2024-10-24 21:11:40.715 - info: modbus.2 (6993) Disconnected from slave 192.168.178.31
      2024-10-24 21:12:40.763 - info: modbus.2 (6993) Connected to slave 192.168.178.31
      2024-10-24 21:12:40.764 - debug: modbus.2 (6993) [DevID_1] Poll start ---------------------
      2024-10-24 21:12:40.765 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 - 10 registers
      2024-10-24 21:12:40.774 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 DONE
      2024-10-24 21:12:40.784 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40107) alter Wert. 4852271, neuer Wert: 4852271
      2024-10-24 21:12:40.868 - info: javascript.0 (797) script.js.common.ZaehlerModbus: Modbus2 (40115) alter Wert. 206780, neuer Wert: 206783
      
      Homoran 1 Reply Last reply Reply Quote 0
      • P
        peterfido last edited by peterfido

        @martin-5 Für Modbus nutze ich Node-Red. Mehrere Werte lese ich in Häppchen mit kleinen Pausen zwischendurch ein. Klappt zuverlässig mit drei Zählern am Bus.

        Mein Flow habe ich hier gepostet.

        M 1 Reply Last reply Reply Quote 0
        • M
          Martin 5 @peterfido last edited by

          @peterfido Danke aber ich wollte deswegen jetzt nicht noch ein weiteres Programm verwenden.

          Grüße Martin

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Martin 5 last edited by Homoran

            @martin-5 sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

            debug: modbus.2 (6993) Socket closed with error

            kommt da irgendwo ein Code als Fehler im

            @martin-5 sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

            debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 - 10 registers

            oder sind die 10 Register zu viel auf einmal
            oder was ist 40107?

            wie sind die Einstellungen?

            was macht der javascript adapter da zeitgleich?

            M 1 Reply Last reply Reply Quote 0
            • M
              Martin 5 @Homoran last edited by

              @homoran sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

              kommt da irgendwo ein Code als Fehler

              Nö, nur das was da steht.

              oder sind die 10 Register zu viel auf einmal

              Ist auch bei einem Register so.

              oder was ist 40107?

              Das ist das erste Register.

              Der Zähler beendet einfach die Verbindung nach 40sek. Setze ich die Pollzeit auf 30 Sekunden passiert das nicht.

              Aber da kommt mir eine Idee. Ich setze die Zeit für das Wiederverbinden auch auf 5 Minuten dann könnte es klappen.

              Grüße Martin

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Martin 5 last edited by

                @martin-5 sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

                Nö, nur das was da steht.

                Da strht das ja auch nicht.
                Das steht als Wert bei dem angemeckerten Register

                z.B.
                Screenshot_20240909-152840_Firefox.jpg

                M 1 Reply Last reply Reply Quote 0
                • M
                  Martin 5 @Homoran last edited by

                  @homoran

                  Das auslesen der Register funktioniert ja und die Werte stimmen. Der Fehler kommt ja erst 40 Sekunden später.

                  2024-10-24 21:05:57.543 - debug: modbus.2 (6993) [DevID_1] Poll start --------------------
                  2024-10-24 21:05:57.544 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 - 10 registers
                  2024-10-24 21:05:57.552 - debug: modbus.2 (6993) [DevID_1/holdingRegs] Poll address 40107 DONE
                  2024-10-24 21:06:37.413 - debug: modbus.2 (6993) Socket closed with error
                  2024-10-24 21:06:37.413 - debug: modbus.2 (6993) Clearing timeout of the current request.
                  2024-10-24 21:06:37.414 - debug: modbus.2 (6993) Cleaning up request fifo.
                  2024-10-24 21:06:38.416 - debug: modbus.2 (6993) Closing client on purpose.
                  2024-10-24 21:06:38.416 - info: modbus.2 (6993) Disconnected from slave 192.168.178.31
                  

                  Setze ich die Wartezeit bis zum erneuten Verbinden auf den gleichen Wert wie die Pollzeit scheint es zu funktionieren.
                  Die Verbindung wird zwar auch unterbrochen aber die nächste Verbindung erfolgt erst wenn die Register wieder ausgelesen werden sollen. Dabei ist mir allerdings ein weiteres Problem aufgefallen. Gepollt wird nicht zu jeder durch 5 teilbaren Minute sondern alle 5 Minuten und ein paar Millisekunden. Somit ist es nicht sicher zu welcher Zeit genau der Zählwert ermittelt wurde, es ist irgendwo zwischen der 0. und der 5. Minute.

                  Grüße Martin

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @Martin 5 last edited by Homoran

                    @martin-5 sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

                    sondern alle 5 Minuten

                    + die in den Objekten unter polltime stehende Zeit.
                    Also 5 Minuten Pause zwischen zwei Aktionen

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Martin 5 @Homoran last edited by

                      @homoran Ja so ist es. Ich brauche aber den Zählerstand zu festen Zeiten. ... 0, 5, 10,15 usw. Minuten.

                      Ich probiere weiter, vielen Dank.

                      Grüße Martin

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Martin 5 last edited by

                        @martin-5 sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

                        Ich brauche aber den Zählerstand zu festen Zeiten.

                        wofür?
                        Für eine Berechnung?
                        Nimm die Zeit zwischen den Timestamps

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          Martin 5 @Homoran last edited by

                          @homoran
                          Ich berechne die durchschnittliche Leistung der letzten 5 Minuten aus der Differenz der Zählerstände und speichere sie in eine Datei im Format Sekunden: Leistung (z.B. 300: 2, 600: 3 usw.). Dauert eine Aktion 100 ms und die Zeit zwischen den Aktionen ist 5 min verschiebt sich die Zeit über den Tag um 28,8 sek und im Monat um etwa 14min und 24 sek. Man könnte nun die Pollzeit anpassen aber es bleibt ein Fehler der sich aufsummiert. Besser wäre es doch zeitgesteuert zu pollen.

                          Meine Fragen sind aber beantwortet und ich weiß nun wie der Modbus-Adapter arbeitet.
                          Danke dafür.

                          Grüße Martin

                          Homoran 1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @Martin 5 last edited by

                            @martin-5 sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

                            aus der Differenz der Zählerstände

                            ...und der Differenz der Timestamps...

                            dann kannst du normieren

                            @martin-5 sagte in Probleme mit dem Modbus Adapter, oder doch der Hardware?:

                            Besser wäre es doch zeitgesteuert zu pollen.

                            nein!
                            JS arbeitet ereignisbasiert.
                            Da ist es genauer bei der Änderung des Werts zu rechnen.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            687
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            438
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo