NEWS
Modbus Adapter - Unterstützung für RTU over TCP
-
Ich habe Fehler gemacht es muss
this.logError('Wrong CRC for frame: ' + pdu.toArrayBuffer().join(', '));
sein
-
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
-
Ich habe auf dem git noch mal was gefixt.
Allerdings, das ist nur debug Ausgabe, die ich noch mal analysieren muss um auf die Lösung zu kommen.
Es wäre sehr praktisch, wenn du mal WebStorm Umgebung installieren konntest.
Oder TeamViewer?
-
ich versuch mal Webstorm hier vernünftig zum Laufen zu bringen!!!
Bin allerdings heute und morgen dann weg, vielleicht könnten wir echt
nächste Woche mal eine TeamViewer Sitzung machen, dann würdest du direkt das Live-Verhalten sehen
(und ich würd was über Webstrom und Debugging lernen).
Das wäre echt cool!!!
Ich setz mal alles auf und meld mich
-
Hi, ich bin auch langsam wieder auf dem weg an meiner haussteueung zu arbeiten. Nach dem ich ja aussversehen alle meine arduino Sketche gelöscht habe muss ich langsam mal wieder von vorne anfangen.
Habt ihr schon mal versucht auf dem weg mit dem com Server auch mal mehrere Rtu slaves abzufragen und zu beschreiben ?
Iobroker agiert ja jetzt als rtu master und liest und schreib die jeweiligen Register.
Das war auch damals genau mein Problem weil wenn der arduino master war dann konnte ich zwar problemlos alles per TCP oder matt zu io broker schicken aber aber zurück war das Problem.
Wenn jetzt nur noch io broker der master ist dann steht meiner eigenen slaves nix mehr im Wege ausser ich selbst
Gesendet von meinem AEON mit Tapatalk
-
Hi,
ich war jetzt leider beruflich unterwegs und muss gleich wieder los, konnte aber mal kurz testen.
Bei mir ist das Verhalten beim Schreiben unterschiedlich, aktuell erhalte ich eine Timeout Fehlermeldung,
anschliessend tut sich nichts mehr (Poll Timeout)
modbus-0 2016-10-25 07:26:18.811 warn Poll error count: 1 code: {"err":"timeout"} modbus-0 2016-10-25 07:26:08.793 info Connected to slave modbus-0 2016-10-25 07:26:07.960 info starting. Version 0.4.4 in D:/_/node_modules/iobroker.modbus host-conentfst08 2016-10-25 07:26:00.381 info instance system.adapter.modbus.0 started with pid 8868
Beim zweiten Versuch (Neustart des Adapters) habe ich wieder einen Timeout, da allerdings einen Write-Timeout,
anschliessend erfolgte aber eine Exception und daraufhin ein automatischer Neustart:
<code>host-conentfst08 2016-10-25 07:33:02.956 info Restart adapter system.adapter.modbus.0 because enabled host-conentfst08 2016-10-25 07:33:02.956 error instance system.adapter.modbus.0 terminated with code 0 (OK) modbus-0 2016-10-25 07:33:02.939 info terminating TypeError: 2016-10-25 07:33:02.934 error at TCP.onread (net.js:538:20) TypeError: 2016-10-25 07:33:02.934 error at Socket.Readable.push (_stream_readable.js:126:10) TypeError: 2016-10-25 07:33:02.934 error at readableAddChunk (_stream_readable.js:163:16) TypeError: 2016-10-25 07:33:02.934 error at Socket.emit (events.js:107:17) TypeError: 2016-10-25 07:33:02.934 error at Object. (D:\_\node_modules\iobroker.modbus\lib\modbus-tcp-rtu-client.js:103:29) TypeError: 2016-10-25 07:33:02.934 error at Function.Buffer.concat (buffer.js:215:9) TypeError: 2016-10-25 07:33:02.934 error undefined is not a function uncaught 2016-10-25 07:33:02.934 error exception: undefined is not a function modbus-0 2016-10-25 07:33:02.904 info Connected to slave modbus-0 2016-10-25 07:33:01.895 info Disconnected from slave 192.168.2.20 modbus-0 2016-10-25 07:33:01.895 error Cannot write [1]: {"err":"timeout"} modbus-0 2016-10-25 07:32:41.349 info Connected to slave modbus-0 2016-10-25 07:32:41.164 info starting. Version 0.4.4 in D:/_/node_modules/iobroker.modbus [code][/code]</code>
Wenn du mal Zeit / Lust hast könnten wir mal abends eine TeamViewer Session machen. Ich hab mir
jetzt Webstorm installiert, komm aber nicht so recht weiter. Bin abends immer so ab 18 Uhr eigentlich zu Hause
wenn berufl. nix dazwischenkommt
-
Hab sogar zu dem Verhalten jetzt mal einen Breakpoint in Webstorm hinbekommen:
Es war die Adresse 1, Holding Register (Unsigned 16Bit BigEndian), aber den Wert weis ich nicht mehr,
ist eine Temperatur, irgendetwas zwischen 15 und 20:
Webstorm Breakpoint:
Und hier der Wert von pdu:
-
Also auf dem git gibt es neue Version. Da habe ich auch was für seriel geändert.
-
super, hol ich mir gleich und lass einen dauertest übernacht laufen
-
Hat den Dauertest übernacht leider nicht bestanden
Bis 22:14 hat alles super funktioniert, dann kam ein timeout
und anschliessend hat er anscheinend nicht mehr neu aufgesetzt.
-
Habe was gemacht. Kannst du checken?
-
Ja check ich heut abend!!!
-
Hi,
Reconnect funktioniert!!!
Allerdings muss ich mal prüfen warum ich plötzlich so häufige timeouts bekomme.
Es lief jetzt ca 1,5h ohne einen einzigen timeout, jetzt treten die ersten auf,
aber der Reconnect setzt anscheinend sauber wieder auf.
Ich lass es auf jeden Fall noch übernacht weiterlaufen.
PS: Ich lass den Admin-Adapter auf der Seite "Log" stehen und da kommt dann auch irgendwann kein
"Refresh" mehr bis ich z.B. zu Ereignisse und zurück navigiere. Dann wird das Log refreshed aber nicht weiter
geupdated. Nach F5 im Browser geht es dann wieder.
Das ist doch das Problem das du auch noch suchst, oder, soll ich versuchen das irgendwie nachzustellen?
-
Also der Adapter ist durchgelaufen, Kommunikation (lesen) ging,
nur leider konnte ich heute früh keinen Wert mehr schreiben,
allerdings keine Log-Ausgabe und unter Objekte scheint es auch so auszusehen als ob
der Wert geschrieben wurde, ioBroker denkt ansch. es ist alles ok, aber der Wert kommt
im Gerät nicht an.
Ich lass den Adapter heut abend nochmal mit Webstorm laufen, evtl kann ich dann etwas rausfinden
-
Hi bluefox.
Ich müsste dich glaube ich nochmal wegen dem Modbus-Adapter belästigen.
Ich bekomme immer wieder Fehlermeldungen im Log bezüglich Timeouts.
Ich hab mich da mal mit Webstorm rangehangen, evlt kannst du mir ne Info geben, was da schief
läuft und ob man da evtl den Adapter robuster machen könnte oder ob in meiner Installation
(RTU-Device <–-ModbusRTU---> COMSERVER <---ModbusRtuOverTcp---> Modbus-Adapter) irgendetwas
schief ist. Das ModbusPoll-Tool meldet mir solche Fehler nicht.
Hier der Callstack von Webstorm:
main.reconnect(), main.js: 1346
main.js: 1765
emit(), stampit-event-bus.js: 20
modbus-client-core.js:59
listOnTimeout(), timers.js:119
Das kommt häufig vor wenn ich einen Wert SCHREIBEN will, dann reconnected der Adapter und der
Schreibauftrag geht nicht durch...
Kannst du dir die relevanten Code-Zeilen evtl mal anschauen ob du da etwas siehst?
Oder wir könnten nochmal eine TeamViewer Sitzung machen?
-
Hallo zusammen,
ich würde das Thema gerne nochmals aufgreifen. Habe ebenfalls eine Wac250 Westaflex Lüftung und versuche via RS485->USB Dongle Werte auszulesen und zu schreiben. Leider ohne Erfolg.
Könnt Ihr mir ggf. Tipps geben, wir Ihr den Wac Chip angesprochen habt?
Anbei meine versuchten Einstellungen:
ser = serial.Serial( port='/dev/ttyUSB0',\ baudrate=9600,\ parity=serial.PARITY_NONE,\ stopbits=serial.STOPBITS_ONE,\ bytesize=serial.EIGHTBITS,\ timeout=0) # 0 = non blocking mode ser.setRTS(True) #Hier sollte dann Lüfterstufe 0->3 geschalten werden... #so sieht es zumindest im WireShark aus...wenn die Fernbedienung das macht.... input="\x01\x70\xd3\x19\xf9\xf9\x00" ser.write(input)
Das ModBus Protokoll mit Slave und den Funktionen kann ich darin aber nur Ansatzweise erkennen…????
Über Tipps würde ich mich sehr freuen.
-
@tschombe said in Modbus Adapter - Unterstützung für RTU over TCP:
Bezüglich des Features "RTU over TCP" hab ich gestern mal meinen Testaufbau aktiviert.
Ich hab eine Westaflex-Steuerung die ModbusRTU über RS485 spricht. Daran hängt ein WUT 58631
(COM-Server von W&T), also ein Converter der das Ding in mein Ethernet-Netzwerk bringt.
Der Converter wandelt nun TCP Anfragen in RTU Anfragen um, allerdings muss das Protokoll
als Modbus RTU over TCP erfolgen.Hi, ich weiß das Thema ist schon älter aber hast du den WuT noch in Betrieb und wenn ja funktioniert er mit dem Modbus-Adapter vom ioBroker?
Wenn ja, könntest du mir deine Konfiguration des 58631 und der Instanz vom ioBroker zur Verfügung stellen?
Gruß
Dirk