NEWS
Modbus Adapter - Unterstützung für RTU over TCP
-
Noch was fällt mir auf:
ich habe total häufig das Verhalten, das die modbus-Instanz rot ist und mir anzeigt:
Verbunden mit host: falsch
Lebenszeichen: falsch
Verbunden mit modbus: wahr
d.h. ich habe eine Verbindung zum Slave (zeigt mit auch der COMServer an), aber nicht zum host?
Habe eine SingleHost-Installation auf einem Raspi, im Log steht nix auffälliges:
modbus-0 2016-10-19 23:10:38.060 info Connected to slave modbus-0 2016-10-19 23:10:37.784 warn Serial is not available modbus-0 2016-10-19 23:10:37.729 info starting. Version 0.4.1 in /opt/iobroker/node_modules/iobroker.modbus host-lxccuhost2 2016-10-19 23:10:33.910 info instance system.adapter.modbus.0 started with pid 1075 host-lxccuhost2 2016-10-19 23:10:33.856 info "system.adapter.modbus.0" enabled
Zusatzinfo:
da ich ja immer iobroker komplett beende und neu starte wg. dem connect zum slave ist mir folgendes aufgefallen:
Nach dem start von iobroker wird der Adapter grün und bleibt es auch, so lange bis ich auf den Tab "Objekte" wechsle um mir
die Datenpunkte des modbus Adapters anschaue, wenn ich dann zurückwechsle auf "Instanzen" ist er rot…
-
Hi,
ich versuche gerade von der Arbeit aus nebenbei etwas zu testen und bin per VPN
zu mir nach Hause eingewählt. Hab hier eine ioBroker-Windows-Installation und wollt das
da mal testen, aber die Verbindung nach Hause scheint etwas zäh zu sein.
Mit ModbusPoll kann ich kommunizieren, aber mit dem adapter bekomme ich:
warn Poll error count: 1 code: {"err":"timeout"}
Kann ich im Adapter einen Timeout einstellen?
Poll delay hab ich auf 5000 ms
Reconnect-Zeit auf 60000 ms
Pulsetime auf 5000
Max Lese Request-Länge: 20 register
-
Hi,
ich versuche gerade von der Arbeit aus nebenbei etwas zu testen und bin per VPN
zu mir nach Hause eingewählt. Hab hier eine ioBroker-Windows-Installation und wollt das
da mal testen, aber die Verbindung nach Hause scheint etwas zäh zu sein.
Mit ModbusPoll kann ich kommunizieren, aber mit dem adapter bekomme ich:
warn Poll error count: 1 code: {"err":"timeout"}
Kann ich im Adapter einen Timeout einstellen?
Poll delay hab ich auf 5000 ms
Reconnect-Zeit auf 60000 ms
Pulsetime auf 5000
Max Lese Request-Länge: 20 register `
Sieht so aus, als ob ich vergessen habe timeout in der Konfiguration-Dialog anzuzeigen.Du kannst timeout momentan direkt im Objekt system.adapter.modbus.0 einstellen.
-
ok, danke für die Info, kannst du mir bitte kurz nen tip geben wie / wo ich das einstelle?
über die admin oberfläche oder in irgendeiner datei?
-
ok, danke für die Info, kannst du mir bitte kurz nen tip geben wie / wo ich das einstelle?
über die admin oberfläche oder in irgendeiner datei? `
Admin. Reiter Objekte und dann auf Stift rechts klicken. -
bei mir ist leider kein stift beim adapter
habe nur admin adapter und modbus adapter im test laufen,
alles auf aktuellem stand, modbus vom github
-
bei mir ist leider kein stift beim adapter
habe nur admin adapter und modbus adapter im test laufen,
alles auf aktuellem stand, modbus vom github
Capture.JPG `
Es ist auch nicht das Objekt, was ich genannt habe.Schalte bitte Experten Modus ein (das Knopf mit dem Person)
-
ah, cool, danke…
Ich glaub ich hab jetzt das richtige objekt und finde da unter:
native->params folgendes:
{ "type": "tcp", "bind": "192.168.2.20", "port": "502", "comName": "", "baudRate": "9600", "dataBits": "8", "stopBits": "1", "parity": "none", "deviceId": "1", "slave": "0", "showAliases": false, "directAddresses": false, "round": "2", "poll": "5000", "recon": "60000", "pulsetime": "5000", "maxBlock": "20", "disInputsOffset": "10001", "coilsOffset": "1", "inputRegsOffset": "30001", "holdingRegsOffset": "40001" }
muss ich da etwas mit timeout einfügen?
-
ah, cool, danke…
Ich glaub ich hab jetzt das richtige objekt und finde da unter:
native->params folgendes:
{ "type": "tcp", "bind": "192.168.2.20", "port": "502", "comName": "", "baudRate": "9600", "dataBits": "8", "stopBits": "1", "parity": "none", "deviceId": "1", "slave": "0", "showAliases": false, "directAddresses": false, "round": "2", "poll": "5000", "recon": "60000", "pulsetime": "5000", "maxBlock": "20", "disInputsOffset": "10001", "coilsOffset": "1", "inputRegsOffset": "30001", "holdingRegsOffset": "40001" }
muss ich da etwas mit timeout einfügen? `
Habe modbus erweitet. Bitte vom git updaten. -
Super!!!!
Was jetzt geht:
-
Timeout konfigurierbar, dadurch bekomme ich jetzt auch über VPN einen Connect!!!
-
Sauber Disconnect beim Disablen des Adapters, dadurch wird der Port meines COM-Servers frei!!!
Habe gerade 2 Holding register gelesen (über VPN!!!),
allerdings ist mein Adapter dann wieder auf Rot gesprungen:
Verbunden mit host: falsch
Lebenszeichen: falsch
Verbunden mit modbus: wahr
Nach dem start von iobroker wird der Adapter grün und bleibt es auch, so lange bis ich auf den Tab "Objekte" wechsle um mir
die Datenpunkte des modbus Adapters anschaue, wenn ich dann zurückwechsle auf "Instanzen" ist er rot…
hier das log dazu von der aktuellen Version (und der Adapter steht dank der neu entdeckten Expertenfunktion auf debug):
inMem 2016-10-20 16:52:17.460 debug message modbus.0.* modbus.0.info.pollTime val=61, ack=true, ts=1476975137459, q=0, from=system.adapter.modbus.0, lc=1476975137459 inMem 2016-10-20 16:52:17.459 debug message modbus.0.* modbus.0.holdingRegisters.1_value1 val=15, ack=true, ts=1476975137458, q=0, from=system.adapter.modbus.0, lc=1476975137458 inMem 2016-10-20 16:52:17.457 debug message modbus.0.* modbus.0.holdingRegisters.0_value0 val=0, ack=true, ts=1476975137457, q=0, from=system.adapter.modbus.0, lc=1476975137457 inMem 2016-10-20 16:52:17.402 debug message modbus.0.* modbus.0.info.connection val=true, ack=true, ts=1476975137398, q=0, from=system.adapter.modbus.0, lc=1476975137398 modbus-0 2016-10-20 16:52:17.398 info Connected to slave modbus-0 2016-10-20 16:52:14.215 info starting. Version 0.4.2 in D:/GitHub/iobroker/node_modules/iobroker.modbus modbus-0 2016-10-20 16:52:14.191 debug statesDB connected modbus-0 2016-10-20 16:52:14.186 debug objectDB connected host-conentfst08 2016-10-20 16:52:13.587 info instance system.adapter.modbus.0 started with pid 11132
Vielleicht liegt es aber auch an der "magern" VPN Verbindung, ich teste auf jeden Fall heut abend nochmal im Heimnetzwerk
-
-
Hi,
so, sitze jetzt zu Hause im Heimnetz und habe folgenden Testaufbau:
Windows Notebook mit ioBroker-Installation (nur admin und modbus Adapter, aktuell aus github ) und Wireshark
iobroker gestartet, modbus Adapter ist deaktiviert.
Dann modbus Adapter aktiviert, modbus Adapter wird grün
wechsel auf Objekte und zurück, modbus Adapter ist rot.
(Verbunden mit host: falsch, Lebenszeichen: falsch, Verbunden mit modbus: wahr)
Der Zustand bleibt dann so, kein neuer "Poll-Versuch" o.ä. des Adapters, keinerlei Logeinträge mehr.
Im Anhang ein Zip-File mit dem zugehörigen Wireshark-Protokoll und dem ioBroker-Log.
Kannst du da irgendetwas erkennen?
-
um zwischenzeitlich irgendwie weiter zu kommen hab ich auf meinem Windows testsystem
mal den modbus-slave Simulator im RTU over TCP Modus laufen lassen.
Da verbindet sich der Adapter und bleibt auch auf grün, allerdings funktioniert das Schreiben
der Werte nicht richtig. Teilweise werden die Werte nicht übernommen.
Hier ein Auszug aus dem Log:
inMem 2016-10-20 19:34:32.922 debug message modbus.0.* modbus.0.holdingRegisters.1_value1 val=44, ack=true, ts=1476984872921, q=0, from=system.adapter.modbus.0, lc=1476984872921 modbus-0 2016-10-20 19:34:31.895 error Cannot write [0]: [object Object] inMem 2016-10-20 19:34:31.418 debug message modbus.0.* modbus.0.holdingRegisters.1_value1 val=48, ack=false, ts=1476984871418, q=0, from=system.adapter.admin.0, lc=1476984871418 inMem 2016-10-20 19:34:28.396 debug message modbus.0.* modbus.0.holdingRegisters.0_value0 val=6, ack=true, ts=1476984868396, q=0, from=system.adapter.modbus.0, lc=1476984868396 inMem 2016-10-20 19:34:26.892 debug message modbus.0.* modbus.0.holdingRegisters.0_value0 val=8, ack=false, ts=1476984866891, q=0, from=system.adapter.admin.0, lc=1476984866891 inMem 2016-10-20 19:34:22.419 debug message modbus.0.* modbus.0.holdingRegisters.1_value1 val=44, ack=true, ts=1476984862418, q=0, from=system.adapter.modbus.0, lc=1476984862418 inMem 2016-10-20 19:34:19.411 debug message modbus.0.* modbus.0.holdingRegisters.0_value0 val=6, ack=true, ts=1476984859410, q=0, from=system.adapter.modbus.0, lc=1476984859410 inMem 2016-10-20 19:33:56.363 debug message modbus.0.* modbus.0.info.pollTime val=14, ack=true, ts=1476984836363, q=0, from=system.adapter.modbus.0, lc=1476984836363 inMem 2016-10-20 19:33:56.362 debug message modbus.0.* modbus.0.holdingRegisters.1_value1 val=55, ack=true, ts=1476984836362, q=0, from=system.adapter.modbus.0, lc=1476984836362 inMem 2016-10-20 19:33:56.361 debug message modbus.0.* modbus.0.holdingRegisters.0_value0 val=5, ack=true, ts=1476984836361, q=0, from=system.adapter.modbus.0, lc=1476984836361 inMem 2016-10-20 19:33:56.358 debug message modbus.0.* modbus.0.info.connection val=true, ack=true, ts=1476984836352, q=0, from=system.adapter.modbus.0, lc=1476984836352 modbus-0 2016-10-20 19:33:56.348 info Connected to slave modbus-0 2016-10-20 19:33:55.588 info starting. Version 0.4.2 in D:/GitHub/iobroker/node_modules/iobroker.modbus modbus-0 2016-10-20 19:33:55.562 debug statesDB connected modbus-0 2016-10-20 19:33:55.556 debug objectDB connected host-conentfst08 2016-10-20 19:33:50.938 info instance system.adapter.modbus.0 started with pid 16736
Auch dazu hab ich mal einen Wireshark Mitschnitt generiert.
Anscheinend verhält sich mein "Live" Device etwas anders als der Simulator
-
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
-
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 -
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
-
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 -
Oh, da war ich zu ungeduldig :lol: :lol: :lol:
-
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
-
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:
-
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.
-