NEWS
[gelöst] Modbus Gerät (Daikin DCOM) will nicht
-
Nachdem ich in den letzten Wochen diverse Stromzähler und auch mein Victron System absolut problemlos über modbus einbinden konnte, schaffe ich es nicht meine heute in Betrieb gegangene Daikin Altherma über das DCOM LT/IO Interface ans laufen zu bekommen.
Die Kommunikation scheint zu klappen, da bei Eingabe nur vom Registeroffset folgende Fehlermeldung kommt
modbus.0 2023-03-17 16:35:35.211errorInvalid object: {"type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":-29868,"deviceId":11,"type":"floatbe","len":2,"offset":0,"factor":1}} modbus.0 2023-03-17 16:35:35.210errorInvalid data inputRegisters/0: {"_address":133,"deviceId":11,"name":"Außentemperatur ","description":"","unit":"","type":"floatbe","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","address":-29868,"fullId":"modbus.0.0"} modbus.0 2023-03-17 16:35:35.208errorInvalid inputRegisters address: -29868
erhöhe ich den Offset um 30000 kommt nur noch
modbus.0 2023-03-17 16:43:35.121 info Disconnected from slave modbus.0 2023-03-17 16:43:34.120 warn Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.0 2023-03-17 16:43:34.119 error Request timed out. modbus.0 2023-03-17 16:43:34.117 warn Error: undefined modbus.0 2023-03-17 16:43:28.500 info Connected to slave
dann bleibt die Instanz gelb.
Ist natürlich ärgerlich, weil noch 3 Stromzähler am Bus hängen.
hier die Anleitung
DCOM-LT-MB_reference and installation manual_German(1).pdf
Das ist eine Kombi Anleitung für zwei Geräte, ich habe die Variante IO, die ganz unten beschrieben ist -
@homoran ich hab mir divetse logs nochmal angesehen.
In dem hier zitierten ist mir dabei aufgefallen@homoran sagte in Modbus Gerät will nicht:
isScale":"","address":-29868,"fullId":"modbus.0.0"}
wieso modbus.0.0??
-
@homoran sagte in Modbus Gerät will nicht:
wieso modbus.0.0??
Warum .. wiso .. kann ich auch nicht erklären ...
War aber auch in einem anderen Thread auch so :
https://forum.iobroker.net/post/893049Laut Input Register ist es 44
er macht dir daraus
2023-03-17 16:35:35.208errorInvalid inputRegisters address: -29868
Ist natürlich ärgerlich, weil noch 3 Stromzähler am Bus hängen.
Teste mit einer neuen Modbus Instanz und frage nur Testweise ein Register ab .
EDIT:
Hast du den Haken bei "Aliases benutzen" gesetzt , nimm den mal raus !?
-
@glasfaser sagte in Modbus Gerät will nicht:
Teste mit einer neuen Modbus Instanz und frage nur Testweise ein Register ab .
kann ich mit 2 Instanzen auf den selben USB Port?
-
@glasfaser sagte in Modbus Gerät will nicht:
Laut Input Register ist es 44
ja, hatte einiges probiert und die Beschreibung nie geändert,
so auch mit und ohne Alias. das verschob die Adresse um 1 nach vorne nach debug log. hab dann auch mal die Register Adresse erhöht und alle gängigen Typen probiert.
ohne Erfolg -
-
@glasfaser deswegen hab ich es erst gar nicht versucht
muss ich wohl noch einen Waveshare usb2rs485 holen -
@homoran Vor dem Kauf würde ich erst mal die Zälerinstanz stoppen und den USB Konverter für die Daikin mit einer neuen Instanz nutzen. Zählerbus natürlich für diesen Test vom Konverter abklemmen.
Dann Adresse überprüfen. Mikroschalter.
Dann zuerst nur ein einizges Register abfragen, bis man das im Griff hat.
Beschreibung S. 8:
"Die DCOM-Dokumentation verwendet für alle Register die Offset-
Nummerierung der Modbus-Register. Ein Register wird durch
den Funktionstyp (Holding oder Input) und das Register-Offset
spezifiziert. Das Register-Offset ist ein Wert zwischen 0 und 65535.
Zur Verwendung der alternativen Modicon-
Registeradressierungsmodi 3xxxx und 4xxxx muss eine
Konvertierung durchgeführt werden. Das Modicon Basis-Holding-
Register ist 40001, das Modicon Basis-Input-Register ist 30001.
Zum Konvertieren der DCOM-Register in das Modicon-Format
fügen Sie das DCOM-Register-Offset zum Modicon Basis-
Register hinzu.
Beispiele:
DCOM Holding-Register 1 = 40001 + 1
= Modicon-Register 40002
DCOM Input-Register 20 = 30001 + 20
= Modicon-Register 30021"Das paßt zu "alias verwenden" angehakt.
Wenn die Daikin dann mit dieser neuen Instanz läuft, kannst Du den Daikin und den Zählerbus Bus zusammenverschalten, die Daikin Instanz stoppen und die Zählerinstanz start. Dann dort die Daikin Register aufbauen. Wenn es dann wieder zum Crash kommt, brauchst Du tatsächlich einen zusätzlichen Konverter.
-
Wie sehen denn die Einstellungen der Instanz und Register überhaupt aus ?
-
@klassisch sagte in Modbus Gerät will nicht:
würde ich erst mal die Zälerinstanz stoppen und den USB Konverter für die Daikin mit einer neuen Instanz nutzen.
das habe ich für morgen geplant, falls ich es heute abend nicht mehr anders gelöst bekomme.
(reisst mir Löcher in die Charts)@klassisch sagte in Modbus Gerät will nicht:
DCOM -Register 1 = 40001 + 1
weisst du wie oft ich das gelesen habe?
trotzdem imner nur 40000 hinzugefügtoder muss ich modicon (was immer das ist) Register ansprechen?
@wendy2702 sagte in Modbus Gerät will nicht:
Wie sehen denn die Einstellungen der Instanz und Register überhaupt aus ?
die hab ich immer nach 20 Minuten Spielen wieder gelöscht, damit die Stromzähler weiter verbunden sind.
die Grundeinstellungen
-
@homoran sagte in Modbus Gerät will nicht:
(reisst mir Löcher in die Charts)
Alternative: Löcher im Geldbeutel.
Wahrscheinlich hast Du noch ein Testsystem. Dann bräuchtest Du nur noch einen zweiten (billigen) RS485 Stick. Für solche Versuchszwecke hatte ich mir mal die 50Ct, 1 EUR Dinger gekauft, als man bei ali noch günstig kaufen konnte.
Produktiv verwende ich ja kein USB, sondern die TCP Server. Aber das macht es noch eine Stufe komplexer. Deshalb ist der Start mit USB schonmal eine gute Sache. Mit USB und Linux kommst Du ja zurecht.
-
so kurz .2 installiert, ohne Alias
auch mit ..64 probiertmodbus.2 2023-03-18 20:24:03.532 debug Cleaning up request fifo. modbus.2 2023-03-18 20:24:03.531 debug Clearing timeout of the current request. modbus.2 2023-03-18 20:24:03.530 info Disconnected from slave modbus.2 2023-03-18 20:24:02.531 warn Poll error count: 2 code: {"err":"timeout","timeout":5000} modbus.2 2023-03-18 20:24:02.529 error Request timed out. modbus.2 2023-03-18 20:24:02.528 warn Error: undefined modbus.2 2023-03-18 20:23:57.526 debug [DevID_11/inputRegs] Poll address 30065 - 1 registers modbus.2 2023-03-18 20:23:57.526 debug [DevID_11] Poll start --------------------- modbus.2 2023-03-18 20:23:57.525 info Connected to slave
-
@homoran 30000 etc deuten für mich auf input register und alias hin.
Bei Modbus muß alles stimmen, sonst geht gar nichts. Und die Fehlermeldungen helfen wenig. Deshalb immer nur in kleinen Schritten -
@klassisch was wäre dein Vorschlag?
Registeroffset 44 INPUT
Typ Temp16= vorzeichenbehaftetes 16Bit mit Faktor 0.01 -
@homoran Ich fange immer mit Input an
Da gibt es die 49 Durchflußmenge mit Int16
wahrscheinlich:
alias
30050
Wenn das nicht geht probiert man
30048, 30049, 30050, 30051, 30052Multiplikator macht man später
-
@klassisch sagte in Modbus Gerät will nicht:
Ich fange immer mit Input an
ich auch!
@klassisch sagte in Modbus Gerät will nicht:
mit Int16
signed int16 big endian??
-
@homoran unsigned, big endian ist häufiger. Daikin sagt nichts dazu
-
@klassisch sagte in Modbus Gerät will nicht:
@homoran unsigned, big endian ist häufiger. Daikin sagt nichts dazu
ok mit unsigned be ..48 bis ..52 kein Erfolg.
mich hatte der timeout irritiert.
bin nochmal in den Keller. beim Neustart blinkt der TX am Waveshare.
Am DCOM kann ich mir ein kurzes Aufblinken einbilden. (bei reversed polarity wurde es gestern rot)
laut Anleitung soll das Adresse 11 sein -
@homoran reverse polarity= A, B gekreuzt? Könnte sein. Japaner interpretieren Normen oft gründlicher.
-
@klassisch aber rot=Fehler. müsste grün blinken. tut es nicht