Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus - Erste Schritte

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Modbus - Erste Schritte

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

      Stop mal Adapter vom update

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

        Die Fehlermeldung sagt es doch in der letzten Zeile:

        Als Administrator ausführen!

        Gruß

        Rainer

        1 Reply Last reply Reply Quote 0
        • N
          NightWatcher last edited by

          @Homoran:

          Die Fehlermeldung sagt es doch in der letzten Zeile:

          Als Administrator ausführen!

          Gruß

          Rainer `
          Bin gerade dran, die Console vom Server aus durchlaufen zu lassen. Ich habe mich nur gewundert, dass es nun plötzlich aus dem Admin raus nicht mehr geht.

          Edit: Update ist durch und was soll ich sagen - sieht SEHR gut aus 8-)

          1 Reply Last reply Reply Quote 0
          • N
            NightWatcher last edited by

            @Bluefox,

            bei DWORDs scheint das Problem

            http://forum.iobroker.net/viewtopic.php?p=37534#p37534

            auch da zu sein.

            Ich benutze Signed 32 Bit (Big Endian Word Swap)

            Brauchst du wieder WiresharK?

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

              @NightWatcher:

              @Bluefox,

              bei DWORDs scheint das Problem

              http://forum.iobroker.net/viewtopic.php?p=37534#p37534

              auch da zu sein.

              Ich benutze Signed 32 Bit (Big Endian Word Swap)

              Brauchst du wieder WiresharK? `
              Ja.

              Auf den ersten Blick. Sehe ich kein Fehler.

              1 Reply Last reply Reply Quote 0
              • N
                NightWatcher last edited by

                Ich möchte z.B. den Wert 658519 auf Adresse 14288 schreiben:

                1534_bild_001.png

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

                  @NightWatcher:

                  Ich möchte z.B. den Wert 658519 auf Adresse 14288 schreiben:

                  Bild 001.png `
                  Danke. Gefixt.

                  1 Reply Last reply Reply Quote 0
                  • N
                    NightWatcher last edited by

                    Hi Bluefox,

                    super Arbeit. Sieht sehr gut aus. Ich werde jetzt am WE sicherlich mal intensiver testen können, wo es mal langsam läuft.

                    1 Reply Last reply Reply Quote 0
                    • N
                      NightWatcher last edited by

                      Ich vermute immer noch nen kleines Problem bei den BYTE Adressen.

                      Ich glaube, dass die mit nem Update kamen, da es mal ging.

                      Adressen in der WAGO:
                      1534_bild001.png

                      Folgendes kommt in ioBroker an:
                      1534_bild002.png

                      Wireshark:
                      1534_bild003.png

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

                        Es fehlt noch, wie du das im IoB konfiguriert hast.

                        Gibt es überhaupt Byte Adressen???

                        In IoB gibt die nicht.

                        1 Reply Last reply Reply Quote 0
                        • N
                          NightWatcher last edited by

                          wie die anderen funktionierenden auch Signed 16 Bit (Little Endian).

                          EDIT: Komisch ist, dass die Daten auch im Modbus Master Simulator "falsch" angezeigt werden.

                          EDIT2: Ich habe mir mal schnell nen Script in PHP geschrieben. 1534_bild004.png

                          Benutzt habe ich readMultipleRegisters() aus folgender Library https://github.com/adduc/phpmodbus

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

                            Ich muss ehrlich sagen, ich verstehe es jetzt wenig.

                            Wenn ich 65535 als Signed LE Int16 behandle, dann kommt -1 raus.

                            65535 => 0xFFFF => -1(signed) oder 65535 (Unsigned)

                            65280 => 0xFF00 => -255(signed) oder 65280 (unsigned)

                            Ich habe trotzdem noch (u)int8 eingebaut. Dein fall sollte Uint8(Big endian) sein

                            1 Reply Last reply Reply Quote 0
                            • N
                              NightWatcher last edited by

                              Hi, auf dem ersten Blick ändert sich leider nichts. :?

                              Die Werte bleiben gleich dem 16 Bit. Habe auch die anderen 8Bit Möglichkeiten ohne Erfolg durchgetestet.

                              Konntest du die LIB einmal anschauen, was die anders macht, wie dein Adapter?

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

                                Wie hast du deine Werte konfiguriert?
                                48_2016-10-23_16_31_38-iobroker.admin.png
                                48_2016-10-23_16_32_14-iobroker.admin.png

                                Bei mir geht es.

                                1 Reply Last reply Reply Quote 0
                                • N
                                  NightWatcher last edited by

                                  Auch so, wie bei dir

                                  EDIT: Wenn ich den Host Neustarte, dann nimmt er es auch und ich sehe bei 8Bit Big Endian den richtigen Wert.

                                  Nichts desto trotz ist es ja in der Wago ein und der gleiche Datentyp und man muss aktuell immer testen, welchen Typ man in ioBroker nimmt. Denn endweder geht es mit 8Bit oder 16Bit.

                                  In meinem PHP Script kann ich es doch auch sauber auslesen und vor einigen Tagen klappte es auch in ioBroker noch einwandfrei. Meines Erachtens ist noch irgendwo im Adapter ein Bug. Leider steige ich nicht hinter denen Code und kann es auch nicht sauber debuggen 😐

                                  EDIT2: Was anderes wie den Wert 255 kennt er bei 8Bit bei mir aber auch nicht :lol: Unabhängig was in der Wago auf der Adresse hinterlegt ist.
                                  1534_bild001.png

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    NightWatcher last edited by

                                    Hilft das hier vielleicht?

                                    Links der Simulator - kennst du ja 🙂

                                    Rechts die in der Wago hinterlegten Werte in der LIVE Ansicht.
                                    1534_bild001.png

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

                                      Ich habe jetzt so gemacht wie bei dir. Slave Simulator liest gleiche Werte.
                                      48_2016-10-24_19_38_25-radzio__modbus_master_simulator.png
                                      48_2016-10-24_19_41_23-iobroker.admin.png
                                      Bei mir GEHT alles.

                                      Ich habe nichts geändert, aber update mal vom git noch mal und starte Adapter neu.

                                      Irgendwo muss doch der Fehler liegen.

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

                                        Hallo,

                                        hat schonmal jemand versucht den Energiezähler SDM630 über modbus RTU anzubinden?

                                        Ich habe da so meine Probleme mit. Siehe hier: http://forum.iobroker.net/viewtopic.php?f=8&t=3994

                                        Wenn da jemand eine idee hat wäre das toll.. momentan gehe ich über den umweg der umsetzunf von Modbus RTU nach Modbus TCP mittels http://mbus.sourceforge.net/index.html würde das mir aber lieber sparen.

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          NightWatcher last edited by

                                          @Bluefox,

                                          ich komme einfach nicht dahinter.

                                          Nun sieht es bei mir so aus. Das verwunderliche ist eben, dass es in meinen Testscripten immer funktioniert. Es werden die korrekten Werte angezeigt.

                                          Habe die Daten aus Radzio mal in Ananas eingegeben und eine neue Modbus Instanz auf den Ananas Server eröffnet. Dort bekomme ich das gleiche Ergebnis. Kann man also nachstellen.
                                          1534_bild001.png
                                          1534_bild002.png

                                          1 Reply Last reply Reply Quote 0
                                          • N
                                            NightWatcher last edited by

                                            So, ich glaube ich habs:

                                            https://github.com/ioBroker/ioBroker.mo … in.js#L355

                                            an dern in:
                                            1534_bild003.png

                                                    	if( (offset * 2 + 1)%2 == 1)
                                                    		return buffer.readUInt8(offset * 2);
                                                    	else
                                                        	return buffer.readUInt8(offset * 2 + 1);
                                            

                                            Ergebnis:
                                            1534_bild004.png

                                            Habe einfach mal den 8Bit Datentyp dafür missbraucht, auch wenn er dafür nicht gedacht ist, aber mir ging es erstmal darum, den Fehler zu finden. 8-)

                                            Das ganze müsste auch noch aufs schreiben portiert werden. Der Akku vom Notebook ist nur jetzt leider leer und das Netzteil nicht vor Ort :?

                                            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

                                            947
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            17
                                            159
                                            31872
                                            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