Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus RS485 Tutorial/Einstieg gesucht

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Modbus RS485 Tutorial/Einstieg gesucht

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      JoergH @WolfgangFB last edited by

      @wolfgangfb Hast Du eine Doku zu dem Stromzähler? Die bräuchten wir schon...

      Den USB Stick an den Rechner stecken und dann musst Du den Modbus Adapter (Broker/Client) installieren und konfigurieren. Hier trägst Du die IP ein und stellst auf Modbus via RTU ein. Den Rest vermutlich so lassen, dann müsste er sich schon einmal mit dem Zähler verbinden (2 grüne Kreise in der Instanz). Um Daten lesen zu können brauchen wir dann die Beschreibung welche Register ausgelesen werden können.

      1 Reply Last reply Reply Quote 0
      • W
        WolfgangFB last edited by

        @joergh

        So, ich habe den USB Stick in den Raspberry gesteckt, auf dem auch IO Broker läuft. Als IP habe ich die IP des Raspberry eingetragen. Beim Zigbee Stick musste ich explizit das Device angeben, hier wird das nicht benötigt?
        Bei Verbindungsparameter habe ich bei "TCP/Serielle RTU" die Auswahl zwischen TCP, Serial und RTU over IP. Hier habe ich "RTU over IP" gewählt (das einzige wo RTU vorkommt). Der Adapter bleibt gelb, Verbunden mit Hots grün, Lebenszeichen grün, Verbunden mit Gerät oder Dienst rot.

        R J 2 Replies Last reply Reply Quote 0
        • R
          Radi @WolfgangFB last edited by Radi

          @wolfgangfb Mach das mal lieber(die Abfrage als TCP-IP)nicht. Dein USB-Stick steckt an dem Raspi mit dem IO-Broker. Da du dann seriell abfragst, sollten deine Einstellungen in etwa so aussehen:
          ac005303-a77a-4887-891c-402a9a088869-image.png
          Die Register, die du abfragen musst stehen in der Beschreibung vom Zähler.
          Meist sind dies dann Holding-Register

          1 Reply Last reply Reply Quote 0
          • J
            JoergH @WolfgangFB last edited by

            @wolfgangfb @Radi hat Recht. Da das Teil direkt im Rechner steckt, braucht man kein TCP, sondern direkt über serielle, als die das eingebunden wird ansprechen.

            R 1 Reply Last reply Reply Quote 0
            • R
              Radi @JoergH last edited by Radi

              @joergh @wolfgangfb Bitte noch die Einstellungen für die serielle Schnittstelle und das Gerät beachten. Die Baudrate sollte im Handbuch stehen. Die Geräteadresse (ID) wird wahrscheinlich nicht wie in meinem Beispiel die 2 sondern die 1 sein. Einen Screenshot, wie die Register abgfragt werden hänge ich auch noch an. Aber die Adressen musst du auf deinen Zähler anpassen. Das sind mit Sicherheit andere Register als bei mir.
              f219e1b0-585f-41c9-91ac-538fe6295896-grafik.png
              So sehen meine Registerabfragen aus.

              1 Reply Last reply Reply Quote 0
              • W
                WolfgangFB last edited by WolfgangFB

                @radi

                Hi, ich komme leider nicht weiter. Ich habe wie gesagt den WINGONEER CH340E (5,99 bei Amazon) und finde dazu keine Anleitung im Netz.

                pi@raspberrypi:~ $ ls -l /dev/serial/by-id
                insgesamt 0
                lrwxrwxrwx 1 root root 13 19. Mai 12:51 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB1
                

                Aber egal was ich bei den Verbindungsparametern einstelle, der letzte Punkt (Verbunden mit Gerät oder Dienst) bleibt rot.

                Bei Port habe ich /dev/ttyUSB1 eingetragen, aber was ich als Baudrate und Geräte ID eintragen soll ist mir nicht klar.

                Alternaativ: Welchen Adapter verwendit Ihr bei dem die Parameter bekannt sind?

                J 1 Reply Last reply Reply Quote 0
                • Glasfaser
                  Glasfaser @WolfgangFB last edited by

                  @wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                  Hi
                  Ich habe eine Stromzähler DDM1850

                  Die Suche ergibt eine Makita ....

                  @joergh sagte in Modbus RS485 Tutorial/Einstieg gesucht:
                  @wolfgangfb Hast Du eine Doku zu dem Stromzähler? Die bräuchten wir schon...

                  ???

                  @wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                  @radi
                  Hi, ich komme leider nicht weiter.

                  siehe oben ...

                  aber was ich als Baudrate und Geräte ID eintragen soll ist mir nicht klar.

                  siehe oben ..

                  Wir brauchen schon die richtig Typenbezeichnung von deinem Stromzähler , bzw. eine Anleitung wo die Modbus-Register dazu drin stehen , inkl. der Bautraten , sonst stocherst du nur rumm ..

                  W 1 Reply Last reply Reply Quote 0
                  • W
                    WolfgangFB @Glasfaser last edited by

                    @glasfaser

                    OK, meine Augen sind nicht mehr so gut. Der Zähler heißt DDM18SD
                    https://www.re-innovation.co.uk/docs/talking-to-a-ddm18sd-energy-meter/

                    Alternativ liegt hier noch ein SINOTIMER DDS548MR zu dem ich aber auch keine Anleitung im Netz finde.
                    Aber: Ich bekomme ja schon den USB Adapter nicht eingebunden.
                    Ist die Baudrate vom Zähler oder vom USB Adapter abhängig?

                    W Glasfaser 2 Replies Last reply Reply Quote 0
                    • W
                      WolfgangFB @WolfgangFB last edited by

                      @wolfgangfb
                      Für den DDM18SD habe ich auch die Register gefunden:
                      Register_senkrecht.jpg

                      Glasfaser 1 Reply Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @WolfgangFB last edited by

                        @wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                        Aber: Ich bekomme ja schon den USB Adapter nicht eingebunden.

                        Aber egal was ich bei den Verbindungsparametern einstelle, der letzte Punkt (Verbunden mit Gerät oder Dienst) bleibt rot.

                        Der wird erst Grün , wenn die Verbindung ( steht ) / auch richtig das Register abgefragt wird.

                        zu dem ich aber auch keine Anleitung im Netz finde.

                        Sorry ,dabei kann ich dir nicht helfen .

                        1 Reply Last reply Reply Quote 0
                        • Glasfaser
                          Glasfaser @WolfgangFB last edited by

                          @wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                          habe ich auch die Register gefunden:

                          Ich mache es immer so :

                          https://forum.iobroker.net/topic/51804/erledigt-modbusfrage-mit-waveshare-rs485-to-eth-b/28

                          teste erst mit einem Windows Programm .... dann mit ioBroker .

                          W 1 Reply Last reply Reply Quote 0
                          • J
                            JoergH @WolfgangFB last edited by

                            @wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                            lrwxrwxrwx 1 root root 13 19. Mai 12:51 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB1

                            
                            Aber egal was ich bei den Verbindungsparametern einstelle, der letzte Punkt (Verbunden mit Gerät oder Dienst) bleibt rot.
                            
                            Bei  Port habe ich /dev/ttyUSB1 eingetragen, aber was ich als Baudrate und Geräte ID eintragen soll ist mir nicht klar.
                            
                            Alternaativ: Welchen Adapter verwendit Ihr bei dem die Parameter bekannt sind?
                            

                            Wenn er schonmal zwei grüne anzeigt, heisst dass, dass er sich mit dem Zähler verbindet. Der letzte wird erst grün, wenn eine erfolgreiche Abfrage eines oder mehrerer Register stattgefunden hat. Also liegt es nun vermutlich an den Registereinstellungen. Was sagt denn Dein Logfile im Debug Modus?

                            W 1 Reply Last reply Reply Quote 0
                            • W
                              WolfgangFB @JoergH last edited by

                              @joergh sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                              Wenn er schonmal zwei grüne anzeigt, heisst dass, dass er sich mit dem Zähler verbindet.

                              Der Adapter zeigt auch zwei mal grün wenn überhaupt kein USB Stick mit dem Raspi verbunden ist. Von daher würde ich da keine Rückschlüsse ziehen.
                              Wie würden denn die Einstellungen aussehen wenn ich z.B. die Leistung abfragen will? Wo trage ich das ein? Diskrete Eingänge? Ausgänge wohl kaum. Eingangsregister oder Holdingregister? Low-Byte ist 0x1a, High Byte ist 0. Ist die Adresse dann 6656 (0x1a00) oder 26 (0x1a) oder etwas ganz anderes?

                              J 1 Reply Last reply Reply Quote 0
                              • J
                                JoergH @WolfgangFB last edited by JoergH

                                @wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                                @joergh sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                                Wenn er schonmal zwei grüne anzeigt, heisst dass, dass er sich mit dem Zähler verbindet.

                                Der Adapter zeigt auch zwei mal grün wenn überhaupt kein USB Stick mit dem Raspi verbunden ist. Von daher würde ich da keine Rückschlüsse ziehen.
                                Wie würden denn die Einstellungen aussehen wenn ich z.B. die Leistung abfragen will? Wo trage ich das ein? Diskrete Eingänge? Ausgänge wohl kaum. Eingangsregister oder Holdingregister? Low-Byte ist 0x1a, High Byte ist 0. Ist die Adresse dann 6656 (0x1a00) oder 26 (0x1a) oder etwas ganz anderes?

                                Hmmm, ok, ist mir auch neu. Bei TCP muss er eine Verbindung herstellen können, kann an der seriellen Emulation liegen...zur seriellen Schnittstelle hat er die Verbindung ja schon aufbauen können...

                                Die Einstellungen stehen in der Beschreibung die Du oben gepostet hast. Da die Qualität ziemlich schlecht ist, kann ich es kaum lesen. Was ich sehen kann ist, dass er zwei Arten von Registern hat, Data (Holding) Register (0x04) - read only und Parameter Register (0x03) - read & write.
                                Wenn die Leistung in Data Register 0x001a ist, dann ist das Register 26. Das musst Du dann eintragen bei Holding Register vorne als Adresse des Registers, dann die restlichen Paramter dahinter korrekt setzen und "Abfrage" nicht vergessen...Aliases muss aus sein.

                                Sieht dann so aus (bei mir sind aber alle Adressen ab 40000):

                                02fce6d3-de81-4904-a5a8-d62209bf76cb-grafik.png

                                Glasfaser 1 Reply Last reply Reply Quote 0
                                • Glasfaser
                                  Glasfaser @JoergH last edited by Glasfaser

                                  @joergh

                                  Da die Qualität ziemlich schlecht ist

                                  Müsste das sein , habe es mal für Ihn gegoogelt .
                                  https://de.aliexpress.com/item/33003316323.html

                                  @WolfgangFB

                                  Naja .... , Made in CE

                                  1 Reply Last reply Reply Quote 0
                                  • W
                                    WolfgangFB @Glasfaser last edited by

                                    @glasfaser sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                                    @wolfgangfb sagte in Modbus RS485 Tutorial/Einstieg gesucht:

                                    habe ich auch die Register gefunden:

                                    Ich mache es immer so :

                                    https://forum.iobroker.net/topic/51804/erledigt-modbusfrage-mit-waveshare-rs485-to-eth-b/28

                                    teste erst mit einem Windows Programm .... dann mit ioBroker .

                                    Ich habe mir dieses Programm besorgt. In der Gerätesteuerung habe ich gefunden, dass Com3 ein USB Device ist. Das habe ich eingetragen und auf Connect gedrückt, es kam auch keine Fehlermeldung.

                                    Wenn ich den Stromzähler startet kommt im Display zuerst "AD 0013" "b 9600" "C 1000", ich vermute dass 13 eine Adresse ist, b9600 eine Baudrate, was C1000 ist weiß ich nicht.

                                    In dem Programm selbst kommt aber immer die Medlung "Modbus time out"
                                    Grundsätzliche Frage: Ich habe den Ausgang A des Stromzählers mit Pin A des RS485 Adapters verbunden und B mit B. Ist das richtig? Oder muss wie bei RS232 RX und TX vertauscht werden?
                                    Was schließe ich an "gnd" an?
                                    n der Doku des Stromzählers steht: Serielle Parameter 9600 Even 1, stelle ich das auch im Modbus Simulator under "Modbus RTU" ein?

                                    W 1 Reply Last reply Reply Quote 0
                                    • W
                                      WolfgangFB @WolfgangFB last edited by

                                      @wolfgangfb
                                      Ich antworte mir mal selbst.
                                      Ich bin immer noch nicht weiter und würde einfach gerne wissen, ob bei Radzio Modbus Master Simulator die Meldung "Modbus message timeout" daher kommt, das der Stick oder die seriellen Parameter nicht stimmen oder ob es auch sein kann, dass der Stick zwar erkannt wird aber nur die Adresse nicht gelesen werden (weil z.B. falsch eingegeben)

                                      K Ralla66 2 Replies Last reply Reply Quote 0
                                      • K
                                        klassisch Most Active @WolfgangFB last edited by klassisch

                                        @wolfgangfb Du hast A mit A und B mit B verbunden?
                                        Kreuze mal die Leitungen.
                                        Hintergrund: Die Zählerindustrie (zumindest die Europäische) interpretiert die etwas umständliche (bzw. sehr abstrahierte) RS485 Spec sehr streng. Die Halbleiterindustrie in sich geschlossen gleich - aber gerade anders herum. Und die meisten Stickhersteller schließen sich der Halbleiterindustrie an, weil sie sich am Datenblatt orientieren.

                                        1 Reply Last reply Reply Quote 0
                                        • Ralla66
                                          Ralla66 Most Active @WolfgangFB last edited by Ralla66

                                          @wolfgangfb

                                          Versuche erst einmal die communication wie im Beispiel oben hinzubekommen.
                                          Also mit Windows PC und Realterm oder Hterm. So brauchst du erst einmal nur die CRC berechnen.
                                          Dann ergibt dies wie aus dem Beispiel oben,
                                          Baud 9600
                                          Parity Even
                                          Stopbit 1
                                          Hardwarecontroll RTS/CTS
                                          Comport des Sticks
                                          Die Adresse ist 13 dec in hex ist 0D
                                          Calculator CRC-16 Modbus:
                                          0D0400000002 (Processed data x0d 0x04 0x00 0x00 0x00 0x02 )
                                          Ergibt 0x0771
                                          Gedreht 0x71 0x07
                                          Gesendet per Realterm wird dann :
                                          0x0d 0x04 0x00 0x00 0x00 0x02 0x71 0x07

                                          In den Windows Einstellungen ist zu prüfen ob der Stick und der Treiber erkannt wurde.

                                          Nachtrag, in der Beschreibung steht :
                                          Die codierung format, parität (auch parität) und daten übertragung modus (acht daten bits, one stop bit) erfüllen die MODBUS-RTU standard anforderungen.
                                          Vermute die 02 ist das Low Byte Check Digit, dann wäre das Baud 9600 8n1.

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

                                            Hallo
                                            Ich hab mir auch so ein Ding zugelegt. Hatte anfänglich auch Probleme damit. Wenn man das Ding unter Spannung nimmt, erschien bei mir Ad070 und das ist die Adresse. Das Problem warum bei mir keine Kommunikation zustande gekommen ist war, das die Parität auf "Even" eingestellt war. Hab dann mit dem Programm "Modbus Poll" die Änderungen vorgenommen Parität auf "nein" (zu verschickender Wert 2). Jetzt die Hexwerte der Adressen umwandeln und plus 1. Siehe da ich kann das Gerät auslesen.

                                            Homoran 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

                                            446
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            39
                                            2712
                                            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