NEWS
ModBus RTU auf ModBus TCP über DR302
-
@pep stelle das loggen auf Debug
Und poste das log als Text in Code Tags
-
sieht aus, als ob er das ModBus Gerät nicht findet oder?
-
@pep bitte text, dann zitier ich's
-
@homoran
aber gern dochmodbus.1 2023-03-13 17:15:28.705 info Disconnected from slave 192.168.178.33 modbus.1 2023-03-13 17:15:28.704 debug Closing client on purpose. modbus.1 2023-03-13 17:15:27.705 debug Cleaning up request fifo. modbus.1 2023-03-13 17:15:27.705 debug Clearing timeout of the current request. modbus.1 2023-03-13 17:15:27.704 debug Socket closed with error modbus.1 2023-03-13 17:15:27.702 warn Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.1 2023-03-13 17:15:27.701 error Client in error state. modbus.1 2023-03-13 17:15:27.701 error Request timed out. modbus.1 2023-03-13 17:15:27.701 warn Error: undefined modbus.1 2023-03-13 17:15:22.697 debug Sending pdu to the socket. modbus.1 2023-03-13 17:15:22.696 debug [DevID_1/inputRegs] Poll address 3001 - 1 registers modbus.1 2023-03-13 17:15:22.695 debug Initialization of scale factors done! modbus.1 2023-03-13 17:15:22.694 debug [DevID_1] Poll start --------------------- modbus.1 2023-03-13 17:15:22.693 info Connected to slave modbus.1 2023-03-13 17:15:22.406 debug Initialize Objects for holdingRegs: [] modbus.1 2023-03-13 17:15:22.406 debug Add inputRegisters.3001_Inverter_Status: {"_id":"inputRegisters.3001_Inverter_Status","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":3001,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}} modbus.1 2023-03-13 17:15:22.405 debug Initialize Objects for inputRegs: [{"_address":"3001","name":"Inverter Status","description":"","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"value","room":"","cw":"","isScale":"","address":3001,"deviceId":1,"id":"inputRegisters.3001_Inverter_Status"}] modbus.1 2023-03-13 17:15:22.405 debug Initialize Objects for coils: [] modbus.1 2023-03-13 17:15:22.404 debug Initialize Objects for disInputs: [] modbus.1 2023-03-13 17:15:22.201 info starting. Version 5.0.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v16.19.0, js-controller: 4.0.24 modbus.1 2023-03-13 17:15:21.884 debug Plugin sentry Initialize Plugin (enabled=true) modbus.1 2023-03-13 17:15:21.749 debug States connected to redis: 0.0.0.0:9000 modbus.1 2023-03-13 17:15:21.655 debug States create User PubSub Client modbus.1 2023-03-13 17:15:21.654 debug States create System PubSub Client modbus.1 2023-03-13 17:15:21.588 debug Redis States: Use Redis connection: 0.0.0.0:9000 modbus.1 2023-03-13 17:15:21.555 debug Objects connected to redis: 0.0.0.0:9001 modbus.1 2023-03-13 17:15:21.550 debug Objects client initialize lua scripts modbus.1 2023-03-13 17:15:21.478 debug Objects create User PubSub Client modbus.1 2023-03-13 17:15:21.477 debug Objects create System PubSub Client modbus.1 2023-03-13 17:15:21.381 debug Objects client ready ... initialize now modbus.1 2023-03-13 17:15:21.262 debug Redis Objects: Use Redis connection: 0.0.0.0:9001
-
@pep sagte in ModBus RTU auf ModBus TCP über DR302:
Poll address 3001 - 1 registers
Gibt es das Register? Ich meine mich aus dem anderen Thread an Zahlen mit 4xxxx zu erinnern. Auch sollten es Holding sein meine ich.
-
Register 30001: Ist "alias" angehakt?
input register oder holding register?
Stimmen die Modbus Adresse des Wechselrichters?
Ich empfehle generell immer "mehrere Geräte Ids" anzuhaken. Die Adresse ist dann auf der Registerseite einzutragen.
Falls irgendwann ein zweiter Modbus Teilnehmer dazukommt, geht das besser. -
@pep sagte in ModBus RTU auf ModBus TCP über DR302:
Client in error state.
hast du den immer noch auf Master stehen?
wie geschrieben@homoran sagte in ModBus RTU auf ModBus TCP über DR302:
@pep work mode tcp server??
muss das nicht ein client sein? -
@homoran der usriot ist ein TCP server
Bei dem klopfen die clients (z.B iobroker) an und holen daten -
@klassisch sagte in ModBus RTU auf ModBus TCP über DR302:
@homoran der usriot ist ein TCP server
Bei dem klopfen die clients (z.B iobroker) an und holen daten -
@klassisch dann muss iobroker als client eingestellt sein.
(ist bei mir ein master!) -
Client in Error state kommt wenn die Verbindung zum Usriot steht, aber das Endgerät nicht oder nicht richtig antwortet
Immer erst mit einem Register anfangen
Jeder Fehler führt zum Abbruch mit unspezifischer Fehlermeldung
A B Leitungen probeweise kreuzen
Ist beim Endgerät Modbus überhaupt aktiviert? -
@homoran master im Modbus aber client im TCP
Du hast ja USB Karte und damit entfällt bei Dir der TCP Pfad.
Damit siehst Du nur den Modbus RS485. Da ist der ioBroker Adapter der Master und Deine Endgeräte die Slaves. Der Master fragt die reihum ab.Bei Mudbus über TCP ist die TCP Strecke zwischengeschaltet. Der Mudbus wird sozusagen Huckepack über TCP transportiert.
Und bei TCP ist der USRIOT der Server, bei dem die Clients anfragen. Der Server bedient dann die Clients und liefert Ergebnisse zurück. Das können mehrere Clients sein, die fragen.
Bei meinen Implementierungen von RFLInk über TCP (virtueller COM) und smartmeter (RS485 vom Hager Lesekopf) über TCP habe ich das schon so gemacht. -
@klassisch said in ModBus RTU auf ModBus TCP über DR302:
t beim Endgerät Modbu
Ich denke, dass an dem Growatt WR irgendwas mit dem ModBus noch nicht hinhaut - ich teste mal bissel rum. Sobald ich eine Lösung habe, gebe ich hier bescheid.
DANKE schonmal, für die vielen Rückmeldungen
-
@pep ich bin momentan an derselben Stelle. Ich versuche einen GROWATT MIC tl-x 2500 auszulesen. Ich bekomme mich auch auf den Waveshare RS485 - ETH Adapter verbunden, aber bekomme keine Daten aus dem WR. Konntest du dein Problem mittlerweile lösen?
-
@sneida sagte in ModBus RTU auf ModBus TCP über DR302:
aber bekomme keine Daten aus dem WR
und keine Meldungen im debug-log?
-
Hier mal meine Settings
2023-04-27 14:10:30.395 info Disconnected from slave 192.168.0.6 modbus.0 2023-04-27 14:10:29.594 warn Poll error count: 5 code: "App Timeout" modbus.0 2023-04-27 14:10:29.395 error Client in error state. modbus.0 2023-04-27 14:10:29.394 error Request timed out. modbus.0 2023-04-27 14:10:29.394 warn Error: undefined modbus.0 2023-04-27 14:10:25.295 warn Poll error count: 4 code: "App Timeout" modbus.0 2023-04-27 14:10:24.393 info Connected to slave 192.168.0.6
-
@sneida hast du die Logstufe der Instanz auf debug gestellt?
im log ist kein einziger debug Eintrag. -
modbus.0 2023-04-27 17:05:23.371 info Disconnected from slave 192.168.0.6 modbus.0 2023-04-27 17:05:23.371 debug Closing client on purpose. modbus.0 2023-04-27 17:05:22.372 debug Cleaning up request fifo. modbus.0 2023-04-27 17:05:22.372 debug Clearing timeout of the current request. modbus.0 2023-04-27 17:05:22.372 debug Socket closed with error modbus.0 2023-04-27 17:05:22.371 warn Poll error count: 3 code: {"err":"timeout","timeout":5000} modbus.0 2023-04-27 17:05:22.371 error Client in error state. modbus.0 2023-04-27 17:05:22.371 error Request timed out. modbus.0 2023-04-27 17:05:22.370 warn Error: undefined modbus.0 2023-04-27 17:05:17.371 debug [DevID_1/inputRegs] Poll address 0 - 2 registers modbus.0 2023-04-27 17:05:17.370 debug [DevID_1] Poll start --------------------- modbus.0 2023-04-27 17:05:17.370 info Connected to slave 192.168.0.6
-
@sneida hmm, da gilt erst einmal
@klassisch sagte in ModBus RTU auf ModBus TCP über DR302:
Client in Error state kommt wenn die Verbindung zum Usriot steht, aber das Endgerät nicht oder nicht richtig antwortet
Immer erst mit einem Register anfangen
Jeder Fehler führt zum Abbruch mit unspezifischer Fehlermeldung
A B Leitungen probeweise kreuzen
Ist beim Endgerät Modbus überhaupt aktiviert? -
@pep
Soweit ich das verstehe, musst du, wenn du im DR302 die Option "Modbus TCP" auswählst, im ioBroker Modbus Adapter bei den Verbindungseinstellungen "TCP" auswählen. Du hast "RTU over TCP" ausgewählt.
Alternativ sollte es auch gehen, wenn du die Einstellung im ioBroker bei "RTU over TCP belässt" und im DR302 den Haken bei Modbus TCP raus nimmst.