NEWS
[Gelöst] Modbus Einstellungen
-
@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. -
@Alexi
okay, ich verstehe. Hab jetzt mal alle Datenpunkte gelöscht und einzeln im Holding und im Eingangsregister versucht mit 2200, aber bei beiden das gleiche:undefined2020-07-07 18:03:20.510 - info: host.iobrokerubuntu stopInstance system.adapter.modbus.1 (force=false, process=true) 2020-07-07 18:03:20.511 - info: host.iobrokerubuntu stopInstance system.adapter.modbus.1 send kill signal 2020-07-07 18:03:20.515 - info: modbus.1 (17180) Got terminate signal TERMINATE_YOURSELF 2020-07-07 18:03:20.515 - debug: modbus.1 (17180) Closing client on purpose. 2020-07-07 18:03:20.516 - info: modbus.1 (17180) terminating 2020-07-07 18:03:20.517 - info: modbus.1 (17180) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason 2020-07-07 18:03:21.026 - info: host.iobrokerubuntu instance system.adapter.modbus.1 terminated with code 156 (156) 2020-07-07 18:03:23.021 - info: host.iobrokerubuntu instance system.adapter.modbus.1 started with pid 19539 2020-07-07 18:03:23.323 - debug: modbus.1 (19539) Redis Objects: Use Redis connection: 127.0.0.1:9001 2020-07-07 18:03:23.338 - debug: modbus.1 (19539) Objects client ready ... initialize now 2020-07-07 18:03:23.340 - debug: modbus.1 (19539) Objects create System PubSub Client 2020-07-07 18:03:23.340 - debug: modbus.1 (19539) Objects create User PubSub Client 2020-07-07 18:03:23.341 - debug: modbus.1 (19539) Objects client initialize lua scripts 2020-07-07 18:03:23.349 - debug: modbus.1 (19539) Objects connected to redis: 127.0.0.1:9001 2020-07-07 18:03:23.352 - debug: modbus.1 (19539) objectDB connected 2020-07-07 18:03:23.353 - debug: modbus.1 (19539) Redis States: Use Redis connection: 127.0.0.1:9000 2020-07-07 18:03:23.359 - debug: modbus.1 (19539) States create User PubSub Client 2020-07-07 18:03:23.360 - debug: modbus.1 (19539) States create System PubSub Client 2020-07-07 18:03:23.373 - debug: modbus.1 (19539) States connected to redis: 127.0.0.1:9000 2020-07-07 18:03:23.373 - debug: modbus.1 (19539) statesDB connected 2020-07-07 18:03:23.721 - info: modbus.1 (19539) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.18.1 2020-07-07 18:03:23.970 - info: modbus.1 (19539) Connected to slave 2020-07-07 18:03:23.971 - debug: modbus.1 (19539) Poll device 1 2020-07-07 18:03:23.972 - debug: modbus.1 (19539) Poll inputRegs DevID(1) address 2200 - 1 bytes 2020-07-07 18:03:23.972 - debug: modbus.1 (19539) Sending pdu to the socket. 2020-07-07 18:03:23.979 - debug: modbus.1 (19539) Socket closed with error 2020-07-07 18:03:23.979 - debug: modbus.1 (19539) Clearing timeout of the current request. 2020-07-07 18:03:23.979 - debug: modbus.1 (19539) Cleaning up request fifo. 2020-07-07 18:03:24.980 - debug: modbus.1 (19539) Closing client on purpose. 2020-07-07 18:03:24.981 - info: modbus.1 (19539) Disconnected from slave 192.168.178.112 2020-07-07 18:03:25.713 - debug: modbus.1 (19539) system.adapter.admin.0: logging false 2020-07-07 18:03:27.272 - debug: modbus.1 (19539) system.adapter.admin.0: logging true
-
@Paan83
Nanu? Jetzt pollt er den aber als Input Register. Sicher, dass du den Datenpunkt auf der Holding Register Seite eingetragen hast? -
Sorry, mein Fehler. Probier die 2000 als eingangsregister.
-
@Alexi
ich hatte beide ausprobiert, einmal im Holding- und einmal im Eingangsregister.@Chris87 Ich hab es mit der 2000 versucht
Ich werde jetzt nochmal die Verkabelung kontrollieren, und die Einstellungen im Boiler selbst. Vielleicht gibt der dem Converter keine Antwort
-
Ich habe jetzt den Anschluss kontrolliert. Ich denke jetzt mal nicht dass es an der Verkabelung liegt. Das Verbindungskabel zwischen Boiler und Converter ist gerade mal 50cm lang, und es sind einzelne verdrillte Drähte (Servokabel aus dem Modellbau) mit ungefähr 0,5mm^2. An der Verdrahtung kann es nicht liegen.
Ich bin ebenfalls im Boiler alle Einstellungen nochmal durchgegangen. Alles in Ordnung. Das Einzige was ich nicht verstehe, im Menü stellt man einen Parameter ein der heißt "eigene Addresse", und die steht auf 1. Könnte das nicht die Einstellung "Local Port Number" im Converter sein? Ich habs schon ausprobiert, er bleibt trotzdem gelb, aber es klingt für mich logisch dass das diesem Wert entspricht.
In der Bedienungsanleitung vom Boiler steht auch was von STBus Alias. Muss man das vieleicht auch mitübergeben?
-
Probier bei dem Converter mal auf TCP Slave zurück zu stellen, da dein IOBroker ja eigentlich der Master ist.
und natürlich bei beiden den Port 502 einstellen und den Converter rebooten. -
@Paan83 said in Modbus Einstellungen:
Parameter ein der heißt "eigene Addresse", und die steht auf 1. Könnte das nicht die Einstellung "Local Port Number" im Converter sein?
Nein. Das ist die Geräte ID, die gibst du ja auch im Modbus Adapter an. Und die ist bei dir 1, sowohl im Boiler als auch im Modbus Adapter.
Hast du mal versucht, die Adern zu tauschen (A und B)? Ansonszen bleibt nur die Fehlersuche auf Protokollebene. Auf TCP Seite könnte man mal mit einem Tool wie Wireshark mithören. Auf serieller Seite bräuchtest du so was.
Das Problem an den einfachen TCP/RS485 Umsetzern ist, dass man nie genau weiß, was sie genau wie umsetzen. Manche können explizit Modbus TCP in Modbus Seriell umsetzen, die wären besser geeignet.Ich an deiner Stelle würde...
- A und B testweise tauschen
- testweise im Modbus Adapter TCP statt RTU over TCP probieren (da hab ich aber wenig Hoffnung)
- Mit Wireshark auf TCP Seite mithören (ist ziemlich einfach, sag Bescheid, wenn du das angehen willst)
-
@Chris87 said in Modbus Einstellungen:
Probier bei dem Converter mal auf TCP Slave zurück zu stellen
"TCP Slave" gibt's im Gateway ja nicht. Nur Server und Client. TCP Server entspricht Modbus Slave, das sollte schon stimmen.
-
@Alexi ich würde eher sagen der Client entspricht dem Slave
-
@Chris87 said in Modbus Einstellungen:
ich würde eher sagen der Client entspricht dem Slave
Normalerweise nicht, wobei man nie so recht weiß, wie die Gateway Hersteller ihre Betriebsarten benamsen.
Im reinen Modbus TCP Betrieb ist der Modbus Master der TCP Client und der Modbus Slave der TCP Server.
In dem Gateway, das ich verwende muss ich somit auch TCP Server einstellen, damit es funktioniert.Aber du hast schon Recht, es schadet nicht, es auszuprobieren. Wie gesagt, die Gateways haben da manchmal komische Bezeichnungen.
-
@Chris87
@Alexi
Folgendes habe ich auf der Webseite vom Hersteller gefunden, hier müsste man ja herausfinden können ob die Einstellung TCP-Server oder Slave sein muss...aber ich bin anscheinend zu blöd dafür. Mit Sicherheit versteht ihr das besser als ich:
-
@Paan83 Lt. Der Anleitung muss er auf Server stehen bleiben @Alexi hatte damit recht.
Poste doch nochmal alle aktuellen Einstellungen von deiner Instanz.
-
@Chris87
hier sind die aktuellen Einstellungen:
-
@Paan83 Also, setzte mal beide Ports auf 502 im Converter ist der local Port wichtig:
Dann änder mal einfach probehalber die abgefragte adresse in eingangsregister (nicht holding register) aus 2001.
Lösche alle anderen registereinträge (holding register). -
@Chris87
Ich hab jetzt Port und geräte ID im Adapter auf 502 gestellt, und die Verbindung steht jetzt! Ich kanns fast nicht glauben!Nur holt er sich noch keine Werte ab. Ich hab mal was im Holding und im Inputregister stehen, aber alle Werte stehen auf 0
-
@Chris87 said in Modbus Einstellungen:
Also, setzte mal beide Ports auf 502 im Converter ist der local Port wichtig:
Glaube nicht, dass es am Port liegt. Denn es wird ja die Verbindung aufgebaut und eine Query rausgeschickt.
Entweder antwortet das Gerät gar nicht, oder mit einer Exception (da der Read Timeout sehr hoch ist, vermute ich eine Exception, wenn der Adapter innerhalb einer Sekunde auf gelb geht).@Paan83
Hast du mal die Adern getauscht? Ist ein beliebter Fehler. -
@Paan83 said in Modbus Einstellungen:
Nur holt er sich noch keine Werte ab. Ich hab mal was im Holding und im Inputregister stehen, aber alle Werte stehen auf 0
Ein Log wäre hilfreich.