@tthamm, do you have the communication working via read test? The device documentation is very clear, you only have to convert addresses from hex to decimal for testing.
Try reading Active import with these settings:
- Function: Holding register (#3)
- Address: 20480
- Data type: uint64
- Read swap: Word
The read value is in 0.01KWh. If the value is incorrect then try using different read swap modes.
here is a json profile for a "Keba P30x" charching station, which I tested with a charching station over a TCP/IP connection (IP, device-adress 255, port 502).
You must not activate the UDP connection on DWP 1.3 to use the TCP/IP connection!
After you read out the firmware version, you have to convert the received value from decimal to hex, for e.g. 50990336 -> 30A0D00 which means:
3 0A 0D 00 -> 3.10.14
To translate the "Product type and features" you have to translate the value in separate steps. So take a look at the manual at page 11.
(10.01.2022, 08:07)admin Wrote: @tthamm, do you have the communication working via read test? The device documentation is very clear, you only have to convert addresses from hex to decimal for testing.
Try reading Active import with these settings:
- Function: Holding register (#3)
- Address: 20480
- Data type: uint64
- Read swap: Word
The read value is in 0.01KWh. If the value is incorrect then try using different read swap modes.
@admin, thank you. i always get a "Operation timed out". The Logicmachine have D0, D1 and C. The Abb have A, B, C, i connect D0 = A, D1 = B, C = 0V. Is this correct?
I am currently working on profiles for:
Breathing Buildings NVHR
Condair Dehumidifer
Lindab HRU
RED Air Source Heat Pump
Daikin AC/VAM with RTS-Net modbus interface.
If anyone has profiles for these can you please post. If not i will post when finished.
When using a profile and reading blocs of parameters, "read_count" refers to number of 16bit modbus registers or number of registers defined on "datatype"?
Is this reading input register 4 as 32bit float and register 6 as 32bit float using a single modbus read command? (count is 4 because we're reading registers 4,5,6 and 7)
Or should I define read_count as 2 because I'm reading 2 32bit registers?
Size is always 1 register (16 bits) no matter what the data type is. The system will read the required number of registers based on the data type chosen.
Block read is needed for certain devices that don't allow reading registers directly but only via a large block read. Block read can be useful in large projects since it speeds things up but usually values can be simply read one by one.
(23.03.2022, 14:41)admin Wrote: Size is always 1 register (16 bits) no matter what the data type is. The system will read the required number of registers based on the data type chosen.
Block read is needed for certain devices that don't allow reading registers directly but only via a large block read. Block read can be useful in large projects since it speeds things up but usually values can be simply read one by one.
You can use Windows calculator for bitmasks. Switch to "Programmer" mode then switch keypad to "Bit toggling" mode. Switch required bits from 0 to 1. The HEX or DEC value will be your bitmask. For HEX you need to add 0x before the number in the profile (for example F becomes 0xF and so on).