
ELKOR TECHNOLOGIES INC.
- Page 25 -
MCM
–
USER MANUAL
4.1.4.
Register Count
Because of the nature of this device, which can provide metering information on up to 60 channels at once, each logical
parameter such as "power" or "current" may contain 60 separate registers, one for each channel, and sometimes several
per channel. Rather than listing such registers individually, registers are described in blocks with a "Register Count" field,
indicating how many separate values there are in a block.
For example, the register block at offset 0x5000 contains information for the current on each channel. It has
a register count of 60 and a register length of 4 bytes. This means that there are 60 separate four-byte
values, each representing the current for one channel.
Because each Modbus operates on 2-byte words, each value is at an offset 2 higher than the previous one.
The following table illustrates the addresses of the values for several specific channels in the block beginning
at offset 0x5000, each with a length of 4 bytes (2 Modbus words).
Channel
Offset
Channel 1 (Card 1, Port A)
0x5000
Channel 2 (Card 1, Port B)
0x5002
Channel 3 (Card 1, Port C)
0x5004
Channel 4 (Card 2, Port A)
0x5006
Channel 5 (Card 2, Port B)
0x5008
Channel 6 (Card 2, Port C)
0x500A
…
Channel 58 (Card 20, Port A)
0x5072
Channel 59 (Card 20, Port B)
0x5074
Channel 60 (Card 20, Port C)
0x5076
To compute the offset for a particular channel, you can use the following equation:
Offset
c
hannel
=
Offset
1
+ [(
channel
–
1) ×
length
2]
For example, as in the above table, the offset of the 58
th
channel for a block beginning at offset 0x5000, with
a register length of 4 bytes, is calculated as follows:
Offset
58
= 5000
hex
+ [(58
–
1) × 4
2]
Offset
58
= 20480 + 114
Offset
58
= 20594
Offset
58
= 5072
hex
4.1.5.
Data Types
Registers contain data in one of four different types. Data types are given in the register tables with a single letter code in
the
“
Type
”
column to indicate the type. The types are as follows.
Type
Code
Description
Unsigned
Integer
U
Positive whole numbers (no sign). Can range from 0 to 65,535 for 16-bit registers, and 0 to 4,294,967,295 for 32-bit
registers.
Signed
Integer
S
Positive or negative whole numbers. Represented in 2
’
s complement format. Can range from -32,768 to +32,767 for 16-bit
registers and -2,147,483,648 to +2,147,483,647 for 32-bit registers.
Floating-Point F
Positive or negative decimal numbers. Represented in IEEE 754 format. Can represent values from negative infinity to
positive infinity, at decreasing levels of resolution as the number because larger.
Boolean
B
True or false. False is represented by the value 0, true is represented by the value 1.
String
Str
A sequence of ASCII characters. Each 16-bit register contains two characters; the upper 8 bits contain the first character, and
the lower 8-bits contain the second. Only characters in the range 0x20-0x7E are used. Unused characters read as 0.
Bitmap
BM
Each binary digit (bit) or group of digits represents something described in the register's description.