RESI®
Title:
RESI-KNX-MBMASTER Manual
Date
Page
of
10.09.2018
26
30
.
P
ro
p
ri
e
ta
ry
d
a
ta
,
co
m
p
a
n
y
co
n
fid
e
n
tia
l.
A
ll
r
ig
h
ts
re
se
rv
e
d
.
C
o
n
fié
à
tit
re
d
e
se
c
re
t
d
'e
n
tr
e
p
ri
s
e
.
T
o
u
s
d
ro
its
r
é
se
rv
é
s
.
C
o
m
u
n
ic
a
d
o
c
o
m
o
se
g
re
d
o
e
m
p
re
sa
ri
a
l.
R
e
se
rv
a
d
o
s
to
d
o
s
o
s
d
ir
e
ito
s.
C
o
n
fid
a
d
o
co
m
o
s
e
cr
e
to
i
nd
u
st
ri
a
l.
N
o
s
re
se
rv
a
m
o
s
t
o
d
o
s
l
o
s
d
e
re
c
ho
s.
.
.
W
e
it
e
rg
a
b
e
s
o
w
ie
V
e
r
v
ie
lf
ä
lt
ig
u
n
g
d
ie
s
e
r
U
n
te
rl
a
g
e
,
V
e
r-
w
e
rt
u
n
g
u
n
d
M
it
te
ilu
n
g
ih
re
s
In
h
a
lt
s
n
ic
h
t
g
e
s
ta
tt
e
t,
s
o
w
e
it
n
ic
h
t
a
u
s
d
r
ü
c
k
lic
h
z
u
g
e
s
ta
n
d
e
n
.
Z
u
w
id
e
rh
a
n
d
lu
n
g
e
n
v
e
r-
p
fl
ic
h
te
n
z
u
S
c
h
a
d
e
n
e
rs
a
tz
.
A
ll
e
R
e
c
h
te
v
o
rb
e
h
a
lt
e
n
,
in
s
b
e
-
s
o
n
d
e
re
fü
r
d
e
n
F
a
ll
d
e
r
P
a
te
n
te
rt
e
il
u
n
g
o
d
e
r
G
M
-E
in
tr
a
g
u
n
g
.
.
8 Functional Description
8.1
MODBUS data types, memory and common pitfalls
In general, the MODBUS uses only 16 bit wide registers. As long as you only use data types that fit in a 16-
bit register, the assignment is easy. But as soon as you use data types that occupy two or more MODBUS
registers, e.g. UINT32, you can put these numbers in a variety of ways in the MODBUS register.
We show a simple example. We want to store the 32-bit unsigned integer value as a hexadecimal number
0x12345678 in the MODBUS Holding Register, starting from the start index 4x00010. The assignment can
now be made in two different ways:
But this is only one way to store the higher word in the first MODBUS register. With the same right, we can
define to store the lower word in the first MODBUS register, followed by the higher word.
The result then looks like this:
More complex is depositing a FLOAT32 value into two consecutive holding registers. We use a room
temperature, e.g. 23.45 ° C as a value that we want to put in two registers.
First, we need to convert the value to a valid IEE754 floating-point number. For this we use a perfect website
(
http://www.h-schmidt.net/FloatConverter/IEEE754.html
MODBUS
Register
Storing an UINT32 data type
4x00010
I:9
The upper word of the 32-bit value 0x12345678 is stored in the first 16-bit
MODBUS register. This means that the value 0x1234 is stored here.
4x00011
I:10
The lower word of the 32-bit value 0x12345678 is stored in the second 16-bit
MODBUS register. This means that the value 0x5678 is stored here.
MODBUS
Register
Storing an UINT32 data type
4x00010
I:9
The lower word of the 32-bit value 0x12345678 is stored in the first 16-bit
MODBUS register. This means that the value 0x5678 is stored here.
4x00011
I:10
The upper word of the 32-bit value 0x12345678 is stored in the second 16-bit
MODBUS register. This means that the value 0x1234 is stored here.