Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus Adapter - Unterstützung für RTU over TCP

    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

    Modbus Adapter - Unterstützung für RTU over TCP

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

      Vielleicht noch hilfreiche Information zum Problem mit dem Simulator:

      wenn einmal das Schreiben schiefgegangen ist, bekommt der Adapter auch keine Werteänderungen mit

      wenn ich die im Simulator ändere

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

        @tschombe:

        Vielleicht noch hilfreiche Information zum Problem mit dem Simulator:

        wenn einmal das Schreiben schiefgegangen ist, bekommt der Adapter auch keine Werteänderungen mit

        wenn ich die im Simulator ändere `
        Danke. Bitte noch mal updaten

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

          Ja, wieder einen Schritt weiter!!!

          Das Schreiben hat zur Simulation funktioniert :mrgreen: :mrgreen: :mrgreen:

          Habe dann gleich nochmal gegen Live getestet.

          Da ist mir aufgefallen, das ich ab und zu einen Timeout bekomme, dann versucht der Adapter anscheinend nicht mehr neu zu verbinden:

          inMem	2016-10-20 23:25:08.277	debug	message modbus.0.* modbus.0.info.connection val=false, ack=true, ts=1476998708276, q=0, from=system.adapter.modbus.0, lc=1476998708276
          modbus-0	2016-10-20 23:25:08.276	warn	Poll error count: 1 code: {"err":"timeout"}
          inMem	2016-10-20 23:25:03.276	debug	message modbus.0.* modbus.0.info.connection val=true, ack=true, ts=1476998703272, q=0, from=system.adapter.modbus.0, lc=1476998703272
          modbus-0	2016-10-20 23:25:03.271	info	Connected to slave
          modbus-0	2016-10-20 23:25:03.116	info	starting. Version 0.4.3 in D:/GitHub/iobroker/node_modules/iobroker.modbus
          
          

          Anschliessend passiert nichts mehr

          Ich lass jetzt mal die Simulation im Dauertest bis morgen früh laufen

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

            @tschombe:

            Ja, wieder einen Schritt weiter!!!

            Das Schreiben hat zur Simulation funktioniert :mrgreen: :mrgreen: :mrgreen:

            Habe dann gleich nochmal gegen Live getestet.

            Da ist mir aufgefallen, das ich ab und zu einen Timeout bekomme, dann versucht der Adapter anscheinend nicht mehr neu zu verbinden:

            inMem	2016-10-20 23:25:08.277	debug	message modbus.0.* modbus.0.info.connection val=false, ack=true, ts=1476998708276, q=0, from=system.adapter.modbus.0, lc=1476998708276
            modbus-0	2016-10-20 23:25:08.276	warn	Poll error count: 1 code: {"err":"timeout"}
            inMem	2016-10-20 23:25:03.276	debug	message modbus.0.* modbus.0.info.connection val=true, ack=true, ts=1476998703272, q=0, from=system.adapter.modbus.0, lc=1476998703272
            modbus-0	2016-10-20 23:25:03.271	info	Connected to slave
            modbus-0	2016-10-20 23:25:03.116	info	starting. Version 0.4.3 in D:/GitHub/iobroker/node_modules/iobroker.modbus
            
            

            Anschliessend passiert nichts mehr

            Ich lass jetzt mal die Simulation im Dauertest bis morgen früh laufen `
            Nach einem timeout bei Poll versucht Adapter in 60 Sekunden sich wieder zu verbinden

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

              Oh, da war ich zu ungeduldig :lol: :lol: :lol:

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

                Dauertest in der Simulation über nacht bestanden 😄

                Jetzt zu meinem eigentlichen Problem, der Ankopplung an die Lüftung 😢

                die Kommunikation zwischen Adapter und dem COMServer geht leider nicht.

                Ich habe jetzt mal 4 Wireshark-Mitschnitte gemacht. Dabei verwende ich die folgenden

                Konstellationen:

                Master: Slave: Test: Wireshark-Protokoll

                Simulator (ModbusPoll) Simulator (ModbusSlave) GEHT sim-sim.pcapng

                iobroker modbus Adapter Simulator (ModbusSlave) GEHT broker-sim.pcapng

                Simulator (ModbusPoll) Live (WuT COMServer) GEHT sim-live.pcapng

                iobroker modbus Adapter Live (WuT COMServer) FAIL broker-live.pcapng

                Ich hoffe du kannst dir mal die Wiresharks anschauen und siehst irgendetwas

                Ich weis sonst nicht was ich noch Einstellen oder Testen könnte 😢 😢 😢

                268_diag4.zip

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

                  Komisch,

                  ich hab mir die Wireshark-Mitschnitte mal angeschaut von

                  broker-live und sim-live. Den Inhalt kann ich leider nicht wirklich interpretieren,

                  aber die ersten Pakete scheinen ja wirklich identisch zu sein, nur das der

                  Adapter nach dem 10. Paket anscheinend irgendwie nicht mehr weitermacht 😞

                  Hast du evtl noch eine Idee für mich was ich noch testen könnte oder wie ich an der Stelle weiterkommen kann?

                  Auf der Gegenstelle (COM-Server) habe ich leider überhaupt keine Diagnosemöglichkeiten :evil:

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

                    @tschombe:

                    Komisch,

                    ich hab mir die Wireshark-Mitschnitte mal angeschaut von

                    broker-live und sim-live. Den Inhalt kann ich leider nicht wirklich interpretieren,

                    aber die ersten Pakete scheinen ja wirklich identisch zu sein, nur das der

                    Adapter nach dem 10. Paket anscheinend irgendwie nicht mehr weitermacht 😞

                    Hast du evtl noch eine Idee für mich was ich noch testen könnte oder wie ich an der Stelle weiterkommen kann?

                    Auf der Gegenstelle (COM-Server) habe ich leider überhaupt keine Diagnosemöglichkeiten :evil: `
                    Ich habe mal den Traffic angeschaut. Es währe einfacher, wenn du in beiden Fällen gleiche Register lesen wurdest. Du liest:

                    • Input Registers bei LIve

                    • Holding Registers bei Simulator.

                    Ist das so gewollt?

                    Unit ID stimmt bei Live?

                    Live system schickt nicht mal einen Antwort. Einfach schweigt auf der Applikationsebene.

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

                      oh, da ist dann irgendwas an der Konfiguration danebengegangen.

                      Wenn alles läuft würd ich gerne sowohl HoldingRegister lesen / schreiben (Adresse 0 und 1)

                      und die InputRegister 0 und 3 lesen.

                      Fürs erste bin ich jetzt nochmal zurückgegangen auf ein einziges InputRegister (0).

                      Soll ich nochmal neue Mitschnitte erzeugen?

                      Ich bin gerade dabei Webstorm zu installieren und mal schauen ob ich irgendwie Debugging zum laufen Bekomme.

                      Ich bin eigentlich .NET Entwickler, aber die node.js Tools für Visual Studio stürzen bei mir ständig ab 😞 😞 😞

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

                        @tschombe:

                        oh, da ist dann irgendwas an der Konfiguration danebengegangen.

                        Wenn alles läuft würd ich gerne sowohl HoldingRegister lesen / schreiben (Adresse 0 und 1)

                        und die InputRegister 0 und 3 lesen.

                        Fürs erste bin ich jetzt nochmal zurückgegangen auf ein einziges InputRegister (0).

                        Soll ich nochmal neue Mitschnitte erzeugen?

                        Ich bin gerade dabei Webstorm zu installieren und mal schauen ob ich irgendwie Debugging zum laufen Bekomme.

                        Ich bin eigentlich .NET Entwickler, aber die node.js Tools für Visual Studio stürzen bei mir ständig ab 😞 😞 😞 `
                        Ich wollte die Pakete vergleichen. Das währe schon praktisch wenn du absolut gleiche Konfigurationen bei sim und live hättest. Achte aber bitte auf UnitID. Ich denke da konnte auch was nicht passen.

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

                          ok, ich mache nochmal neue Aufzeichnungen mit erstmal nur einem inputregister an Adresse 0,

                          bei meiner Lüftung ist laut Dokumentation die SlaveID = 1, das ist doch die UnitID, oder?

                          Bei dem COM-Umsetzer davor kann ich da leider nichts konfigurieren.

                          Bei dem ModbusPoll Client kann ich gar keine UnitID angeben, und bei dem Modbus Slave kann ich einen Haken

                          (Ignore UnitID setzen, den hab ich jetzt mal extra NICHT gesetzt)

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

                            So, jetzt nochmal die 4 Wireshark-Mitschnitte.

                            Ich hoffe ich hab immer die richtige Konfiguration verwendet.

                            Verhalten immer noch das selbe, UnitID ist bei mir auf 1 gesetzt.

                            268_diag5.zip

                            Hoffentlich kannst du irgendetwas erkennen, für mich sieht das am Anfang alles gleich aus,

                            nur das es bei der "Live" Kommunikation irgendwie nicht mehr weitergeht

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

                              Und mir ist gerade wieder was aufgefallen:

                              Beim LIVE-System steht 201 auf dem Register (stellt eine Temperatur * 10 dar, also 20.1°)

                              Auf der Simulation steht auf dem Register 15 (hab ich dann mal probehalber auf 20 und wieder auf 15 gesetzt um zu sehen ob wertänderungen

                              ankommen). Da hab ich im iobroker die 15 bzw 20 gesehen.

                              Als ich dann umkonfiguriert hab auf das Live-System kam auch einmal die 201 im iobroker an!!! aber dann keine zyklischen refreshes mehr

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

                                Konnte was finden. Kannst du probieren?

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

                                  Ja ich probiere nachher aus, bin allerdings grad unterwegs

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

                                    SUPER!!! LESEN GEHT!!!!

                                    Hab gleich Schreiben von Holding Register getestet, da gibt's noch Probleme:

                                    
                                    host-lxccuhost2	2016-10-21 20:57:07.333	info	Restart adapter system.adapter.modbus.0 because enabled
                                    host-lxccuhost2	2016-10-21 20:57:07.331	error	instance system.adapter.modbus.0 terminated with code 0 (OK)
                                    modbus-0	2016-10-21 20:57:07.271	info	terminating
                                    TypeError:	2016-10-21 20:57:07.245	error	at TCP.onread (net.js:526:21)
                                    TypeError:	2016-10-21 20:57:07.245	error	at Socket.Readable.push (_stream_readable.js:127:10)
                                    TypeError:	2016-10-21 20:57:07.245	error	at readableAddChunk (_stream_readable.js:165:9)
                                    TypeError:	2016-10-21 20:57:07.245	error	at emitReadable (_stream_readable.js:404:5)
                                    TypeError:	2016-10-21 20:57:07.245	error	at emitReadable_ (_stream_readable.js:408:10)
                                    TypeError:	2016-10-21 20:57:07.245	error	at Socket.EventEmitter.emit (events.js:92:17)
                                    TypeError:	2016-10-21 20:57:07.245	error	at Socket. (_stream_readable.js:746:14)
                                    TypeError:	2016-10-21 20:57:07.245	error	at Socket.EventEmitter.emit (events.js:95:17)
                                    TypeError:	2016-10-21 20:57:07.245	error	at Object. (/opt/iobroker/node_modules/iobroker.modbus/lib/modbus-tcp-rtu-client.js:135:66)
                                    TypeError:	2016-10-21 20:57:07.245	error	Object ��d has no method 'join'
                                    uncaught	2016-10-21 20:57:07.238	error	exception: Object ��d has no method 'join'
                                    TypeError:	2016-10-21 20:57:07.224	error	at TCP.onread (net.js:526:21)
                                    TypeError:	2016-10-21 20:57:07.224	error	at Socket.Readable.push (_stream_readable.js:127:10)
                                    TypeError:	2016-10-21 20:57:07.224	error	at readableAddChunk (_stream_readable.js:165:9)
                                    TypeError:	2016-10-21 20:57:07.224	error	at emitReadable (_stream_readable.js:404:5)
                                    TypeError:	2016-10-21 20:57:07.224	error	at emitReadable_ (_stream_readable.js:408:10)
                                    TypeError:	2016-10-21 20:57:07.224	error	at Socket.EventEmitter.emit (events.js:92:17)
                                    TypeError:	2016-10-21 20:57:07.224	error	at Socket. (_stream_readable.js:746:14)
                                    TypeError:	2016-10-21 20:57:07.224	error	at Socket.EventEmitter.emit (events.js:95:17)
                                    TypeError:	2016-10-21 20:57:07.224	error	at Object. (/opt/iobroker/node_modules/iobroker.modbus/lib/modbus-tcp-rtu-client.js:135:66)
                                    TypeError:	2016-10-21 20:57:07.224	error	Object  has no method 'join'
                                    uncaught	2016-10-21 20:57:07.217	error	exception: Object  has no method 'join'
                                    modbus-0	2016-10-21 20:57:07.182	info	Connected to slave
                                    modbus-0	2016-10-21 20:57:06.171	info	Disconnected from slave 192.168.2.20
                                    modbus-0	2016-10-21 20:57:06.165	error	Cannot write [0]: {"err":"timeout"}
                                    modbus-0	2016-10-21 20:56:49.819	info	Connected to slave
                                    modbus-0	2016-10-21 20:56:49.609	warn	Serial is not available
                                    
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • Bluefox
                                      Bluefox last edited by

                                      Kannst du lib/modbus-tcp-rtu-client.js die Zeile 135 modifizieren

                                      this.logError('Wrong CRC for frame: ' + data.toArrayBuffer().join(', '));
                                      
                                      

                                      ? Da ist komische Antwort.

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

                                        Hab die Zeile ausgebessert, dann Adapter gestoppt und neu gestartet:

                                        Dabei habe ich 2 Werte geschrieben, der erste ist tatsächlich angekommen am Gerät,

                                        aber in der admin-Anzeige blieb er auf dem alten Wert (vermutlich weil keine Bestätigung kam?),

                                        das muss der Log-Eintrag mit dem Timeout gewesen sein.

                                        Dann hat sich der Adapter automatisch neu verbunden und den gesetzten Wert korrekt zurückgelesen,

                                        dann wollte ich den 2. Wert schreiben und die Exceptions sind aufgetreten.

                                        bekomme jetzt diese Fehlermeldung:

                                        host-lxccuhost2	2016-10-22 10:27:07.360	info	Restart adapter system.adapter.modbus.0 because enabled
                                        host-lxccuhost2	2016-10-22 10:27:07.359	error	instance system.adapter.modbus.0 terminated with code 0 (OK)
                                        uncaught	2016-10-22 10:27:07.299	error	exception: Object ��� has no method 'toArrayBuffer'
                                        TypeError:	2016-10-22 10:27:07.287	error	at TCP.onread (net.js:526:21)
                                        TypeError:	2016-10-22 10:27:07.287	error	at Socket.Readable.push (_stream_readable.js:127:10)
                                        TypeError:	2016-10-22 10:27:07.287	error	at readableAddChunk (_stream_readable.js:165:9)
                                        TypeError:	2016-10-22 10:27:07.287	error	at emitReadable (_stream_readable.js:404:5)
                                        TypeError:	2016-10-22 10:27:07.287	error	at emitReadable_ (_stream_readable.js:408:10)
                                        TypeError:	2016-10-22 10:27:07.287	error	at Socket.EventEmitter.emit (events.js:92:17)
                                        TypeError:	2016-10-22 10:27:07.287	error	at Socket. (_stream_readable.js:746:14)
                                        TypeError:	2016-10-22 10:27:07.287	error	at Socket.EventEmitter.emit (events.js:95:17)
                                        TypeError:	2016-10-22 10:27:07.287	error	at Object. (/opt/iobroker/node_modules/iobroker.modbus/lib/modbus-tcp-rtu-client.js:135:66)
                                        TypeError:	2016-10-22 10:27:07.287	error	Object  has no method 'toArrayBuffer'
                                        uncaught	2016-10-22 10:27:07.277	error	exception: Object  has no method 'toArrayBuffer'
                                        modbus-0	2016-10-22 10:27:07.237	info	Connected to slave
                                        modbus-0	2016-10-22 10:27:06.226	info	Disconnected from slave 192.168.2.20
                                        modbus-0	2016-10-22 10:27:06.221	error	Cannot write [1]: {"err":"timeout"}
                                        modbus-0	2016-10-22 10:26:45.150	info	Connected to slave
                                        modbus-0	2016-10-22 10:26:44.876	warn	Serial is not available
                                        
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Bluefox
                                          Bluefox last edited by

                                          Ich habe Fehler gemacht es muss

                                          this.logError('Wrong CRC for frame: ' + pdu.toArrayBuffer().join(', '));
                                          

                                          sein

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

                                            Jetzt kommt folgender Fehler:

                                            host-conentfst08	2016-10-22 14:38:19.903	error	instance system.adapter.modbus.0 terminated with code 0 (OK)
                                            modbus-0	2016-10-22 14:38:19.887	info	terminating
                                            TypeError:	2016-10-22 14:38:19.882	error	at TCP.onread (net.js:538:20)
                                            TypeError:	2016-10-22 14:38:19.882	error	at Socket.Readable.push (_stream_readable.js:126:10)
                                            TypeError:	2016-10-22 14:38:19.882	error	at readableAddChunk (_stream_readable.js:163:16)
                                            TypeError:	2016-10-22 14:38:19.882	error	at Socket.emit (events.js:107:17)
                                            TypeError:	2016-10-22 14:38:19.882	error	at Object. (D:\_\node_modules\iobroker.modbus\lib\modbus-tcp-rtu-client.js:135:65)
                                            TypeError:	2016-10-22 14:38:19.882	error	undefined is not a function
                                            uncaught	2016-10-22 14:38:19.882	error	exception: undefined is not a function
                                            modbus-0	2016-10-22 14:38:19.857	info	Connected to slave
                                            modbus-0	2016-10-22 14:38:18.846	info	Disconnected from slave 192.168.2.20
                                            modbus-0	2016-10-22 14:38:18.845	error	Cannot write [1]: {"err":"timeout"}
                                            modbus-0	2016-10-22 14:37:26.468	info	Connected to slave
                                            modbus-0	2016-10-22 14:37:26.318	info	starting. Version 0.4.4 in D:/_/node_modules/iobroker.modbus
                                            host-conentfst08	2016-10-22 14:37:25.733	info	instance system.adapter.modbus.0 started with pid 21708
                                            
                                            
                                            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

                                            724
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            60
                                            9067
                                            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