NEWS
[Gelöst] Modbus Einstellungen
-
Hallo, ich bräuchte Hilfe beim Einstellen von Modbus. Ich habe einen neuen Boiler mit Wärmepumpe von Ochsner erworben, und möchte diesen über Modbus auslesen. Dazu hab ich mir einen RS485 to Ethernet Converter besorgt:
Dieser soll die Verbindung zum ioBroker herstellen. Die Anschlüsse A, B und G sind über 50cm lange Drähte ohne Isolation mit dem Boiler verbunden. Die andere Seite ist mit einem CAT7 Kabel an meinem Netzwerk angeschlossen.
Nachdem alles angeschlossen war, und eingeschaltet wurde, hat der Converter eine IP Adresse (192.168.178.112) bekommen, und konnte so auf das Menü des Konverters zugreifen. Folgende Einstellungen habe ich getätigt:
Baudrate ist 9600, ist auch so im Boiler eingestellt. Data Size und Parity müssten auch stimmen, hab ich mal so aus der Anleitung entnommen (siehe Bild unten). Remote Server, müsste ja die IP vom IoBroker sein. Local Port und Remote Port weiss ich nicht genau was ich einstellen soll.
Hier sind jetzt die Einstellungen die ich im ioBroker eingestellt habe:
Wenn ich den Modbus Adapter starte, wird dieser für 8s grün und dann gelb. Im LOG steht dann folgendes:
Leider kann ich das nicht richtig deuten. In der Anleitung stehen Addressen zwischen 2000 und 2204. Kann mir jemand sagen was ich falsch mache?
Danke euch
Christophe -
Haken bei Aliases benutzen raus und IMMER mit dem grünem Haken abspeichern.
Einfach ENTER drücken reicht NICHT !
(Meine Erfahrung. Modbus ist nicht meins. Viel zu Anfällig für Fehler) -
@Paan83
Hab jetzt nicht alle Einstellungen kontrolliert, aber beim ioBroker Modbus Adapter musst du bei Holding Registers noch die Holding Register Basisadresse auf dein Register draufaddieren. Wenn du also Holding Register2001 lesen willst, dann 40001+2200 = 42201.
Damit sollte schonmal die Fehlermeldung "Invalis Holding Register Address" verschwinden.Edit: Oder wie mein Vorredner schrieb, Haken bei Alias rausnehmen. Hatte ich gerade überlesen.
Nochmal Edit: Ich sehe gerade, dass du die Startadresse bei Hoding Registers auf 2000 geändert hast. Die sollte nicht geändert werden und 40001 betragen (Modbus Standard). -
@Blechsoldat
Hallo,
danke für deine Anregung. Haken bei Aliases ist raus. Das mit dem grünen Haken bestätigen ist mir auch schon aufgefallenMeinen Wechselrichter lese ich seid einem Jahr ohne Probleme mit Modbus aus. Womit hast du Probleme?
-
@Alexi
Danke für den Hinweis, durch das Ändern des Holding Registers ist schonmal die Fehlermeldung verschwunden. Jedoch wechselt der Status jetzt noch schneller von grün auf gelb. Sobald die Instanz läuft wird sie kurz grün und direkt wieder gelb.undefined2020-07-07 08:39:54.642 - info: modbus.1 (6176) Connected to slave 192.168.178.112 2020-07-07 08:39:54.858 - info: host.iobrokerubuntu "system.adapter.modbus.1" disabled 2020-07-07 08:39:54.859 - info: host.iobrokerubuntu stopInstance system.adapter.modbus.1 (force=false, process=true) 2020-07-07 08:39:54.861 - info: host.iobrokerubuntu stopInstance system.adapter.modbus.1 send kill signal 2020-07-07 08:39:54.864 - info: modbus.1 (6176) Got terminate signal TERMINATE_YOURSELF 2020-07-07 08:39:54.865 - info: modbus.1 (6176) terminating 2020-07-07 08:39:54.866 - info: modbus.1 (6176) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason 2020-07-07 08:39:55.379 - info: host.iobrokerubuntu instance system.adapter.modbus.1 terminated with code 156 (156) 2020-07-07 08:39:56.643 - info: host.iobrokerubuntu "system.adapter.modbus.1" enabled 2020-07-07 08:39:56.654 - info: host.iobrokerubuntu instance system.adapter.modbus.1 started with pid 29600 2020-07-07 08:39:57.402 - info: modbus.1 (29600) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.18.1 2020-07-07 08:39:57.771 - info: modbus.1 (29600) Connected to slave 192.168.178.112 2020-07-07 08:39:58.782 - info: modbus.1 (29600) Disconnected from slave 192.168.178.112
Vielleicht kann mir jemand anhand des LOGs weiterhelfen?
Im Menü des Converters gibt es noch eine Einstellseite, aber ich habe keinen blassen Schimmer was ich hier einstellen soll:
-
@Paan83
Sieht für mich so aus, als ob der Adapter erst gar keine TCP Verbindung zum Gateway aufbauen kann.
Ich würde mal bei Remote Port Number die 8089 eintragen. -
@Alexi
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 oder nicht?
Aber leider immer noch gelb... -
@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: