NEWS
Waveshare Modbus Hilfe
-
Hallo zusammen,
ich habe das Waveshare RS485 to POE Eth Gateway um meinen Stromzähler über Modbus RTU anzusprechen. Den Stromzähler habe ich mit einem Telefonkabel J-Y(St)Y 2x2x0,6 an den Waveshare geklemmt. Dürften vielleicht 2,5 m sein. Abschlusswiederstände habe ich nicht verbaut.
Ich komme sowohl mit dem VirCom als auch über den Browser auf den Waveshare. Die Einstellungen habe ich aus einem Thread hier im Forum übernommen.
Die Einstellungen im iobroker habe ich auch aus dem Forum übernommen.
Die Holding Register habe ich entsprechend dem Manual des Zählers eingestellt.
Ich bekomme folgende Fehler im Log.
2024-03-10 08:15:33.306 - info: modbus.0 (6425) Connected to slave 192.168.1.12 2024-03-10 08:15:33.306 - debug: modbus.0 (6425) [DevID_1] Poll start --------------------- 2024-03-10 08:15:33.307 - debug: modbus.0 (6425) [DevID_1/holdingRegs] Poll address 20479 - 4 registers 2024-03-10 08:15:38.308 - warn: modbus.0 (6425) Error: undefined 2024-03-10 08:15:38.308 - error: modbus.0 (6425) Request timed out. 2024-03-10 08:15:38.309 - error: modbus.0 (6425) Client in error state. 2024-03-10 08:15:38.309 - warn: modbus.0 (6425) Poll error count: 8 code: {"err":"timeout","timeout":5000} 2024-03-10 08:15:38.310 - debug: modbus.0 (6425) Socket closed with error 2024-03-10 08:15:38.310 - debug: modbus.0 (6425) Clearing timeout of the current request. 2024-03-10 08:15:38.310 - debug: modbus.0 (6425) Cleaning up request fifo. 2024-03-10 08:15:39.309 - debug: modbus.0 (6425) Closing client on purpose. 2024-03-10 08:15:39.310 - info: modbus.0 (6425) Disconnected from slave 192.168.1.12
Irgendeine Art Verbindung kommt zustande. Bin mir sicher, dass die Einstellungen bzgl. Alias passt, da sonst ein Fehler zu falschen Registern kommt. Die Geräte ID sollte auch stimmen, da unter Objekte der abgefragte Register angelegt wird. Ändere ich die Geräte ID, wird kein Objekt angelegt.
Kann mir jemand weiterhelfen?
-
@znaeb sagte in Waveshare Modbus Hilfe:
um meinen Stromzähler über Modbus RTU anzusprechen
stell mal hier einen Link ein wo die Register des Stromzählers dargestellt sind.
-
@ralla66 Ich hoffe das hilft weiter.
https://library.e.abb.com/public/c1e3b171b375492492e79ca10f34e05e/2CDC512084D0101.pdf
-
@znaeb sagte in Waveshare Modbus Hilfe:
Ich hoffe das hilft weiter.
wo steht, dass unsigned 64bittig ist? üblicherweise 16.
Aber wichtiger wäre wahrscheinlich die Device ID deines Gerätes
-
@homoran sagte in Waveshare Modbus Hilfe:
wo steht, dass unsigned 64bittig ist? üblicherweise 16.
Bei 'size' steht 4 zu 16 Bit je Modbus Register, dann stimmen die 64 meiner Meinung nach schon.
-
@znaeb
Hast du schon mal Register 20480 probiert, scheinbar soll man nichts subtrahieren? -
@latzi sagte in Waveshare Modbus Hilfe:
@znaeb
Hast du schon mal Register 20480 probiert, scheinbar soll man nichts subtrahieren?und ich hab's dreimal kontrolliert!
-
@homoran 4 x 16 bit = 64 bit. Das war zumindest meine naive Rechnung.
Register 20480 hatte ich erst auch versucht. Kein Unterschied. Die 20479 stehen nur da, weil mir nichts weiter mehr eingefallen ist, was ich testen könnte.
Wenn ich mit der Device ID rumspiele, dann bekomme ich andere Fehler und es wird kein Objekt angelegt. Daher war meine Vermutung, dass das passt. -
@znaeb sagte in Waveshare Modbus Hilfe:
4 x 16 bit = 64 bit. Das war zumindest meine naive Rechnung.
nein, das kommt auf das vom Gerät verwendete Format an.
16bit mit Länge 4 ist nicht 64Bit mit Länge1aber da käme wahrscheinlich nur Schwacchsin raus, aber immerhin etwas.
@homoran sagte in Waveshare Modbus Hilfe:
Aber wichtiger wäre wahrscheinlich die Device ID deines Gerätes
-
Du warst zu schnell, während ich noch meinen Beitrag editiert habe.
@znaeb said in Waveshare Modbus Hilfe:Wenn ich mit der Device ID rumspiele, dann bekomme ich andere Fehler und es wird kein Objekt angelegt. Daher war meine Vermutung, dass das passt.
-
@znaeb
ist das nicht ein Eingangsregister? -
@latzi sagte in Waveshare Modbus Hilfe:
@znaeb
ist das nicht ein Eingangsregister?Eigentlich schon. Aber im ersten Screenshot habe ich die Fussnote dahin interpretiert dass alle Register Holdingregister sind, wie es leider einige Hersteller machen.
Allerdings sollte @znaeb das ruhig mal unter Eingangsregister testen.
(Holdingregister dabei löschen) -
@znaeb sagte in Waveshare Modbus Hilfe:
Daher war meine Vermutung, dass das passt.
mmh, dubios!
und zum 4. Mal: welche Adresse hat dein Zähler?
-
@homoran Im Zähler habe ich die Adresse 1 eingestellt.
Ob Input oder Holding Register macht keinen Unterschied. Fehlermeldung bleibt gleich. -
@znaeb sagte in Waveshare Modbus Hilfe:
Im Zähler habe ich die Adresse 1 eingestellt.
dann passt das.
Das wird gerne falsch verstanden und als "mein erstes Gerät" also 1 eingegeben.Hat das Gerät eine Anzeige von Fehlern?
Hast du die modbus Instanz mal auf Logstufe debug gestellt?Was ich immer vergesse ist diese zusätzliche Ebene, die weitere Komplikationen verursacht: der RTU2ETH Konverter.
gibt es da ein log?
-
@homoran said in Waveshare Modbus Hilfe:
dann passt das.
Das wird gerne falsch verstanden und als "mein erstes Gerät" also 1 eingegeben.Das verwirrt mich jetzt. Adresse 1 im Zähler und Device ID 1 im Adapter sollten zusammen passen, richtig?
Debug log im iobroker hatte ich doch in meinem ersten Post eingefügt. Oder habe ich da nur die Info und Error logs kopiert?
Ob der Waveshare ein Log hat, muss ich suchen. Keine Ahnung.
-
@znaeb sagte in Waveshare Modbus Hilfe:
Adresse 1 im Zähler und Device ID 1 im Adapter sollten zusammen passen, richtig?
ja!
@znaeb sagte in Waveshare Modbus Hilfe:
Debug log im iobroker hatte ich doch in meinem ersten Post eingefügt.
Ach ja!
un da kommt nach dem korrekten Start@znaeb sagte in Waveshare Modbus Hilfe:
2024-03-10 08:15:38.308 - warn: modbus.0 (6425) Error: undefined
was auch immer da undefined ist.
die Meldung
@znaeb sagte in Waveshare Modbus Hilfe:
2024-03-10 08:15:38.308 - error: modbus.0 (6425) Request timed out.
sagt, dass nichts zurückkommt, wahrscheinlich weil am Gerät keine auswertbare Anfrage angekommen ist.
Anschließend noch die Meldung dass der Client im Error ist.
Leider kann ich bei der zusätzlichen Komplikation nicht helfen, da ich so etwas nicht nutze.
EDIT:
Hab da noch was im Hinterkopf.
jann es sein dass du nicht TCP sondern RTU über TCP o.ä. einstellen musst? -
sagt mal, ganz ohne Wissen über Modbus,
Doku Kapitel 4.1.1
Device ID 01, Functionscode 03 ( Holdingregister ) Adresse 5000 Active Import.
Ist das nicht Holdingadresse 35000 ? -
@ralla66 sagte in Waveshare Modbus Hilfe:
sagt mal, ganz ohne Wissen über Modbus,
Doku Kapitel 4.1.1
Device ID 01, Functionscode 03 ( Holdingregister ) Adresse 5000 Active Import.
Ist das nicht Holdingadresse 35000 ?nein!
5000 ist Hex und muss nach Dezimal umgerechnet werden. -
Danke für die Info,
Einstellung Modbus TCP to RTU ist ja ok.
Da scheint auch alles richtig.
Mich wundert das undefined auf die Address :2024-03-10 08:15:33.307 - debug: modbus.0 (6425) [DevID_1/holdingRegs] Poll address 20479 - 4 registers 2024-03-10 08:15:38.308 - warn: modbus.0 (6425) Error: undefined