EasyManua.ls Logo

Klimor HMI Compact - Communication of RS485 Master, Modbus RTU with the BMS System

Default Icon
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
67
5. CONTROLLER COMMUNICATION
5.1 Communication of RS485 Master, Modbus RTU with the BMS
system
The controller is equipped with implementation of the
Modbus RTU protocol. In order to establish network con
-
nection, connect RS-485 bus to the MASTER port on the
controller strip. The Modbus address is set using jumpers
located on the controllers bottom plate.
Default communication parameters:
Baud rate: 9600 bps (it is possible to change for the
superstructure level or external HMI
8 frame bits
2 stop bits
no parity
All variables are 32-bit values that are represented in the
Modbus protocol as Input, Coil, Holding Register or Input
Register in dierent address spaces.
Reading and saving the Input and Coil type data:
Each variable is a 32-bit value. For example, a variable with
an address in table 0x0008 provides bits under binary
ad-dresses 8*32 ... 9*32-1 for Modbus Input and Coil.
Read and write data of the Holding Register and Input
Register type:
The variables in this form are available in dierent address
areas for easy integration into BMS systems.
- 0x0000 ... 0x1000 - traditional representation according to
information below
• Multistate – the listed integer values of the variable corre
-
spond to the described states
• Decimal – 32-bit value of the variable is treated as an inte
-
ger type with character,
• Fixed – a xed type in which the 8 least signicant bits are
intended for a fractional part, while the remaining 24 bits
are the total part with a symbol. Therefore, the accuracy
of Fixed value is 1/256. To scale the value repre-sented by
Fixed to the target (proper) value, multiply it by 1/256 =
0.00390625.
- 0x1000 ... 0x2000 - Fixed format variables presented as in
-
teger values without fraction
- 0x2000 ... 0x3000 - Fixed format variables presented as val
-
ues to one decimal place in the decimal format. The value
of 20.67 is shown as 206
- 0x3000 ... 0x4000 - Fixed format variables presented as val
-
ues to two decimal places in the decimal format. The value
of 20.67 is shown as 2067
- 0x4000 ... 0x5000 - similar to the area 0x0000 ... 0x1000,
but the variables are treated as 16-bit values. This means
that older 16 bits are not taken into account. Addresses
should be divided by two. For example, the table variable
with address 0x0124 is available in 16-bit format at Mod
-
bus 0x4092
- 0x5000 ... 0x6000 - similar to the area 0x1000 ... 0x2000,
but the variables are treated as 16-bit values. This means
that older 16 bits are not taken into account. Addresses
should be divided by two. For example, the table variable
with address 0x0124 is available in 16-bit format at Mod
-
bus 0x4092
- 0x6000 ... 0x7000 - similar to the area 0x2000 ... 0x3000,
but the variables are treated as 16-bit values. This means
that older 16 bits are not taken into account. Addresses
should be divided by two. For example, the table variable
with address 0x0124 is available in 16-bit format at Mod
-
bus 0x4092
- 0x7000 ... 0x8000 - similar to the area 0x2000 ... 0x3000,
but the variables are treated as 16-bit values. This means
that older 16 bits are not taken into account. Addresses
should be divided by two. For example, the table variable
with address 0x0124 is available in 16-bit format at Mod
-
bus 0x4092
Variables in the Multistate and Decimal representation
should not be used in address areas 0x1000 ... 0x4000 and
0x5000 ... 0x8000 because the least signicant 8 bits of each
variable are lost.
The addresses in the table are converted for the Modbus
protocol as follows:
Table no. 14 Recalculating addresses
Address space Address calculation
0x0000 … 0x1000 Modbus Adres = Adr.
0x1000 … 0x2000 Modbus Adres = 0x1000 + Adr.
0x2000 … 0x3000 Modbus Adres = 0x2000 + Adr.
0x3000 … 0x4000 Modbus Adres = 0x3000 + Adr.
0x4000 … 0x5000 Modbus Adres = 0x4000 + (Adr. / 2)
0x5000 … 0x6000 Modbus Adres = 0x5000 + (Adr. / 2)
0x6000 … 0x7000 Modbus Adres = 0x6000 + (Adr. / 2)
0x7000 … 0x8000 Modbus Adres = 0x7000 + (Adr. / 2)
NOTE: you cannot write a single 16-bit register in the
0x1000 … 0x4000 address spaces. In this case you have to
write the registers in pairs using a command: Preset Multi
-
ple Registers (0x10), which is connected with full value of
32-bit variable. It means that the record start address and
number of registers must be an even value.

Table of Contents