NEWS
[Gelöst] Modbus Einstellungen
-
@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. -
@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