NEWS
[Gelöst] Modbus Einstellungen
-
@Paan83 said in Modbus Einstellungen:
Remote Port scheint doch der Port vom ioBroker zu sein, da ich ja auch die Remote IP eingeben soll, und der Port müsste ja in diesem Fall die 8081 sein
Nee, auf keinen Fall. Der Port gibt an, über welchen Port der Server = Modbus Adapter mit dem Gateway komuniziert. Den trägst du ja in der Adapterkonfiguration bei "Allgemein" ein. Modbus TCP Standard wäre übrigens
8899502, aber solange die zueinander passen, ist das Wurscht.
Der Webserver Port des ioBrokers hat da absolut nix zu suchen. -
@Alexi
ah okay verstehe. Ich hab mal versucht im Modbus Adapter unter Port und im Converter unter Remote Port die 8899 einzutragen, aber dann bekommt er gar keine Verbindung mehr hin. Der Status wird nur kurz grün, wenn im ioBroker unter Port die 8089 eingetragen ist. Ich weiss leider nicht was ich jetzt noch machen soll -
@Paan83
Ein Log wäre hilfreich...
Wichtig ist, dass die Ports in Adapter und Gateway gleich sind. -
@Alexi
Hier ist das Log:undefined2020-07-07 14:18:51.042 - info: host.iobrokerubuntu "system.adapter.modbus.1" enabled 2020-07-07 14:18:51.056 - info: host.iobrokerubuntu instance system.adapter.modbus.1 started with pid 4372 2020-07-07 14:18:51.920 - info: modbus.1 (4372) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.18.1 2020-07-07 14:18:52.189 - info: modbus.1 (4372) Connected to slave 192.168.178.112 2020-07-07 14:18:53.200 - info: modbus.1 (4372) Disconnected from slave 192.168.178.112
Und hier sind nochmal die Einstellungen:
-
Verwende viel Modbus TCP, mit RTU/Serial hab ich noch nicht gearbeitet.
Da gibt es auch eine Einstellung RTU over TCP, schon mal versucht?
Ebenso ist der Standardport für Modbus TCP der 502.
Einfach mal probieren. -
@Chris87
Hey, danke für den Tipp,
ich hab erstmal umgestellt auf RTU over TCP ->keine Veränderung
dann hab ich den Port im Adapter und im Converter auf 502 geändert. Dann kommt gar keine Verbindung mehr zu stande. Nur wenn ich den Port im Modbus auf 8089 stelle, dann connected er sich für 1s und dann ist die Verbindung wieder weg (siehe LOG im vorherigen Beitrag) -
@Paan83 said in Modbus Einstellungen:
Modbus auf 8089 stelle, dann connected er sich für 1s und dann ist die Verbindung wieder weg (siehe LOG im vorherigen Beitrag)
Wie sieht denn das Log aus, wenn "gar keine Verbindung zu stande" kommt?
Wenn etwas länger dauert, muss das nicht unbedingt ein Hinweis sein, dass es besser funktioniert.Edit: Oh, und du könntest mal den Log Level des Adapters auf Debug stellen, dann sieht man, ob er überhaupt eine Query rausschickt.
-
@Alexi
Wenn ich beide auf Port 502 stelle, dann sieht das Log folgendermassen aus:undefined2020-07-07 15:30:00.033 - info: host.iobrokerubuntu instance system.adapter.ical.0 started with pid 21404 2020-07-07 15:30:03.476 - info: host.iobrokerubuntu "system.adapter.modbus.1" enabled 2020-07-07 15:30:03.493 - info: host.iobrokerubuntu instance system.adapter.modbus.1 started with pid 21453 2020-07-07 15:30:04.052 - info: host.iobrokerubuntu instance system.adapter.ical.2 started with pid 21477 2020-07-07 15:30:04.721 - info: modbus.1 (21453) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.18.1 2020-07-07 15:30:05.213 - error: modbus.1 (21453) Socket Error 2020-07-07 15:30:05.214 - error: modbus.1 (21453) Client in error state. 2020-07-07 15:30:05.214 - warn: modbus.1 (21453) On error: {"errno":"ECONNREFUSED","code":"ECONNREFUSED","syscall":"connect","address":"192.168.178.112","port":502} 2020-07-07 15:30:11.628 - info: host.iobrokerubuntu instance system.adapter.ical.0 terminated with code 0 (NO_ERROR)
-
@Paan83
Sicher, dass du den Port auf dem Gateway wirksam geändert hast? Denn jetzt wird die Verbindung vom Gateway verweigert.
Welchen Port hast du denn im Gateway auf 502 geändert? Local, Remote oder beide? Wenn ich das in der Doku von dem Gateway richtig sehe, ist bei "TCP Client" und "RTU over TCP" "Remote" entscheidend.
Wie Chris87 schon geschrieben hat, sollte " RTU over TCP" übrigens die richtige Einstellung sein, da dein Boiler keinen ASCII Übertragungsmodus kann und somit RTU Modus gewählt werden muss). -
@Alexi
Beim Gateway habe ich nur folgende Auswahlmöglichkeiten:
den Modbus Adapter habe ich auf RTU over TCP umgestellt:
Auf den Fotos müsste man die Einstellungen doch gut erkennen können. Könnte es denn sein, dass er das Holding Register nicht lesen kann, und deswegen die Verbindung wieder trennt? Vielleicht ist hier noch eine Einstellung falsch -
Bleibt der Adapter gelb oder Rot, bzw. nur der letzte punkt gelb?
Was ist unter IP Einstellungen hast da noch was?
Schreib deinen Datenpunkt mal in Input Register.
MfG -
@Paan83
Ich sehe gerade (hatte die ganze Zeit Tomaten auf den Augen): Du musst im Gateway "TCP Server" auswählen. -
@Alexi
Wenn ich TCP Server auswähle, dann kann ich den Remote Port nicht mehr verändern, dieser steht dann auf 8089 grau hinterlegt, aber leider bleibt alles gleich, auch das LOG.
@Chris87
Der Adapter wird kurz grün und dann gelb und bleibt auch gelb.
Hier sind alle Menüs die es im Gateway gibt:
-
@Paan83
So, ich nochmal.
Das kommt davon, wenn man versucht Fragen so nebenbei zu beantworten.Wenn ich die richtige Beschreibung zu deinem Gateway gefunden habe, sollte folgende Einstellung fuktionieren:
Local Port Number: Die, die du im Modbus Adapter konfiguriert hast
Work Mode: TCP ServerIm Modbus Adapter musst du wahrscheinlich "RTU over TCP" auswählen.
Edit:
Wenn es dann nicht klappt, mal für den Adapter den Debug Loglevel aktivieren. Da sollte man dann sehen, ob er überhaupt eine Anfrage rausschickt. -
@Alexi
Danke dir schonmal dass du dir die Zeit nimmstIch habs jetzt so eingestellt wie du gesagt hast. Und hier ist das LOG dazu:
undefined2020-07-07 16:43:38.065 - info: host.iobrokerubuntu "system.adapter.modbus.1" enabled 2020-07-07 16:43:38.081 - info: host.iobrokerubuntu instance system.adapter.modbus.1 started with pid 12576 2020-07-07 16:43:38.387 - debug: modbus.1 (12576) Redis Objects: Use Redis connection: 127.0.0.1:9001 2020-07-07 16:43:38.430 - debug: modbus.1 (12576) Objects client ready ... initialize now 2020-07-07 16:43:38.431 - debug: modbus.1 (12576) Objects create System PubSub Client 2020-07-07 16:43:38.432 - debug: modbus.1 (12576) Objects create User PubSub Client 2020-07-07 16:43:38.432 - debug: modbus.1 (12576) Objects client initialize lua scripts 2020-07-07 16:43:38.437 - debug: modbus.1 (12576) Objects connected to redis: 127.0.0.1:9001 2020-07-07 16:43:38.439 - debug: modbus.1 (12576) objectDB connected 2020-07-07 16:43:38.440 - debug: modbus.1 (12576) Redis States: Use Redis connection: 127.0.0.1:9000 2020-07-07 16:43:38.445 - debug: modbus.1 (12576) States create User PubSub Client 2020-07-07 16:43:38.447 - debug: modbus.1 (12576) States create System PubSub Client 2020-07-07 16:43:38.460 - debug: modbus.1 (12576) States connected to redis: 127.0.0.1:9000 2020-07-07 16:43:38.461 - debug: modbus.1 (12576) statesDB connected 2020-07-07 16:43:38.773 - info: modbus.1 (12576) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.18.1 2020-07-07 16:43:39.013 - info: modbus.1 (12576) Connected to slave 2020-07-07 16:43:39.014 - debug: modbus.1 (12576) Poll device 1 2020-07-07 16:43:39.015 - debug: modbus.1 (12576) Poll holdingRegs DevID(1) address 42201 - 1 bytes 2020-07-07 16:43:39.016 - debug: modbus.1 (12576) Sending pdu to the socket. 2020-07-07 16:43:39.021 - debug: modbus.1 (12576) Socket closed with error 2020-07-07 16:43:39.022 - debug: modbus.1 (12576) Clearing timeout of the current request. 2020-07-07 16:43:39.022 - debug: modbus.1 (12576) Cleaning up request fifo. 2020-07-07 16:43:40.023 - debug: modbus.1 (12576) Closing client on purpose. 2020-07-07 16:43:40.023 - info: modbus.1 (12576) Disconnected from slave 192.168.178.112 2020-07-07 16:43:42.602 - debug: modbus.1 (12576) system.adapter.admin.0: logging false 2020-07-07 16:43:44.201 - debug: modbus.1 (12576) system.adapter.admin.0: logging true
-
Das Problem hatte in anfänglich (als ich angefangen habe mit Modbus zu arbeiten) auch öfters.
Es glaube es liegt an deinem Datenpunkt.
wenn du einen Adressbereich eingibst in der der Adapter nichts (richtiges) bekommt bleibt der gelb.
schau dir nochmal dein Mapping der signale genauer an.
Edit: Versuch den Datenpunkt ins Eingangsregister zu schieben. -
@Paan83
"Alias benutzen " ausschalten
--> Eingangsregister
Adr. 2200 (nach dem log will dien adapter bei 42201 was abholen, das passiert wenn du die adresse nicht änderst nachdem du das alias ausgeschaltet hast)
unsigned 16bit big endian -
@Paan83
OK, TCP Verbindung wird aufgebaut und er schickt auch einen Request raus.@Chris87 said in Modbus Einstellungen:
glaube es liegt an deinem Datenpunkt.
Ja, denke ich auch. Was hast du genau bei Holding Register eingetragen? Mach bitte nochmal nen Screenshot.
-
Alias benutzen ist aus:
Hier das Holding Register:
Das Selbe habe ich im Eingangsregister eingegeben, auch das hat er nicht geschluckt.Leider immer noch gelb und hier nochmal das Log nachdem ich es so eingestellt habe:
undefined2020-07-07 17:55:43.518 - info: host.iobrokerubuntu "system.adapter.modbus.1" enabled 2020-07-07 17:55:43.534 - info: host.iobrokerubuntu instance system.adapter.modbus.1 started with pid 32461 2020-07-07 17:55:43.838 - debug: modbus.1 (32461) Redis Objects: Use Redis connection: 127.0.0.1:9001 2020-07-07 17:55:43.852 - debug: modbus.1 (32461) Objects client ready ... initialize now 2020-07-07 17:55:43.854 - debug: modbus.1 (32461) Objects create System PubSub Client 2020-07-07 17:55:43.855 - debug: modbus.1 (32461) Objects create User PubSub Client 2020-07-07 17:55:43.855 - debug: modbus.1 (32461) Objects client initialize lua scripts 2020-07-07 17:55:43.864 - debug: modbus.1 (32461) Objects connected to redis: 127.0.0.1:9001 2020-07-07 17:55:43.866 - debug: modbus.1 (32461) objectDB connected 2020-07-07 17:55:43.866 - debug: modbus.1 (32461) Redis States: Use Redis connection: 127.0.0.1:9000 2020-07-07 17:55:43.871 - debug: modbus.1 (32461) States create User PubSub Client 2020-07-07 17:55:43.872 - debug: modbus.1 (32461) States create System PubSub Client 2020-07-07 17:55:43.880 - debug: modbus.1 (32461) States connected to redis: 127.0.0.1:9000 2020-07-07 17:55:43.880 - debug: modbus.1 (32461) statesDB connected 2020-07-07 17:55:44.412 - info: modbus.1 (32461) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.18.1 2020-07-07 17:55:44.647 - info: modbus.1 (32461) Connected to slave 2020-07-07 17:55:44.648 - debug: modbus.1 (32461) Poll device 1 2020-07-07 17:55:44.649 - debug: modbus.1 (32461) Poll inputRegs DevID(1) address 42201 - 1 bytes 2020-07-07 17:55:44.649 - debug: modbus.1 (32461) Sending pdu to the socket. 2020-07-07 17:55:44.653 - debug: modbus.1 (32461) Socket closed with error 2020-07-07 17:55:44.654 - debug: modbus.1 (32461) Clearing timeout of the current request. 2020-07-07 17:55:44.654 - debug: modbus.1 (32461) Cleaning up request fifo. 2020-07-07 17:55:45.655 - debug: modbus.1 (32461) Closing client on purpose. 2020-07-07 17:55:45.656 - info: modbus.1 (32461) Disconnected from slave 192.168.178.112 2020-07-07 17:55:47.457 - debug: modbus.1 (32461) system.adapter.admin.0: logging false 2020-07-07 17:55:47.804 - debug: modbus.1 (32461) system.adapter.admin.0: logging true
-
@Paan83
Das ist jetzt doppelt gemoppelt.
Wenn Du Alias ausschaltest, musst du 2200 eintragen.