Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter Modbus: Mehrere Geräte IDs / Timeout beim auslesen von mehr als einen Teilnehmern

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter Modbus: Mehrere Geräte IDs / Timeout beim auslesen von mehr als einen Teilnehmern

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Stefan_io last edited by

      Hallo,
      Ich bin neu Hier im Forum unterwegs und verzeiht mir wenn der Beitrag hier falsch ist. Ich habe schon seit einigen Tagen versucht mit lesen hier im Forum eine Lösung zu finden.
      Mein Problem:
      Ich versuch per Modbus Adapter 4 Stromzähler vom Typ SDM120M mit den Adressen 2-5 an einem USB<>RS485 Wandler mit dem IOBroker auszulesen. Der Bus läuft mit dem selben USB to RS485 Adapter an einem Win-PC ohne Problem, ich kann alle 4 Zähler auslesen.
      Beim IOBrocker kann ich einen Zähler auslesen, sobald ich den zweiten zähler versuche zu Konfigurieren gibt es ein Timeout

      Meine Konfiguration des Adapter
      35f07ab3-6023-4a58-9ebc-0ca878f70ad8-grafik.png

      für einen Zähler die Funktioniert
      acf58673-1983-4bc6-b442-9d54a7c6f185-grafik.png

      versuche ich eine zweiten Zähler zu Konfigurieren gibt es Timeout
      22da4bf1-2d96-417e-b915-178cada8f945-grafik.png

      2019-04-30 19:39:09.775 - info: modbus.0 starting. Version 2.0.9 in /opt/iobroker/node_modules/iobroker.modbus, node: v8.16.0
      2019-04-30 19:39:10.260 - info: modbus.0 Connected to slave
      2019-04-30 19:39:20.950 - warn: modbus.0 Error: undefined
      2019-04-30 19:39:20.951 - error: modbus.0 Request timed out.
      2019-04-30 19:39:20.952 - warn: modbus.0 Poll error count: 1 code: {"err":"timeout"}
      2019-04-30 19:39:21.955 - info: modbus.0 Disconnected from slave
      2019-04-30 19:39:33.969 - info: modbus.0 List of port: [{"comName":"/dev/ttyAMA0"},{"manufacturer":"Silicon Labs","serialNumber":"0001","pnpId":"usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0","vendorId":"10c4","productId":"ea60","comName":"/dev/ttyUSB0"}]
      2019-04-30 19:40:21.977 - info: modbus.0 Connected to slave
      2019-04-30 19:40:31.984 - warn: modbus.0 Error: undefined
      2019-04-30 19:40:31.985 - error: modbus.0 Request timed out.
      2019-04-30 19:40:31.986 - warn: modbus.0 Poll error count: 2 code: {"err":"timeout"}
      2019-04-30 19:40:32.986 - info: modbus.0 Disconnected from slave

      Danke für eure Hilfe!

      1 Reply Last reply Reply Quote 0
      • S
        Stefan_io last edited by

        Leider bin ich noch nicht weiter gekommen. Mehr als einen Slave kann ich nicht Auslesen

        Hier noch mal das letzte LOG

        modbus.0 2019-05-05 15:23:38.965 debug Cleaning up request fifo.
        modbus.0 2019-05-05 15:23:38.963 debug Clearing timeout of the current request.
        modbus.0 2019-05-05 15:23:38.956 info Disconnected from slave
        modbus.0 2019-05-05 15:23:37.957 warn Poll error count: 1 code: {"err":"timeout"}
        modbus.0 2019-05-05 15:23:37.956 error Request timed out.
        modbus.0 2019-05-05 15:23:37.955 warn Error: undefined
        modbus.0 2019-05-05 15:23:32.937 debug Poll inputRegs DevID(3) address 0 - 2 bytes
        modbus.0 2019-05-05 15:23:32.936 debug Poll device 3
        modbus.0 2019-05-05 15:23:32.755 debug Poll inputRegs DevID(2) address 342 - 2 bytes
        modbus.0 2019-05-05 15:23:32.594 debug Poll inputRegs DevID(2) address 12 - 2 bytes
        modbus.0 2019-05-05 15:23:32.426 debug Poll inputRegs DevID(2) address 6 - 2 bytes
        modbus.0 2019-05-05 15:23:32.248 debug Poll inputRegs DevID(2) address 0 - 2 bytes
        modbus.0 2019-05-05 15:23:32.245 debug Poll device 2
        modbus.0 2019-05-05 15:23:32.242 info Connected to slave
        modbus.0 2019-05-05 15:23:32.223 debug connect to serial /dev/ttyUSB0 with 2400
        modbus.0 2019-05-05 15:23:31.767 info starting. Version 2.0.9 in /opt/iobroker/node_modules/iobroker.modbus, node: v8.16.0

        1 Reply Last reply Reply Quote 0
        • K
          KanteTaete last edited by

          @Stefan_io: Dann sind wir beiden anscheinend die Einzigen, die mit mehr als einem Slave arbeiten wollen!?
          Hier noch der Link zu meinem Post im anderen Modbus Thread: https://forum.iobroker.net/post/256922

          1 Reply Last reply Reply Quote 0
          • K
            KanteTaete last edited by

            Als nächstes sollten wir prüfen, was denn wirklich auf dem Modbus gesendet wird.
            Da gibt's ein paar Windows-Programme, mit denen man direkt auf dem Modbus senden und auch den Datenverkehr mithören kann.
            Ich hab nen 2. Modbus-USB-Adapter, mit dem ich parallel mal probieren kann, den Datenverkehr mitzuschneiden.
            Allerdings wird das ein wenig dauern, da mein Bus nicht mehr im Arbeitszimmer verfügbar ist und ich somit mit meinem Laptop den Raspi im Heizraum besuchen muss...😔

            Oder gibt's schon weitere Erkenntnisse?

            S 1 Reply Last reply Reply Quote 0
            • S
              Stefan_io @KanteTaete last edited by

              @KanteTaete
              Ich habe auch noch keine neuen Erkenntnisse. Habe mal die aktuelle Version von Git installiert aber die bringt auch keine Verbesserung.

              Hier noch mal das Log:

              • 2019-05-13 13:10:32.847 - debug: modbus.0 objectDB connected
                2019-05-13 13:10:32.905 - debug: modbus.0 statesDB connected
                2019-05-13 13:10:33.025 - info: modbus.0 starting. Version 3.0.0 in /opt/iobroker/node_modules/iobroker.modbus, node: v8.16.0
                2019-05-13 13:10:33.550 - debug: modbus.0 connect to serial /dev/ttyUSB0 with 2400
                2019-05-13 13:10:33.565 - info: modbus.0 Connected to slave
                2019-05-13 13:10:33.567 - debug: modbus.0 Poll device 2
                2019-05-13 13:10:33.569 - debug: modbus.0 Poll inputRegs DevID(2) address 0 - 2 bytes
                2019-05-13 13:10:33.733 - debug: modbus.0 received answer for wrong ID 2, expected 1
                2019-05-13 13:10:33.744 - debug: modbus.0 Poll device 3
                2019-05-13 13:10:33.745 - debug: modbus.0 Poll inputRegs DevID(3) address 0 - 2 bytes
                2019-05-13 13:10:43.757 - warn: modbus.0 Error: undefined
                2019-05-13 13:10:43.758 - error: modbus.0 Request timed out.
                2019-05-13 13:10:43.759 - warn: modbus.0 Poll error count: 1 code: {"err":"timeout"}
                2019-05-13 13:10:43.762 - debug: modbus.0 Poll device 4
                2019-05-13 13:10:43.763 - debug: modbus.0 Poll inputRegs DevID(4) address 0 - 2 bytes
                2019-05-13 13:10:44.762 - info: modbus.0 Disconnected from slave
                2019-05-13 13:10:44.769 - debug: modbus.0 Clearing timeout of the current request.
                2019-05-13 13:10:44.770 - debug: modbus.0 Cleaning up request fifo.
                2019-05-13 13:11:41.969 - debug: modbus.0 system.adapter.admin.0: logging false
                2019-05-13 13:11:44.767 - debug: modbus.0 connect to serial /dev/ttyUSB0 with 2400
                2019-05-13 13:11:44.774 - info: modbus.0 Connected to slave
                2019-05-13 13:11:44.776 - debug: modbus.0 Poll device 2
                2019-05-13 13:11:44.776 - debug: modbus.0 Poll inputRegs DevID(2) address 0 - 2 bytes
                2019-05-13 13:11:48.020 - debug: modbus.0 system.adapter.admin.0: logging true
                2019-05-13 13:11:54.780 - warn: modbus.0 Error: undefined
                2019-05-13 13:11:54.782 - error: modbus.0 Request timed out.
                2019-05-13 13:11:54.783 - warn: modbus.0 Poll error count: 2 code: {"err":"timeout"}
                2019-05-13 13:11:54.785 - debug: modbus.0 Poll device 3
                2019-05-13 13:11:54.788 - debug: modbus.0 Poll inputRegs DevID(3) address 0 - 2 bytes
                2019-05-13 13:11:55.784 - info: modbus.0 Disconnected from slave
                2019-05-13 13:11:55.789 - debug: modbus.0 Clearing timeout of the current request.
                2019-05-13 13:11:55.790 - debug: modbus.0 Cleaning up request fifo.

              Was mich irritiert ist die Fett markierte Zeile erwartet immer die Antwort von der auf der ID die unter den Allgemeinen Einstellt ist.

              Neu sind auch die drei Punkte unten. Was kann ich hiermit machen ?

              3b9c857d-d008-4f28-9783-9ca043e3fcea-grafik.png

              Aktuell verwende ich einen CP2102 USB<>R485 Wandler an meinem IOBorker RasPI. Werde mir den Bus auch mal bei Gelegenheit mit dem Oszilloskop ansehen , kann aber was dauern.

              1 Reply Last reply Reply Quote 0
              • S
                Stefan_io last edited by Stefan_io

                Habe noch weiter getestet.

                1. Ich habe mal wieder den USB-RS485 Stick in meinen Win10 Rechner gesteckt und dann per Modbus Poll mir die 4 Slave angelegt und jeweils die 3001 (Spannung) der Zähler ausgelesen.
                  Wenn ich die Scan Rate zu niedrig setzt, bekomme ich Timeout Fehler. Aber mit 4000ms läuft es stabil.
                  Aber daran kann es nicht liegen, im IOBroker habe ich 10sec eingestellt

                2. Ich habe mir mit dem Oszilloskop mal das Geschehen auf dem Bus angesehen.
                  Ich habe keine Pause (min. 3,5 Zeichen bei 2400Baud ca 16ms) zwischen den Abfragen von 1.Slave und deren Antwort und der Abfrage von 2. Slave gesehen.
                  Es kommt keine Antwort von 2.Slave.
                  Nach Ablauf der Eingestellten Reconnet Time (bei mir 60 sec) wird die Anfrage an den 1.Slave wiederholt. Jetzt Antwortet auch der 1. Slave auch nicht mehr. Wenn ich die Modbus Instanz neu Starte bekomme ich sofort eine Antwort von 1.Slave

                Es sieht so aus als wenn die Modbus Instanz den Bus nicht richtig Frei gibt. Weiss einer wie die Richtungs-Kontrolle beim bei einem USB<>485 Sticke mit FTDI und CP2102 Chip erfolgt.

                1 Reply Last reply Reply Quote 0
                • S
                  Stefan_io last edited by

                  Habe im FTDI Datenblatt zum Thema Direction Control nachgelesen.
                  Das macht der Chip, sofern CBUS2 richtig konfiguriert, selber.

                  " Note that the TXDENis activated 1 bit period before the start bit. TXDENis deactivated at the same time as the stop bit. This is not configurable "

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Stefan_io @Stefan_io last edited by Stefan_io

                    Da es hier keine Lösung gibt habe ich jetzt eine Workaround gefunden.
                    Ich habe auf dem ioBroker Raspi das Programm mbusd https://github.com/3cky/mbusd installiert und den Modbus-Adapter per TCP verbunden . Nun kann ich alle Slaves einlesen.

                    @KanteTaete ist vielleicht auch eine Lösung für dich?

                    1 Reply Last reply Reply Quote 0
                    • I
                      ioStarter last edited by

                      Hi Stefan,
                      ich bin gerade neu in dieses Thema eingestiegen und möchte auch gerne mehrere Stromzähler (Z.B. SDM120) über den Modbus an einem USB Port eines Rasperry Pi anschließen.
                      Im Moment habe ich jedoch noch Startprobleme, wie das auch in der Praxis aussieht und benötige noch viel Input.
                      Könntest Du hier vielleicht eine Projektbeschreibung einstellen, wie Du das für Dich gelöst hast?
                      Anbindung der Zähler und Konfiguration im ioBroker?
                      Viele Grüße

                      1 Reply Last reply Reply Quote 0
                      • B
                        bibabuma last edited by

                        Hallo zusammen,
                        ich habe aktuell exakt das gleiche Problem wie von Stefan_io beschrieben.

                        Ich verwende 3 x SDM120M. Jeden einzelnen Stromzähler kann ich per Adapter abfragen, im "Multibetrieb" klappt das nicht.

                        Hat jemand den Adapter mit mehreren Geräten unter "Serial" im Einsatz? Wie sieht da die Konfiguration aus? Kann jemand helfen?

                        Gruß
                        Tom

                        1 Reply Last reply Reply Quote 0
                        • sven wilhelmi
                          sven wilhelmi last edited by

                          Hallo zusammen,
                          ich habe auch das gleiche Problem. Ein Slave funktioniert, sobald es mehrere werden, geht es nicht mehr.
                          Habe jetzt schon rausgefunden, dass die Modbus Instanz immer nur an die niedrigste Slave ID sendet.

                          In einem anderen Beitrag stand, dass man mehrere Instanzen anlegen soll. Ich möchte aber insgesamt über 100 Slaves anschließen, kann ja dafür keine 100 Instanzen erstellen.

                          Habt ihr eine Lösung gefunden ?

                          Danke im Voraus
                          Sven

                          1 Reply Last reply Reply Quote 0
                          • cbund
                            cbund last edited by

                            Bräuchte die Funktion auch. Funktioniert es bei euch?

                            cbund 1 Reply Last reply Reply Quote 0
                            • cbund
                              cbund @cbund last edited by

                              @cbund also mehrere Geräte über den IObroker mit Rtu adapter funktioniert bei mir nicht. Ich habe es mit obigem Tool mbusd gelöst. Das funktioniert zumindest bei 2 Stromzählern.

                              1 Reply Last reply Reply Quote 0
                              • David Friedrich
                                David Friedrich last edited by David Friedrich

                                Hallo zusammen, ich habe VenusOS auf dem Raspberry 4 laufen.
                                Bei mir läuft der ModBus Adapter auch mit mehr als einem Slave.
                                Meine Config:![alt text](ModBus_config.jpg image url)
                                Eingangsregister:eingagsregister_1.jpg
                                eingangsregister_2.jpg

                                Im Eingangsregister habe ich die SlaveID vergeben.

                                IoBroker Objekte:
                                broker_snap_1.jpg
                                broker_snap_2.jpg
                                broker_snap_3.jpg

                                Einige Werte in der Excel stimmen nicht ganz:
                                Bei Adresse 3 der Scale Factor ist nicht 10 sondern 0.1
                                Das ist auch bei den angaben für Hz, A DC, AV (Watt).

                                Jetzt muss ich es nur noch schaffen das ich die Einstellungen am System vom Broker ändern kann.

                                cbund 1 Reply Last reply Reply Quote 0
                                • cbund
                                  cbund @David Friedrich last edited by

                                  @David-Friedrich Hallo es ging um den Modbus RTU. Du hast TCP da funktionieren die mehreren Slaves.

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    dagrizzly @cbund last edited by

                                    Besteht das Problem bei euch immernoch?
                                    Beschränkt es sich auf die Serielle Abfrage?
                                    Kann man die Multi Slave Problematik evtl. umgehen mittels eines TCP/Rtu Gateways und dann die Anfragen nur über TCP machen?

                                    Danke für Eure Rückmeldung.

                                    Grüße Raphael

                                    P 1 Reply Last reply Reply Quote 0
                                    • P
                                      peterfido @dagrizzly last edited by

                                      @dagrizzly
                                      Der Modbus Adapter lief bei mir nie zuverlässig. Ständig timeouts. Ich nutze seit einiger Zeit Node-Red für Modbus (und Easy-E4 sowie serielle Kommunikation). Das läuft bei mir absolut zufriedenstellend.

                                      Zwischenzeitlich habe ich den USB Modbus-Adapter durch usriot TCP Modbus ersetzt. Läuft noch stabiler (die gelegentlichen CRC-fehler sind weg). Wichtig sind die Pausen zwischen den Abfragen. Setze ich die zu klein, gibt es auch da timeouts. Node-Red startet dann allerdings die Kommunikation (sauber) von vorn inkl. Initialisierung der Schnittstelle.

                                      V 1 Reply Last reply Reply Quote 0
                                      • V
                                        V8Turbo @peterfido last edited by

                                        @peterfido Hatte hier mal jemand eine Lösung ? Habe das problem sobald ich mehr als eine Registeradresse auslese das ich CRC Fehler bekomme.

                                        O 1 Reply Last reply Reply Quote 0
                                        • O
                                          onweb @V8Turbo last edited by onweb

                                          @v8turbo

                                          Ich habe festgestellt, dass man mehrere Geräte IDs benutzen kann, aber die Adresse niemals doppelt verwendet werden darf.
                                          Dies ist womöglich ein Problem von ioBroker bei der Interpretation der Konfiguration?

                                          Ich habe hier 2 Module, eins mit der ID1 und das andere mit ID 32.

                                          Digital Ausgang **0** auf **ID 1**
                                          Digital Ausgang **1** auf **ID 1**
                                          Digital Ausgang **2** auf **ID 32**
                                          

                                          dies klappt, aber wehe man fügt hinzu

                                          Digital Ausgang **2** auf **ID 1**
                                          

                                          dann ist der Adapter Fehlerhaft, sobal man darauf schreibt.
                                          Wahrscheinlich weil es Ausgang 2 schon gibt, nach irgendeiner internen Interpretation?

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            MyMeyer @onweb last edited by

                                            @onweb Hi das Thema ist zwar schon älter aber genau mein Problem. Wie hast Du das mit den gleichen Geräte-ID´s geklärt ? So sieht es aktuell bei mir aus:
                                            db598e1f-6ebe-49ac-a9a6-59e975cf8365-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            568
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter modbus
                                            12
                                            20
                                            5373
                                            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