NEWS
Modbus TCP Problem
-
-
@bytec sagte in Modbus TCP Problem:
und wie gesagt sie gehen alle richtig in Loxone in einem Modus Client auf dem Rechner
Gegenfrage ... läßt dein Modbus eigentlich 2 Client´s zu, das Register abzufragen !?
-
ja sonst würden ja die anderen Clients wie oben geschrieben auch nicht gehen
der Client läuft die ganze Zeit nebenbei und pollt die richtigen Werte
-
@bytec sagte in Modbus TCP Problem:
2023-01-14 18:07:00.173 debug [DevID_1/inputRegs] Poll address 39 - 1 registers
2023-01-14 18:07:00.143 debug [DevID_1/inputRegs] Poll address 4 - 1 registers
das wäre richtig = 1 Register
ab hier 12
2023-01-14 18:07:00.213 debug [DevID_1/inputRegs] Poll address 77 - 12 registers
kannst du bitte ein Debug log zeigen , wo 77 funktioniert !
EDIT :
Bzw. 78 ... komme gerade nicht mit ... da :
@bytec sagte in Modbus TCP Problem:
dem auszulesenden Register dazuzählen also ich möchte 77 muss dann aber 78 eingeben. Dies funktioniert so bei den anderen Registern. -
Also aktuelle Einstellung im Bild werden 4 / 39 / 77 korrekt ausgelesen 88 kommt eine gelbe 0
Laut dem Log steht bei 77 ja wieder 12 register ...
2023-01-14 19:02:04.751 debug Closing client on purpose. modbus.1 2023-01-14 19:02:03.750 debug Cleaning up request fifo. modbus.1 2023-01-14 19:02:03.750 debug Socket closed with error modbus.1 2023-01-14 19:02:03.729 info Disconnected from slave 192.168.0.56 modbus.1 2023-01-14 19:02:03.729 debug Closing client on purpose. modbus.1 2023-01-14 19:02:03.678 warn Poll error count: 6 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.1 2023-01-14 19:02:03.678 debug Received pdu describes an error. modbus.1 2023-01-14 19:02:03.627 debug [DevID_1/inputRegs] Poll address 77 - 12 registers modbus.1 2023-01-14 19:02:03.627 debug [DevID_1/inputRegs/39] Calculation result = 34.5, type = number modbus.1 2023-01-14 19:02:03.627 debug [DevID_1/inputRegs/39] Formula = x / 10 modbus.1 2023-01-14 19:02:03.626 debug [DevID_1/inputRegs/39] Input Value = 345 modbus.1 2023-01-14 19:02:03.626 debug [DevID_1/inputRegs] Poll address 39 DONE modbus.1 2023-01-14 19:02:03.589 debug [DevID_1/inputRegs] Poll address 39 - 1 registers modbus.1 2023-01-14 19:02:03.588 debug [DevID_1/inputRegs/4] Calculation result = 29.3, type = number modbus.1 2023-01-14 19:02:03.588 debug [DevID_1/inputRegs/4] Formula = x / 10 modbus.1 2023-01-14 19:02:03.588 debug [DevID_1/inputRegs/4] Input Value = 293 modbus.1 2023-01-14 19:02:03.588 debug [DevID_1/inputRegs] Poll address 4 DONE modbus.1 2023-01-14 19:02:03.555 debug [DevID_1/inputRegs] Poll address 4 - 1 registers modbus.1 2023-01-14 19:02:03.554 debug [DevID_1] Poll start --------------------- modbus.1 2023-01-14 19:02:02.504 warn Poll error count: 5 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.1 2023-01-14 19:02:02.504 debug Received pdu describes an error. modbus.1 2023-01-14 19:02:02.442 debug [DevID_1/inputRegs] Poll address 77 - 12 registers modbus.1 2023-01-14 19:02:02.442 debug [DevID_1/inputRegs/39] Calculation result = 34.5, type = number modbus.1 2023-01-14 19:02:02.442 debug [DevID_1/inputRegs/39] Formula = x / 10 modbus.1 2023-01-14 19:02:02.442 debug [DevID_1/inputRegs/39] Input Value = 345 modbus.1 2023-01-14 19:02:02.442 debug [DevID_1/inputRegs] Poll address 39 DONE modbus.1 2023-01-14 19:02:02.410 debug [DevID_1/inputRegs] Poll address 39 - 1 registers modbus.1 2023-01-14 19:02:02.409 debug [DevID_1/inputRegs/4] Calculation result = 29.3, type = number modbus.1 2023-01-14 19:02:02.409 debug [DevID_1/inputRegs/4] Formula = x / 10 modbus.1 2023-01-14 19:02:02.409 debug [DevID_1/inputRegs/4] Input Value = 293 modbus.1 2023-01-14 19:02:02.409 debug [DevID_1/inputRegs] Poll address 4 DONE modbus.1 2023-01-14 19:02:02.380 debug [DevID_1/inputRegs] Poll address 4 - 1 registers modbus.1 2023-01-14 19:02:02.380 debug [DevID_1] Poll start --------------------- modbus.1 2023-01-14 19:02:01.329 warn Poll error count: 4 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.1 2023-01-14 19:02:01.329 debug Received pdu describes an error. modbus.1 2023-01-14 19:02:01.273 debug [DevID_1/inputRegs] Poll address 77 - 12 registers modbus.1 2023-01-14 19:02:01.272 debug [DevID_1/inputRegs/39] Calculation result = 34.5, type = number modbus.1 2023-01-14 19:02:01.272 debug [DevID_1/inputRegs/39] Formula = x / 10 modbus.1 2023-01-14 19:02:01.272 debug [DevID_1/inputRegs/39] Input Value = 345 modbus.1 2023-01-14 19:02:01.272 debug [DevID_1/inputRegs] Poll address 39 DONE modbus.1 2023-01-14 19:02:01.240 debug [DevID_1/inputRegs] Poll address 39 - 1 registers modbus.1 2023-01-14 19:02:01.240 debug [DevID_1/inputRegs/4] Calculation result = 29.3, type = number modbus.1 2023-01-14 19:02:01.240 debug [DevID_1/inputRegs/4] Formula = x / 10 modbus.1 2023-01-14 19:02:01.239 debug [DevID_1/inputRegs/4] Input Value = 293 modbus.1 2023-01-14 19:02:01.239 debug [DevID_1/inputRegs] Poll address 4 DONE modbus.1 2023-01-14 19:02:01.206 debug [DevID_1/inputRegs] Poll address 4 - 1 registers modbus.1 2023-01-14 19:02:01.205 debug [DevID_1] Poll start --------------------- modbus.1 2023-01-14 19:02:00.154 warn Poll error count: 3 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.1 2023-01-14 19:02:00.154 debug Received pdu describes an error. modbus.1 2023-01-14 19:02:00.097 debug [DevID_1/inputRegs] Poll address 77 - 12 registers modbus.1 2023-01-14 19:02:00.096 debug [DevID_1/inputRegs/39] Calculation result = 34.5, type = number modbus.1 2023-01-14 19:02:00.096 debug [DevID_1/inputRegs/39] Formula = x / 10 modbus.1 2023-01-14 19:02:00.096 debug [DevID_1/inputRegs/39] Input Value = 345 modbus.1 2023-01-14 19:02:00.096 debug [DevID_1/inputRegs] Poll address 39 DONE modbus.1 2023-01-14 19:02:00.065 debug [DevID_1/inputRegs] Poll address 39 - 1 registers modbus.1 2023-01-14 19:02:00.064 debug [DevID_1/inputRegs/4] Calculation result = 29.3, type = number modbus.1 2023-01-14 19:02:00.064 debug [DevID_1/inputRegs/4] Formula = x / 10 modbus.1 2023-01-14 19:02:00.064 debug [DevID_1/inputRegs/4] Input Value = 293 modbus.1 2023-01-14 19:02:00.064 debug [DevID_1/inputRegs] Poll address 4 DONE modbus.1 2023-01-14 19:02:00.024 debug [DevID_1/inputRegs] Poll address 4 - 1 registers modbus.1 2023-01-14 19:02:00.024 debug [DevID_1] Poll start --------------------- modbus.1 2023-01-14 19:01:58.973 warn Poll error count: 2 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.1 2023-01-14 19:01:58.972 debug Received pdu describes an error. modbus.1 2023-01-14 19:01:58.924 debug [DevID_1/inputRegs] Poll address 77 - 12 registers modbus.1 2023-01-14 19:01:58.923 debug [DevID_1/inputRegs/39] Calculation result = 34.5, type = number modbus.1 2023-01-14 19:01:58.923 debug [DevID_1/inputRegs/39] Formula = x / 10 modbus.1 2023-01-14 19:01:58.923 debug [DevID_1/inputRegs/39] Input Value = 345 modbus.1 2023-01-14 19:01:58.923 debug [DevID_1/inputRegs] Poll address 39 DONE modbus.1 2023-01-14 19:01:58.890 debug [DevID_1/inputRegs] Poll address 39 - 1 registers modbus.1 2023-01-14 19:01:58.890 debug [DevID_1/inputRegs/4] Calculation result = 29.3, type = number modbus.1 2023-01-14 19:01:58.890 debug [DevID_1/inputRegs/4] Formula = x / 10 modbus.1 2023-01-14 19:01:58.889 debug [DevID_1/inputRegs/4] Input Value = 293 modbus.1 2023-01-14 19:01:58.889 debug [DevID_1/inputRegs] Poll address 4 DONE modbus.1 2023-01-14 19:01:58.857 debug [DevID_1/inputRegs] Poll address 4 - 1 registers modbus.1 2023-01-14 19:01:58.856 debug [DevID_1] Poll start --------------------- modbus.1 2023-01-14 19:01:57.804 warn Poll error count: 1 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.1 2023-01-14 19:01:57.803 debug Received pdu describes an error. modbus.1 2023-01-14 19:01:57.804 warn Poll error count: 1 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.1 2023-01-14 19:01:57.803 debug Received pdu describes an error. modbus.1 2023-01-14 19:01:57.744 debug [DevID_1/inputRegs] Poll address 77 - 12 registers modbus.1 2023-01-14 19:01:57.743 debug [DevID_1/inputRegs/39] Calculation result = 34.5, type = number modbus.1 2023-01-14 19:01:57.743 debug [DevID_1/inputRegs/39] Formula = x / 10 modbus.1 2023-01-14 19:01:57.743 debug [DevID_1/inputRegs/39] Input Value = 345 modbus.1 2023-01-14 19:01:57.742 debug [DevID_1/inputRegs] Poll address 39 DONE modbus.1 2023-01-14 19:01:57.711 debug [DevID_1/inputRegs] Poll address 39 - 1 registers modbus.1 2023-01-14 19:01:57.711 debug [DevID_1/inputRegs/4] Calculation result = 29.3, type = number modbus.1 2023-01-14 19:01:57.711 debug [DevID_1/inputRegs/4] Formula = x / 10 modbus.1 2023-01-14 19:01:57.710 debug [DevID_1/inputRegs/4] Input Value = 293 modbus.1 2023-01-14 19:01:57.710 debug [DevID_1/inputRegs] Poll address 4 DONE modbus.1 2023-01-14 19:01:57.673 debug [DevID_1/inputRegs] Poll address 4 - 1 registers modbus.1 2023-01-14 19:01:57.673 debug Initialization of scale factors done! modbus.1 2023-01-14 19:01:57.673 debug [DevID_1] Poll start --------------------- modbus.1 2023-01-14 19:01:57.672 info Connected to slave 192.168.0.56 modbus.1 2023-01-14 19:01:57.541 debug Initialize Objects for holdingRegs: [] modbus.1 2023-01-14 19:01:57.540 debug Add inputRegisters.88_Rücklauf_oben: {"_id":"inputRegisters.88_Rücklauf_oben","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":false,"def":0,"unit":"°C"},"native":{"regType":"inputRegs","address":88,"deviceId":1,"type":"int16be","len":1,"offset":0,"factor":1}} modbus.1 2023-01-14 19:01:57.540 debug Add inputRegisters.77_Rücklauf_unten: {"_id":"inputRegisters.77_Rücklauf_unten","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":false,"def":0,"unit":"°C"},"native":{"regType":"inputRegs","address":77,"deviceId":1,"type":"int16be","len":1,"offset":0,"factor":1}} modbus.1 2023-01-14 19:01:57.540 debug Add inputRegisters.39_Vorlauf__oben: {"_id":"inputRegisters.39_Vorlauf__oben","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":false,"def":0,"unit":"°C"},"native":{"regType":"inputRegs","address":39,"deviceId":1,"type":"int16be","len":1,"offset":0,"factor":1}} modbus.1 2023-01-14 19:01:57.540 debug Add inputRegisters.4_Vorlauf_unten: {"_id":"inputRegisters.4_Vorlauf_unten","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":false,"def":0,"unit":"°C"},"native":{"regType":"inputRegs","address":4,"deviceId":1,"type":"int16be","len":1,"offset":0,"factor":1}} modbus.1 2023-01-14 19:01:57.540 debug Initialize Objects for inputRegs: [{"_address":4,"name":"Vorlauf unten","description":"","unit":"°C","type":"int16be","len":1,"factor":1,"offset":0,"formula":"x / 10","role":"value","room":"","cw":false,"isScale":false,"deviceId":1,"address":4,"id":"inputRegisters.4_Vorlauf_unten"},{"_address":39,"name":"Vorlauf oben","description":"","unit":"°C","type":"int16be","len":1,"factor":1,"offset":0,"formula":"x / 10","role":"value","room":"","cw":false,"isScale":false,"deviceId":1,"address":39,"id":"inputRegisters.39_Vorlauf__oben"},{"_address":77,"name":"Rücklauf unten","description":"","unit":"°C","type":"int16be","len":1,"factor":1,"offset":0,"formula":"","role":"value","room":"","cw":false,"isScale":false,"deviceId":1,"address":77,"id":"inputRegisters.77_Rücklauf_unten"},{"_address":88,"name":"Rücklauf oben","description":"","unit":"°C","type":"int16be","len":1,"factor":1,"offset":0,"formula":"","role":"value","room":"","cw":false,"isScale":false,"deviceId":1,"address":88,"id":"inputRegisters.88_Rücklauf_oben"}] modbus.1 2023-01-14 19:01:57.539 debug Initialize Objects for coils: [] modbus.1 2023-01-14 19:01:57.539 debug Initialize Objects for disInputs: [] modbus.1 2023-01-14 19:01:57.479 info starting. Version 5.0.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v14.17.0, js-controller: 4.0.24 modbus.1 2023-01-14 19:01:57.375 debug Plugin sentry Initialize Plugin (enabled=true) modbus.1 2023-01-14 19:01:57.324 debug States connected to redis: 127.0.0.1:9000 modbus.1 2023-01-14 19:01:57.267 debug States create User PubSub Client modbus.1 2023-01-14 19:01:57.266 debug States create System PubSub Client modbus.1 2023-01-14 19:01:57.259 debug Redis States: Use Redis connection: 127.0.0.1:9000 modbus.1 2023-01-14 19:01:57.246 debug Objects connected to redis: 127.0.0.1:9001 modbus.1 2023-01-14 19:01:57.244 debug Objects client initialize lua scripts modbus.1 2023-01-14 19:01:57.223 debug Objects create User PubSub Client modbus.1 2023-01-14 19:01:57.223 debug Objects create System PubSub Client modbus.1 2023-01-14 19:01:57.222 debug Objects client ready ... initialize now modbus.1 2023-01-14 19:01:57.204 debug Redis Objects: Use Redis connection: 127.0.0.1:9001
-
Ich muss mich hier auch mal einhängen. Versuche verzweifelt, mein Victron-System per Modbus auszulesen. Fehlermeldung ist ähnlich wie hier oben:
modbus.2 2023-01-15 09:28:45.667 debug [DevID_100/inputRegs] Poll address 840 - 21 registers modbus.2 2023-01-15 09:28:45.666 debug [DevID_100/inputRegs] Poll address 820 DONE modbus.2 2023-01-15 09:28:45.663 debug [DevID_100/inputRegs] Poll address 820 - 3 registers modbus.2 2023-01-15 09:28:45.662 debug [DevID_100] Poll start ---------------------
Das abzufragende Gerät liefert mir eine Erklärung:
Demnach hat der Modbus-Adapter versucht, ab Adresse 840 direkt 21 Bytes/Adressen (?) abzufragen. Dies scheiterte dann daran, dass es Adresse 847 nicht gibt, was auch stimmt. Er sollte diese Adresse auch gar nicht abfragen:
Ich habe jedoch in den Einstellungen des Adapters keine Option gefunden, in der man das Auslesen ganzer Blöcke deaktivieren könnte.
Oder bin ich da komplett auf dem Holzweg?
-
@oxident Ich frage auch 840 holding register des Gerätes 100 ab und bekomme keine Fehlermeldung.Ich habe 840 bis 846 eingetragen
Ich habe allerdings nur einen kleinen single phase 800VA MP 1.
Venus V2.80 29
Modbus Adapter 5.0.11, gestern update, war aber auch vorher gut.
Wie sehen Deine allgemeinen Einstellungen aus? -
@klassisch Ich dachte mir schon dass es bestimmt Nutzer gibt, die damit Ihr Victron-System bedienen.
Ich glaube, ich habe das Problem gefunden. In den Instanz-Einstellung war hinterlegt, dass er 10 Werte in einem Durchgang liest. Daran lag's wohl:
-
Super das war es jetzt geht es auch bei mir.
-
Freut mich, daß es jetzt auch bei Euch geht. Hab aber nicht verstanden, woran es lag.
Bei mir sieht es so aus:
-
Also ich habe bei mir jetzt unter Max Leseanforderungslänge eine 1 bei Float und Integer eingetragen und seitdem werden alle Register in einer Instanz sauber ausgelesen.
Wahrscheinlich hat sich vorher wenn die Register nah beieinander waren etwas überlappt beim auslesen.
-
@bytec Also da, wo bei mir 100 (Float) und 128 (Integer) steht, steht bei Euch jetzt zwingend 1?
Aber bei mir scheint es zu gehen. Keine Fehlermeldung etc.
Man muß nicht alles verstehen, Hauptsache es läuft bei Euch jetzt. -
ja genau da habe ich bei beiden eine 1 eingetragen so wie Oxident das vorgschlagen hat.
-
@klassisch @bytec Ja, das war in der Tat das Problem. Ich fänd es ja auch sinniger, wenn der Adapter "in einem Rutsch" mehr lesen könnte, aber das scheint bei uns nicht zu klappen...
-
@oxident Habt Ihr Venus oder Cerbo GX? Bei mir läuft Venus auf einem alten Raspi. Reicht ja bei meinem Minimalsystem.
-
Ich weder noch. Wir haben eine Nibe Anlage aber das hat glaube nicht wirklich mit der Anlage Ansich zu tun sondern wie der Adapter die Register ausliest und wenn er sie jetzt einzeln ausliest scheint das zu funktionieren.
-
@klassisch Cerbo ... weil ich den RS485-Adapter zum Akku beim Raspi nicht zum Laufen gebracht habe. Aber dort gab es die Probleme mit dem Bulkread auch.
Da das Problem von mir und @bytec irgendwie logisch erscheint frage ich mich echt, was bei Dir anders läuft. Mal blöd gefragt: Die Werte werden aber bei Dir auch regelmäßig aktualisiert und in der Venus-Console werden im Modbus-Bereich auch keine Fehler angezeigt?
-
@oxident
Bei mir sind keine Modbus Fehler hinterlegt
Und ja, die Daten werden in ioBroker aktualisiert.
Habe gerade testweise das Laden des Akkus angestoßen und ich sehe, daß sich der Akkustrom ändert. 840 Spannung wird noch dauern (Edit, hat sich gerade geändert). Darf auch nicht zu lange laden. Der Netzbetreiber hat für heute ab 17:00 eine Strommangelwarnung "rot, Verbrauch reduzieren" ausgegeben.