NEWS
(Modbus) richtigen Registereinträge?
-
Start Adresse in der Adapter obersten Leiste rechts, erhalte ich nicht, warum?
modbus.2 2021-03-01 14:25:45.021 debug (9498) Closing client on purpose. modbus.2 2021-03-01 14:25:44.020 debug (9498) Cleaning up request fifo. modbus.2 2021-03-01 14:25:44.019 debug (9498) Socket closed with error modbus.2 2021-03-01 14:25:44.014 info (9498) Disconnected from slave 192.168.0.97 modbus.2 2021-03-01 14:25:44.014 debug (9498) Closing client on purpose. modbus.2 2021-03-01 14:25:43.960 warn (9498) Poll error count: 7 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"} modbus.2 2021-03-01 14:25:43.958 debug (9498) Received pdu describes an error. modbus.2 2021-03-01 14:25:43.948 debug (9498) Poll holdingRegs DevID(255) address 41000 - 2 bytes modbus.2 2021-03-01 14:25:43.947 debug (9498) Poll device 255 modbus.2 2021-03-01 14:25:43.945 info (9498) Connected to slave 192.168.0.97
-
ok, das dürfte das Aliases benutzen sein, nun habe ich es
wenn ich einen Wert hole: 41001 (1000) funktioniert es.
wenn ich den nächsten Wert eintrage 41005 (1004) nicht mehr ??woran liegt das ?
modbus.2 2021-03-01 14:39:50.960 debug (9712) Closing client on purpose. modbus.2 2021-03-01 14:39:49.959 debug (9712) Cleaning up request fifo. modbus.2 2021-03-01 14:39:49.958 debug (9712) Clearing timeout of the current request. modbus.2 2021-03-01 14:39:49.957 debug (9712) Socket closed with error modbus.2 2021-03-01 14:39:49.948 info (9712) Disconnected from slave 192.168.0.97 modbus.2 2021-03-01 14:39:49.947 debug (9712) Closing client on purpose. modbus.2 2021-03-01 14:39:49.894 warn (9712) Poll error count: 8 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:39:49.884 debug (9712) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:39:49.883 debug (9712) Poll device 255
-
@humidor Im ersten Post passen die Bilder scheinbar nicht zusammen. Register lauten 41015 und 41017 aber dein Objekte 41014/41015
Schade das du das log mal wieder als Screenshot gepostet hast
und dann auch nicht im Debug Mode.
@humidor sagte in (Modbus) richtigen Registereinträge?:
Start Adresse in der Adapter obersten Leiste rechts, erhalte ich nicht, warum?
Hier weiß ich nicht was du meinst.
@humidor sagte in (Modbus) richtigen Registereinträge?:
ok, das dürfte das Aliases benutzen sein, nun habe ich es
wenn ich einen Wert holen 41001 (1000) funktioniert es.
wenn ich den nächsten Wert eintrage 41005 (1004) nicht mehr ??
woran liegt das ?Auch hier nur schwer zu verstehen. Ist der Haken bei Aliases jetzt gesetzt oder nicht?
Wahrscheinlich stimmern deine Einstellungen für das Protokoll dann dann doch nicht.
-
@wendy2702 das ist der aktuelle Stand;:
modbus.2 2021-03-01 14:48:25.563 debug (9751) sendTo "listUart" to system.adapter.admin.0 from system.adapter.modbus.2 modbus.2 2021-03-01 14:48:25.563 info (9751) List of port: [{"path":"/dev/ttyAMA0"}] modbus.2 2021-03-01 14:48:25.562 info (9751) Check /dev/ttyAMA0 : true modbus.2 2021-03-01 14:48:25.560 info (9751) Verify [{"path":"/dev/ttyAMA0"}] modbus.2 2021-03-01 14:48:00.436 debug (9751) Closing client on purpose. modbus.2 2021-03-01 14:47:59.435 debug (9751) Cleaning up request fifo. modbus.2 2021-03-01 14:47:59.435 debug (9751) Clearing timeout of the current request. modbus.2 2021-03-01 14:47:59.434 debug (9751) Socket closed with error modbus.2 2021-03-01 14:47:59.431 info (9751) Disconnected from slave 192.168.0.97 modbus.2 2021-03-01 14:47:59.430 debug (9751) Closing client on purpose. modbus.2 2021-03-01 14:47:59.379 warn (9751) Poll error count: 9 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:47:59.372 debug (9751) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:47:59.371 debug (9751) Poll device 255
hier der "Aliases benutzen", damit kommt die Eingabe für die Start-Adresse.
rechts oben .... die Start-Adresse
40000 = 1. Wert 41001 (1001) funktioniert
wenn ich 40001 als Start Adresse verwende, damit die Register Nr. richtig (ohne Offset) eingeben kann, kommt kein korrekter Wert(value) in den Objekten raus.
das sind die Register die ich lesen möchte:
-
@humidor Ich denke es muss auch ohne den Aliases haken bei direkter Eingabe der Register Adresse laufen.
Oder du muss mal versuchen zusätzlich den haken bei: Direkte Adressen benutzen (bei Aliases) zu setzen.
Allerdings kann ich mich bisher an keine Modbus implementierung hier erinnern bei der Aliases benutzt wurden und funktioniert haben. Aber alles habe ich ja auch nicht mit bekommen.
Was steht in der Doku für diese beiden Register?
Ich weiß nicht was die da Implementiert haben aber diese Aussage aus der Doku lässt mich zweifeln das es mit Modbus vernünftig funktioniert:
It is not possible to read several registers at once.
-
@wendy2702
mit beiden Haken bei Aliasesmodbus.2 2021-03-01 14:57:07.938 debug (9824) Cleaning up request fifo. modbus.2 2021-03-01 14:57:07.937 debug (9824) Clearing timeout of the current request. modbus.2 2021-03-01 14:57:07.936 debug (9824) Socket closed with error modbus.2 2021-03-01 14:57:07.929 info (9824) Disconnected from slave 192.168.0.97 modbus.2 2021-03-01 14:57:07.927 debug (9824) Closing client on purpose. modbus.2 2021-03-01 14:57:07.874 warn (9824) Poll error count: 6 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:57:07.863 debug (9824) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:57:07.862 debug (9824) Poll device 255 modbus.2 2021-03-01 14:57:06.810 warn (9824) Poll error count: 5 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:57:06.800 debug (9824) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:57:06.799 debug (9824) Poll device 255 modbus.2 2021-03-01 14:57:05.747 warn (9824) Poll error count: 4 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:57:05.736 debug (9824) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:57:05.733 debug (9824) Poll device 255 modbus.2 2021-03-01 14:57:04.682 warn (9824) Poll error count: 3 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:57:04.673 debug (9824) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:57:04.672 debug (9824) Poll device 255 modbus.2 2021-03-01 14:57:03.621 warn (9824) Poll error count: 2 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:57:03.609 debug (9824) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:57:03.608 debug (9824) Poll device 255 modbus.2 2021-03-01 14:57:02.554 warn (9824) Poll error count: 1 code: {"code":"ERR_OUT_OF_RANGE"} modbus.2 2021-03-01 14:57:02.529 debug (9824) Poll holdingRegs DevID(255) address 1000 - 6 bytes modbus.2 2021-03-01 14:57:02.528 debug (9824) Initialization of scale factors done! modbus.2 2021-03-01 14:57:02.525 debug (9824) Poll device 255 modbus.2 2021-03-01 14:57:02.524 info (9824) Connected to slave 192.168.0.97
-
@humidor Diese Bedingung ist erfüllt:
The Modbus TCP interface must not be used together with the UDP in-terface and vice versa
Wenn du nur die 1000 einträgst, wie sieht das Log dann aus und stimmt der Wert im Objekt?
-
@wendy2702 war der richtige Ansatz, die Lesenanforderungslänge muss auf 2
nun läuft es.modbus.2 2021-03-01 15:07:06.768 debug (9959) Poll holdingRegs DevID(255) address 1004 - 2 bytes modbus.2 2021-03-01 15:07:06.758 debug (9959) Poll holdingRegs DevID(255) address 1000 - 2 bytes modbus.2 2021-03-01 15:07:06.757 debug (9959) Poll device 255 modbus.2 2021-03-01 15:07:05.697 debug (9959) Poll holdingRegs DevID(255) address 1004 - 2 bytes modbus.2 2021-03-01 15:07:05.688 debug (9959) Poll holdingRegs DevID(255) address 1000 - 2 bytes modbus.2 2021-03-01 15:07:05.687 debug (9959) Poll device 255 modbus.2 2021-03-01 15:07:04.769 debug (9959) sendTo "listUart" to system.adapter.admin.0 from system.adapter.modbus.2 modbus.2 2021-03-01 15:07:04.768 info (9959) List of port: [{"path":"/dev/ttyAMA0"}] modbus.2 2021-03-01 15:07:04.768 info (9959) Check /dev/ttyAMA0 : true modbus.2 2021-03-01 15:07:04.766 info (9959) Verify [{"path":"/dev/ttyAMA0"}] modbus.2 2021-03-01 15:07:04.631 debug (9959) Poll holdingRegs DevID(255) address 1004 - 2 bytes modbus.2 2021-03-01 15:07:04.623 debug (9959) Poll holdingRegs DevID(255) address 1000 - 2 bytes modbus.2 2021-03-01 15:07:04.622 debug (9959) Poll device 255 modbus.2 2021-03-01 15:07:04.022 debug (9959) system.adapter.admin.0: logging true
-
@humidor Sehr schön, also stimmte das letzte Bild der Einstellungen Register nicht mit dem Log überein.
Einstellungen steht länge 2 aber im log länge 6.
Egal, wenn es jetzt geht bitte auf Gelöst setzen.
-
@wendy2702 nächstes Problem
modbus.2 2021-03-01 15:12:48.229 debug (10012) Closing client on purpose. modbus.2 2021-03-01 15:12:47.228 debug (10012) Cleaning up request fifo. modbus.2 2021-03-01 15:12:47.227 debug (10012) Socket closed with error modbus.2 2021-03-01 15:12:47.221 info (10012) Disconnected from slave 192.168.0.97 modbus.2 2021-03-01 15:12:47.220 debug (10012) Closing client on purpose. modbus.2 2021-03-01 15:12:47.167 warn (10012) Poll error count: 7 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"} modbus.2 2021-03-01 15:12:47.166 debug (10012) Received pdu describes an error. modbus.2 2021-03-01 15:12:47.159 debug (10012) Poll holdingRegs DevID(255) address 1018 - 2 bytes modbus.2 2021-03-01 15:12:47.152 debug (10012) Poll holdingRegs DevID(255) address 1016 - 2 bytes modbus.2 2021-03-01 15:12:47.144 debug (10012) Poll holdingRegs DevID(255) address 1014 - 2 bytes modbus.2 2021-03-01 15:12:47.137 debug (10012) Poll holdingRegs DevID(255) address 1012 - 2 bytes modbus.2 2021-03-01 15:12:47.131 debug (10012) Poll holdingRegs DevID(255) address 1010 - 2 bytes modbus.2 2021-03-01 15:12:47.123 debug (10012) Poll holdingRegs DevID(255) address 1008 - 2 bytes modbus.2 2021-03-01 15:12:47.116 debug (10012) Poll holdingRegs DevID(255) address 1006 - 2 bytes modbus.2 2021-03-01 15:12:47.109 debug (10012) Poll holdingRegs DevID(255) address 1004 - 2 bytes modbus.2 2021-03-01 15:12:47.101 debug (10012) Poll holdingRegs DevID(255) address 1000 - 2 bytes modbus.2 2021-03-01 15:12:47.100 debug (10012) Poll device 255 modbus.2 2021-03-01 15:12:47.099 info (10012) Connected to slave 192.168.0.97
ab 1018 "Firmeware" läuft es in einen Fehler, das Register ist gleich wie alle anderen
nehme ich diese eine Registerabfrage raus, läuft es.
Ja klar, lesen muss man können, hat 1013.
-
@humidor Das gelesen:
Note: In P30 Modbus TCP version 1.11, this register's number is 1013.
-
@humidor sagte in (Modbus) richtigen Registereinträge?:
Ja klar, lesen muss man können, hat 1013.
Also klappt es damit ?
-
@wendy2702 Ja klappt.
nun eine Frage zu den "Writeable Data" Registern, sind diese gleich wie die "zu lesenden" anzulegen und fertig ?
aktuell:
nein, das gefällt ihm nicht:
modbus.2 2021-03-01 15:41:10.753 debug (10207) Closing client on purpose. modbus.2 2021-03-01 15:41:09.752 debug (10207) Cleaning up request fifo. modbus.2 2021-03-01 15:41:09.751 debug (10207) Socket closed with error modbus.2 2021-03-01 15:41:09.742 info (10207) Disconnected from slave 192.168.0.97 modbus.2 2021-03-01 15:41:09.741 debug (10207) Closing client on purpose. modbus.2 2021-03-01 15:41:09.690 warn (10207) Poll error count: 6 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"} modbus.2 2021-03-01 15:41:09.690 debug (10207) Received pdu describes an error. modbus.2 2021-03-01 15:41:09.683 debug (10207) Poll holdingRegs DevID(255) address 5004 - 2 bytes
muss ein writeable Register unter "Diskrete Ausgänge" angehängt werden?
auch das bekomme ich nicht zum laufen. -
@humidor Wenn die lesenden Holding Register sind, werden die anderen mit großer Wahscheinlichkeit "Eingangsregister" sein
-
gefällt ihm noch nicht:
modbus.2 2021-03-01 16:00:55.959 warn (10540) Poll error count: 1 code: {"errorCode":131,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.2 2021-03-01 16:00:55.957 debug (10540) Received pdu describes an error. modbus.2 2021-03-01 16:00:55.946 debug (10540) Poll inputRegs DevID(255) address 5004 - 1 bytes modbus.2 2021-03-01 16:00:55.946 debug (10540) Initialization of scale factors done! modbus.2 2021-03-01 16:00:55.944 debug (10540) Poll device 255 modbus.2 2021-03-01 16:00:55.943 info (10540) Connected to slave 192.168.0.97
-
das Register ist bei Keba kein read-write, dh polling ist da nicht
aber wie bekomme ich den Eintrag nun unter Objekte, damit ich ihn beschreiben kann?
unter Eingangsregister bekommt man einen Error:
modbus.2 2021-03-01 17:00:08.820 warn (11175) Poll error count: 2 code: {"errorCode":131,"exceptionCode":1,"message":"ILLEGAL FUNCTION"} modbus.2 2021-03-01 17:00:08.819 debug (11175) Received pdu describes an error. modbus.2 2021-03-01 17:00:08.813 debug (11175) Poll inputRegs DevID(255) address 5004 - 1 bytes modbus.2 2021-03-01 17:00:08.812 debug (11175) Poll device 255
-
@humidor Ich nehme an, es gibt einen guten Grund, weshalb du Modbus verwendest und nicht den vorhandenen Adapter? https://github.com/iobroker-community-adapters/ioBroker.kecontact
-
@humidor Habe keine Modbus Geräte die ich beschreiben kann oder will.
Meine mich erinnern zu können das der Adapter das regelt wenn man einfach in dem Objekt den Wert ändert.
Trage doch mal zum testen nur einen WO (Write Only) ein, ändere das Object und schaue was passiert.
-
@unclesam ja, es gibt einen Grund warum ich das mache
Steht aber hier nicht zur Diskussion
die Frage ist, wie man per Modbus korrekt einen Wert beschreibt
dass es der Adapter (UDP) macht ist mir bekannt, ich nutze ihn ja auch. -
Anscheinend ist das Thema schon bekannt als Issue. Muss ich wohl abwarten bis es hier einen fix gibt.