hallo zusammen,
neuerdings bin ich besitzer einer Keba P30 x Wallbox, welche ich statt mit dem UDP Zugriff aus der Vorlage via Modbus einbinden möchte. Hintergrund ist, dass bei mir PV-Anlagen und Haus-Batteriespeicher ebfalls via Modbus eingebunden sind und ich so alle gleich behandeln kann.
Den lesenden Zugriff habe ich bereits realisier bekommen, das auslesen läuft (muss bei der Keba über readmodbus aus Holding-Registern erfolgen, Input-Register akzeptiert die Keba da nicht), nur beim schreiben habe ich noch Probleme:
Auszug aus der Keba Modbus Anleitung:
Supported function codes are FC3 (Read) and FC6 (Write).
Übersetzt heißt das für mich (aus dem Modbus-Standard):
readmodbus(WB_Keba_Handle, MB_HOLDING_REGISTER, ...)
Beim Schreiben bekomme ich aber dauerhaft den Status "1" als Rückgabewert zurück, wenn ich folgendes sende:
writemodbus(WB_Keba_Handle, MB_HOLDING_REGISTER, ...)
Meine Vermutung ist, dass hierbei intern die Modbus-Funktion 16 (Hex 10) verwendet wird (Multiple Holding Registers (FC=16)), welche wiederum die Keba P30 nciht unterstützt. Den gleichen Fall hatte ich anfangs bei readmodbus mit Input-Register, wodurch die Modbus-Dunktion 04 (Input Registers (FC=04)) genutzt wurde.
Gibt es eine Möglichkeit dem EibPC² beizubringen, bei einer Übergabe eines u16-Wertes mit writeModbus die Funktion "06" statt "16" zu nutzen?
neuerdings bin ich besitzer einer Keba P30 x Wallbox, welche ich statt mit dem UDP Zugriff aus der Vorlage via Modbus einbinden möchte. Hintergrund ist, dass bei mir PV-Anlagen und Haus-Batteriespeicher ebfalls via Modbus eingebunden sind und ich so alle gleich behandeln kann.
Den lesenden Zugriff habe ich bereits realisier bekommen, das auslesen läuft (muss bei der Keba über readmodbus aus Holding-Registern erfolgen, Input-Register akzeptiert die Keba da nicht), nur beim schreiben habe ich noch Probleme:
Auszug aus der Keba Modbus Anleitung:
Supported function codes are FC3 (Read) and FC6 (Write).
Übersetzt heißt das für mich (aus dem Modbus-Standard):
- Multiple Holding Registers (FC=03)
- ...
- Single Holding Register (FC=06)
readmodbus(WB_Keba_Handle, MB_HOLDING_REGISTER, ...)
Beim Schreiben bekomme ich aber dauerhaft den Status "1" als Rückgabewert zurück, wenn ich folgendes sende:
writemodbus(WB_Keba_Handle, MB_HOLDING_REGISTER, ...)
Meine Vermutung ist, dass hierbei intern die Modbus-Funktion 16 (Hex 10) verwendet wird (Multiple Holding Registers (FC=16)), welche wiederum die Keba P30 nciht unterstützt. Den gleichen Fall hatte ich anfangs bei readmodbus mit Input-Register, wodurch die Modbus-Dunktion 04 (Input Registers (FC=04)) genutzt wurde.
Gibt es eine Möglichkeit dem EibPC² beizubringen, bei einer Übergabe eines u16-Wertes mit writeModbus die Funktion "06" statt "16" zu nutzen?
Kommentar