Hi,
ich habe mir besagtes Modul gekauft und kann die einzelnen Relays mit dem Modbus Adapter ein und ausschalten. Die Relays habe ich als COILS anlegen können. Hier scheint das Modul die Relays sauber anzusprechen.
Die Relays können via ModBus erreicht werden unter:
Relay 0 ON: 01 05 00 00 FF 00 8C 3A
Relay 0 OFF: 01 05 00 00 00 00 CD CA
Relay 1 ON: 01 05 00 01 FF 00 DD FA
Relay 1 OFF: 01 05 00 01 00 00 9C 0A
Das konnte ich simple umsetzen:
Jetzt bringt das leider nur bedingt was, da ich gerne auch den aktuellen Zustand auslesen möchte, bevor ich Relays schalte.
Auslesen kann man die Relays per HEX mit:
Hier tue ich mich schwer in der Umsetzung - wenn ich mit MBTCP die Hexcodes an die Kiste sende, bekomme ich auch die Antworten.
Jedoch habe ich aktuell keine Idee, wie ich diese Abfragen in den ModBus Adapter bekomme. Die Schaltvorgänge sind alle 05-Functions. Aber die Register sind 03-bzw 01-Functions. Wenn ich nun die Holdingregister im Adapter unter den Holding-Registern hinzufügen möchte, müsste ich dort ja einen Dezimalwert unter der Adresse verwenden. Diese müssen immer mit 4xxxxx beginnen.
Wenn ich also den Zustand von Relay 1 abfragen möchte, müsste das nach meiner Auffassung in Hex:
01 01 00 00 00 01 also 400001 sein - oder?
Ich habe Diskretinput und Holdingregister versucht, jedoch bisher ohne Erfolg. Ich bekomme immer solche Meldungen:
modbus.0
2025-01-22 11:57:11.900 warn [DevID_1] Poll error count: 1 code: {"err":"timeout","timeout":5000}
modbus.0
2025-01-22 11:57:11.899 error Client in error state.
modbus.0
2025-01-22 11:57:11.898 error Request timed out.
modbus.0
2025-01-22 11:57:11.898 warn Error: undefined
modbus.0
2025-01-22 11:57:06.908 error Error response: Function code received in the query is not recognized or allowed by slave
modbus.0
2025-01-22 11:57:06.907 error Error response for FCx4: Illegal Function
modbus.0
2025-01-22 11:57:06.896 debug Sending pdu to the socket.
modbus.0
2025-01-22 11:57:06.894 debug [DevID_1/inputRegs] Poll address 1 - 20 registers
Das Log-Level vom Adapter steht auf Silly - ich sehe nur leider auch in diesem Modus nicht die HEX Werte, die übermittelt werden. Das wäre Hilfreich, um hier weiter zuverstehen, wie der Adapter funktioniert.
Kann mir evtl. ier jemand weiterhelfen? Wie kann ich dem Adapter beibringen mir die Relay-Stati auszulesen?
VG
Alex