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

      Damit kann ich sagen, dass die Entwicklung von modbus abgeschlossen ist.

      Er kann Modbus TCP, RTU und RTU over TCP,

      er kann BigEndian, LittleEndian, ByteSwap und WordSwap.

      Man muss nur Adressierung mit Aliases noch checken.

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

        Ich vermute noch nen kleines Problem beim Schreiben einer Variable des Typs Byte von ioBroker zur Wago.

        Lesen geht ohne Probleme, aber beim schreiben macht er Blödsinn.

        Ich gebe 1 in ioBroker ein und er setzt sich selbst auf 256. in der SPS bleibt es 0 (weil > 255 nicht geht)

        Ich gebe 10 ein, er macht 2560.

        Gehe ich noch mal in das Feld in ioBroker und klicke die 2560 an und verlasse das Feld wieder, steht 10 drinnen und wird auch korrekt zur SPS übertragen.

        Wo habe ich da nen Denkfehler?!

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

          @NightWatcher:

          Ich vermute noch nen kleines Problem beim Schreiben einer Variable des Typs Byte von ioBroker zur Wago.

          Lesen geht ohne Probleme, aber beim schreiben macht er Blödsinn.

          Ich gebe 1 in ioBroker ein und er setzt sich selbst auf 256. in der SPS bleibt es 0 (weil > 255 nicht geht)

          Ich gebe 10 ein, er macht 2560.

          Gehe ich noch mal in das Feld in ioBroker und klicke die 2560 an und verlasse das Feld wieder, steht 10 drinnen und wird auch korrekt zur SPS übertragen.

          Wo habe ich da nen Denkfehler?! `
          Welches Typ hast du eingestellt? Registertyp? Variablentyp?

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

            Ich habe es sowohl bei den Eingangsregistern, als auch Holdingregistern mit den Typen Signed/Unsigned 16 Bit (Big & Little) getestet.

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

              @NightWatcher:

              Ich habe es sowohl bei den Eingangsregistern, als auch Holdingregistern mit den Typen Signed/Unsigned 16 Bit (Big & Little) getestet. `
              Bitte um Wireshark 🙂

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

                Langsam simmer ja geübt ;.)

                ich habe den Wert 30 an der Adresse 12342 über ioBroker abgesetzt.
                1534_image_1.png

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

                  @NightWatcher:

                  Langsam simmer ja geübt ;.)

                  ich habe den Wert 30 an der Adresse 12342 über ioBroker abgesetzt. `
                  Das sieht verdammt richtig aus.

                  Und wie sieht es aus mit Little endian 16?

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

                    Habe ich ja unter anderem auch getestet.

                    Komisch ist eben das o.g. Verhalten.

                    Ich habe gerade noch mal was getestet und per Wireshark aufgezeichnet.

                    Bild 1 geht nicht (eingegeben 255) , Bild 2 geht (eingegeben 23070).

                    Ankommen soll 255 in der Wago (bei zweitem kommt es auch als 255 an)

                    EDIT: Wenn ich das Gerade so sehe, ist das Problem bei allen Registern. DWORDs z.B. kann nur auf gleiche Art und Weise überschreiben.
                    1534_bild001.png
                    1534_bild002.png

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

                      Komisch, dass die Adresse 12343 ist.

                      Bei mir geht es. 😞
                      48_2016-10-19_21_44_00-iobroker.admin.png

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

                        In dem Fall habe ich es auch auf 12343 getestet, da ich sonst meiner Lebensgefährtin im Wohnzimmer das Licht ausgemacht hätte :mrgreen:

                        Die Adresse stimmt, der Wert nur nicht. Evtl. erwartet hier die Wago wieder was anderes. Vielleicht ähnlich wie mit den anderen SWAP Typen, die du neu angelegt hast?

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

                          @NightWatcher:

                          In dem Fall habe ich es auch auf 12343 getestet, da ich sonst meiner Lebensgefährtin im Wohnzimmer das Licht ausgemacht hätte :mrgreen:

                          Die Adresse stimmt, der Wert nur nicht. Evtl. erwartet hier die Wago wieder was anderes. Vielleicht ähnlich wie mit den anderen SWAP Typen, die du neu angelegt hast? `
                          Swap bei int16 gibt es nicht. Nur big oder little endian.

                          Du musst schon die richtige Adresse nehmen 12342. Und dann vermutlich little endian.

                          Kannst du so eine aufzeichnen?

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

                            Die Adresse ist doch egal?! Es ist bei allen Adressen das gleiche Problem.

                            Aber hier für die Adresse 12342
                            1534_bild_001.png
                            1534_bild_002.png

                            Ich gebe 30 in ioBroker ein, er macht daraus 7680. In der Wago kommt 0 an (bzw. ein Wert > 255)
                            1534_bild_003.png

                            Ich klicke noch mal auf 7680 und klicke woanders hin, sodass der Wert wieder gesendet wird, 30 kommt bei der Wago an.
                            1534_bild_005.png

                            1 Reply Last reply Reply Quote 0
                            • T
                              tschombe last edited by

                              Sieht aus als ob die Bytes geswappt sind:

                              1E00 = 7680

                              001E = 30

                              Wago interpretiert aber

                              1E00 = 30

                              001E = 7680

                              Du schickst: 001E an Wago,

                              Wago empfängt die 001E und da du ein BYTE definiert hast nimmt Wago nur die 00, es steht aber tatsächlich 001E

                              in der Wago drin, d.h. wenn iobroker beim nächsten Poll den Wert liest, bekommt er die 7680 zurückgeliefert,

                              somit kriegst du dann die 7680 angezeigt.

                              Jetzt schickst du nochmal, und zwar die 7680 (1E00), die kommt bei der Wago an, wird als 1E00 gespeichert,

                              Wago interpretiert das erst BYTE und du hast 30.

                              Beim nächsten Pollen liefert dann die Wago die 30 zurück und die bekommst du dann angezeigt…

                              Hast du mit BigEndian probiert? Geht es damit

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

                                Jepp, habe ich, siehe:

                                @NightWatcher:

                                Ich habe es sowohl bei den Eingangsregistern, als auch Holdingregistern mit den Typen Signed/Unsigned 16 Bit (Big & Little) getestet. `

                                1 Reply Last reply Reply Quote 0
                                • T
                                  tschombe last edited by

                                  Kannst du auf der "Wago" Seite die Adresse mit einem Projektierungstool einsehen und da

                                  evtl den Typ dynamisch ändern? Also z.B. von Byte auf Word? Wie werden denn dann die Werte angezeigt?

                                  Sorry, kenne Wago nicht im Detail, sind alles nur Vermutungen…

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

                                    Ja ich kann mit Codesys die Wago entsprechend programmieren.

                                    Ich kann leider nur die Adresse nicht ändern, da danndie Typen nicht stimmen und auf die Adresse noch andere Variablen mit dem Typ drauf zugreifen.

                                    Aber ich könnte ja eine Word Adresse der Wage nehmen und in ioBroker als Byte (16Bit Little Endian) definieren und wieder versuchen?! Müsste dem Ergebnis doch gleich kommen.

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

                                      @tschombe:

                                      Sieht aus als ob die Bytes geswappt sind:

                                      1E00 = 7680

                                      001E = 30

                                      Wago interpretiert aber

                                      1E00 = 30

                                      001E = 7680

                                      Du schickst: 001E an Wago,

                                      Wago empfängt die 001E und da du ein BYTE definiert hast nimmt Wago nur die 00, es steht aber tatsächlich 001E

                                      in der Wago drin, d.h. wenn iobroker beim nächsten Poll den Wert liest, bekommt er die 7680 zurückgeliefert,

                                      somit kriegst du dann die 7680 angezeigt.

                                      Jetzt schickst du nochmal, und zwar die 7680 (1E00), die kommt bei der Wago an, wird als 1E00 gespeichert,

                                      Wago interpretiert das erst BYTE und du hast 30.

                                      Beim nächsten Pollen liefert dann die Wago die 30 zurück und die bekommst du dann angezeigt…

                                      Hast du mit BigEndian probiert? Geht es damit `
                                      Es sieht nach ein Fehler bei Iob im Adapter. Weil wenn er LE eingestellt hat und 30 sendet, Es darf im wireshark kein 001E auftauchen, sondern 1E00

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        tschombe last edited by

                                        ja stimmt

                                        ich hab noch zu wenig kaffee heut morgen :oops:

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

                                          Konnte das Problem fixen. Bitte updaten.

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

                                            Irgendwie lässt sich nun der Adapter nicht mehr aus dem Admin updaten.

                                            Ich mache eigentlich nichts anders, als die letzten Tage :?

                                            ioBroker läuft auf einer Windows Kiste
                                            1534_bild003.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

                                            792
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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