This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Modbus values wrong
#1
I'm trying to connect my ventilation unit (Dantherm) to the Wiser for KNX from Scheider using Modbus TCP/IP. Most parameters are updating correctly, but for some there is no value coming through, or when entering a new value a completely different value is set at the device-end.

These are the modbus guidelines from the manual:

Quote:3.2 Modbus commands
The Ventilation unit supports the following commands of Modbus protocol:
– Read holding registers (0x03);
– Write multiple Holding registers (0x10).
3.3 Date storing format
3.3.1 32 bit parameters
All parameters of the ventilation unit have a 32 bits dimension. However the Modbus works with regist ers which have 16 bits dimension. Each parameter in the ventilation unit is therefore separated in two parts (Low and High). Modbus model stores it like two registers (R0 and R1 according), which are located together in sequence. A register with Low part o f parameters has the lower address.
3.3.2 Date/Time format
All date/time parameters contain value in Unix time (amount of seconds from 1.1.1970).
3.3.3 Float
A floating point value is 32 bits, but Modbus uses 16 bit registers therefore this 32 bit value is mapped to two register. The sequence used is CDAB.

This is the line in my profile to read the humidity in the room air:
Code:
{ "name": "RH sensor value", "bus_datatype": "5", "type": "register", "datatype": "uint32", "address": 197, "read_count": 2, "read_swap": "w", "writable": 0 }

[Image: IjuyRgi.png]
In Wiser there is a value of 0 shown, although when reading this value directly using Modbus Poll the correct value is shown (45%), but only when formatting using the Little-endian byte swap.

[Image: oRpyv1R.png]

[Image: qnyKAPq.png]

When the Filter Lifetime is set, eg. 360 days, there is 23592960 registered on the device. I can only correct this again using Modbus Poll, using this desktop application everything is working as expected.
Code:
{ "name": "Filter Lifetime", "bus_datatype": "7", "type": "register", "datatype": "uint32", "address": 557, "read_count": 2, "read_swap": "w", "writable": 1, "write_multiple": true }

Some of the other writable parameters show the same glitch.

I can't figure out how to define these parameters in my profile, most other parameters seem to work fine. Also seems strange everything is working fine when using Modbus Poll.

Attached Files
.json   Dantherm_HCV700.json (Size: 4.59 KB / Downloads: 10)
Reply


Messages In This Thread
Modbus values wrong - by arnocl - 19.01.2020, 20:26
RE: Modbus values wrong - by admin - 20.01.2020, 08:12
RE: Modbus values wrong - by arnocl - 20.01.2020, 12:42
RE: Modbus values wrong - by admin - 20.01.2020, 13:08
RE: Modbus values wrong - by arnocl - 20.01.2020, 13:11
RE: Modbus values wrong - by admin - 20.01.2020, 13:28
RE: Modbus values wrong - by arnocl - 20.01.2020, 16:23
RE: Modbus values wrong - by admin - 20.01.2020, 17:05
RE: Modbus values wrong - by arnocl - 22.01.2020, 18:58
RE: Modbus values wrong - by admin - 23.01.2020, 06:28
RE: Modbus values wrong - by TomasIha - 24.05.2022, 17:22
RE: Modbus values wrong - by admin - 25.05.2022, 06:36
RE: Modbus values wrong - by TomasIha - 25.05.2022, 07:57

Forum Jump: