1
P94MOD01B
4.2 Register Numbering
Modbus 4X register numbers are always
one greater
than the actual drive register numbers. For example:
drive register #24 would correspond to Modbus 4X register #25.
4.3 Supported Modbus Function Codes
The function codes supported by the drive are:
1. 03 (0x03) Read Multiple 4X Holding Registers
2. 16 (0x10) Write Multiple 4X Holding Registers
5
Drive Memory Access
The PositionServo drive uses one type of register, (4X Holding Registers) when communicating via Modbus.
Either the RAM copy or the EPM (non-volatile copy) and RAM copy of each register can be accessed at one
time. Each register can be accessed as a 32 bit integer (called DWORD throughout this document) or as a Float
value.
5.1 Mapping from Drive Variable to the Register Address
The memory address ranges are divided into six ranges according to the variable type as shown in Table 3.
Table 3: Memory Address Ranges
Variable Type
Memory Range
RAM Integer
0 - 511
RAM Float
512 - 1023
EPM Integer
1024 - 1535
EPM Float
1556 - 2047
RAM 16-bit Integer
2068 - 2303
EPM 16-bit Integer
2304 - 2560
Table 4: Hex to Decimal Number Reference
Hex
0x00
0x1FF
0x200
0x3FF
0x400
0x5FF
0x600
0x7FF
0x800
0x8FF
0x900
0xA00
Decimal
0
511
512
1023
1024
1535
1536
2047
2048
2303
2304
2560
The register address of a drive variable can be calculated by one of the following methods:
NOTE:
All values in decimal notation
To access the <variable index> as a RAM-integer, use the following formula to calculate this register address
(maximum address allowed is 511):
<register address> = 0 + 2 * <variable index> + 1;
To access the <variable index> as a RAM-float, use the following formula to calculate this register address
(maximum address allowed is 1023):
<register address> = 512 + 2 * <variable index> + 1;
To access the<variable index> as a EPM-integer, use the following formula to calculate this register address
(maximum address allowed is 1535):
<register address> = 1024 + 2 * <variable index> + 1;