Protocol implementation, 5modbus implementation, 1 supported function codes – Lenze E94P PositionServo Modbus User Manual

Page 24

Advertising
background image

24

P94MOD01C

Protocol Implementation

5

Modbus Implementation

5.1 Supported Function Codes

The Modbus function codes supported by the PositionServo drive are:
03 – Read Holding Register
16 – Preset (write) Multiple Registers

5.2 Data Format, Size and Memory Area

Modbus registers are limited by protocol definition to a length of 16-bits per register. The user must use two
consecutive 16-bit registers to read/write one 32-bit register.
All PositionServo drive parameters are 32-bit in size but can be accessed in 3 different formats:
• IEEE Floating Point (FLOAT or REAL)
• 32-bit integer (DWORD or DINT)
• 16-bit integer (WORD or INT) where by the true 32-bit value consumes two consecutive 16-bit registers
Furthermore, PositionServo parameters exist in each of the 3 formats in both RAM (volatile) and EPM (non-
volatile) areas. Therefore the memory addresses are divided into six ranges according to their format and
memory type as shown in Table 8.

Table 8: Memory Address Ranges

Memory Area Offset 0

512

1024

1556

2068

2304

Type

RAM

RAM

EPM

EPM

RAM

EPM

Format

32-bit INT

Float

32-bit INT

Float

16-bit INT

16-bit INT

The Modbus register address of a drive parameter can be calculated as follows:

Modbus

Register

= (2 x PID

Number

) + Memory

Offset

+ Modbus

Offset

Where:

PIDNumber =

PositionServo

Parameter Index Number. Refer to section xxxx for a full list.

MemoryOffset = Memory offset as per table 4 above
ModbusOffset = 0 for zero based addressing

1 for traditional Modbus addressing

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;

Advertising