NEWS
ModBus RTU auf ModBus TCP über DR302
-
@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. -
@homoran ich habe im ersten Schritt die Kabel vertauscht. Lange Rede, kurzer Sinn. Es läuft. Entgegen der normalen Belegung im Modbus A/A' B/B' (differentiales Signal, also theoretisch egal) hat wohl entweder bei der Dokumentation bei Waveshare oder bei GROWATT etwas verwechselt.
-
@sneida Danke für die Rückmeldung! Ja, bei A/B RS485 ist die Welt zweigeteilt. Die meisten EU-Energiegerätehersteller haben eine andere Auslegung der Norm als die Halbleiterhersteller. Die Chinesischen Konverterhersteller wie USRIOT, Waveshare halten sich an die Datenblätter der Halbleiterhersteller. Bei Chinesischen Energiegeräten weiß man es nicht so recht. Die SDM120, 630, 72 halten sich auch an die Halbleiterhersteller. Dein Chinesischer Wechselrichter macht es also anders.
Deshalb muß man im Zweifel auch vertauschen testen. -
@klassisch
Hast du noch einen Tipp für mich: Ich erhalte in allen Holdingregistern, die ich ausprobiere keine Daten (0, Null). Ich habe Register zwischen 01-124 und 1000-1024 ausprobiert.Einstellung ShareWave und ioBroker sollten passen (Konfiguration wie hier ohne Fehler im Debug Mode).
Kabel habe ich auch schon vertauscht.
Wechselrichter ist Growatt SPF 3000 TL.Sobald ich auf das Input Register gehe, wird er einen Fehler "ReadInputRegisters: Invalid FC77". Das zeigt, dass grundsätzlich die Kommunikation funktioniert, oder?
-
@nico-lai sagte in ModBus RTU auf ModBus TCP über DR302:
allen Holdingregistern, die ich ausprobiere keine Daten (0, Null)
hast du da polling aktiviert?