Skip to main content

Elevator Core Reference Guide

Modbus RTU Individual Register Details

Modbus RTU - Control Word

Modbus Register 1 is the Control Word and can be used to Run the drive in either Forward or Reverse, Stop the drive and Reset drive Fault Codes.

When using the Control Word to run the drive it needs to be used in combination with Register 2 Speed Reference. The speed reference register provides the drives running speed and details can be found in the topic: Modbus RTU - Speed Reference.

The Control Word consists of 16 bits (2 Bytes), though only bits 0 - 2 are used.

The table below shows the function of each bit in the Control Word.

Bit Number

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Byte

High Byte

Low Byte

Bit Function when 1

Reserved

Fault Reset Request

Run Reverse

Run Forward

Important

Drive must be set to RTU command source in P1-01 to run the drive via Modbus RTU.

To start the drive over Modbus you will need to use the Control Word Register which is Register 1.

Register 1 - Bit Number

Running Direction

Drive Action

Action when Bit = 0

Action when Bit = 1

0

Forward

Drive Stopped / Stop the drive

Run the Drive Forward with Register 2 Speed Reference

1

Reverse

Drive Stopped / Stop the drive

Run the Drive Reverse with Register 2 Speed Reference

2

N/A

No Action

Reset Fault - If the drive is under a fault condition (fault code displayed)

An example Modbus telegram to run the drive forward by writing to Register 1 is as follows:

01 06 00 01 00 01 48 0A

Breaking down this message it translate as follows:

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Needs to match P2-01 value

06

Function Code

0x06 (6)

Write Single Register command

00 00

Register Address

Physical: 0x0000 (0)

Logical: 0x0001 (1)

Writing to Register 1 (Control Word)

00 01

Register Value

0x 0001 (1)

Writing a value of 1 as the run forward command is bit 0 = 1.

In binary the control word would look like: 0000 0000 0000 0001

48 0A

CRC

0x480A (18442)

Message error checking code.

While the telegram above runs the drive forward there is currently no speed reference so the drive will just sit at 0 speed and not accelerate. To change the drives speed reference you need to write to Register 2.

An example Modbus telegram to give a speed reference of 50Hz is below by writing to Register 2.

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Needs to match P2-01 value

06

Function Code

0x06 (6)

Write Single Register command

00 01

Register Address

Physical: 0x0001 (1)

Logical: 0x0002 (2)

Writing to Register 1 (Speed Reference)

01 F4

Register Value

0x01F4 (500)

Writing a value of 500 to run the drive at 50Hz.

D8 1D

CRC

0xD81D (55325)

Message error checking code.

Now sending these two commands will run the drive forward at 50Hz speed reference.

In this example we will run the drive in Reverse over Modbus at a speed reference.

First we need to construct the telegram to give the drive a run command using Register 1 (Control Word) to send the command.

An example telegram is shown in the table below:

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Needs to match P2-01 value

06

Function Code

0x06 (6)

Write Single Register command

00 00

Register Address

Physical: 0x0000 (0)

Logical: 0x0001 (1)

Writing to Register 1 (Control Word)

00 02

Register Value

0x 0002 (2)

Writing a value of 2 to run the drive in reverse.

In binary the control word would look like: 0000 0000 0000 0010

08 0B

CRC

0x080B (2059)

Message error checking code.

Now we need to send a speed reference to the drive so it does not sit at 0Hz.

To do this use Register 2 which is Speed Reference.

An example Modbus telegram to give a speed reference of 25Hz is below by writing to Register 2.

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Needs to match P2-01 value

06

Function Code

0x06 (6)

Write Single Register command

00 01

Register Address

Physical: 0x0001 (1)

Logical: 0x0002 (2)

Writing to Register 2 (Speed Reference)

00 FA

Register Value

0x00FA (250)

Writing a value of 250 to run the drive at 25Hz.

58 49

CRC

0x5849 (22601)

Message error checking code.

Now by sending these two telegrams we are running the drive in reverse at 25Hz.

Below are a few common problems encountered and simple solutions:

Problem

Solutions

Note

Getting Modbus Timeout Error

  • Check the selected COM port is correct.

  • Check that the Buad Rate and Address of the Modbus master match the drives parameter settings

P2-01 - Modbus Address

P2-02 - Modbus Baud Rate

  • Check that the value being set to the Registers is withing the parameter limits

Drive will not except a value outside of the parameter range

Drive is enabled but at 0 speed

  • Check that a Speed Reference has been sent via Register 2

Speed Reference via Modbus can be viewed in parameter P2-51

Drive will not stop

  • Check that in the Control Word either Bit 0 or Bit 1 is changed from 1 to 0.

When running either bit 0 or bit 1 will be 1 for the run command depending on the direction.

To stop the drive the Control Word should be 0 or for binary 0000 0000 0000 0000.

Drive will not start

  • Check that BOTH bit 0 & bit 1 DO NOT have a value of 1

If both bits are high the drive will not start or will stop if running. Only one direction command should be given.

The Control Word in Binary should NOT look like this: 0000 0000 0000 0011 as this has both the run forward & run rerverse bits high.

  • Check that you are writing to the correct Modbus Register

Some software use 0 based addressing so in this case the Control Word would be Register 0 in that software rather than Register 1.

  • Check that P1-01 is set to 1: rtu

The drive can only be controlled over Modbus if the Command Source in P1-01 is set to 1.

  • Check that the drive does not have a fault code present

The drive must not have a fault code present. The fault code can be viewed either via the drive display, parameter P0-37, Modbus Register 6 (Upper Byte) or OptiTools Pro.

  • Check that the Safety Chain is Closed

Terminals STO1 & STO2 should both have 24V present so they are in a closed state. The state of the STO ports can be viewed by either Parameter P0-03 or Modbus Register 10003

Note

The drive does not need any Digital Input to be present to run.

Modbus RTU - Speed Reference

The drives speed can be adjusted in real time over Modbus with Register 2 (Speed Reference).

This can be used in combination with the drive Control Word in Register 1 to run the drive (the topic detailing the control word is found here: Modbus RTU - Control Word).

While controlling the drive over Modbus the Speed Reference Register acts as the only source of the drives speed reference.

When controlling the drive over Modbus the drive still follows the parameters settings for the S-Ramps(Group 8 & Group 9). For example if you set the acceleration ramp time to 5 seconds in P8-02 the drive will still take 5 seconds to reach the speed reference.

How to use different Speed Units for the Speed Reference

Modbus Control supports all of the 4 different speed units. Modbus Registers containing a speed will use the currently active unit in the drive.

The table below lists the available speed reference units and how to set them

Speed Reference Unit

How to Set

Modbus Scaling

Hz

Default unit of the drive.

P4-06 MUST = 0

P3-08 MUST = 0

1 = 0.1Hz

rpm

P4-06 > 0 - Should match the motor nameplate value

1 = 1 rpm

ft/s

P4-06 > 0 - Should match the motor nameplate value

P3-08 < 100

1 = 0.01 ft/s

m/s

P4-06 > 0 - Should match the motor nameplate value

P3-08 ≥ 100

1 = 0.01 m/s

To control the drive Speed Reference over Modbus you will need to use Register 2.

Sending Speed Reference Command via Modbus

An example telegram to sent to the drive to change the speed reference is: 01 06 00 01 05 DC DA C3

Lets decode this telegram

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Needs to match P2-01 value

06

Function Code

0x06 (6)

Write Single Register command

00 01

Register Address

Physical: 0x0001 (1)

Logical: 0x0002 (2)

Writing to Register 2 (Speed Reference)

The software used fro this message uses 0 based addressing

05 DC

Register Value

0x05DC (1500)

This part of the telegram is where we write our desired speed reference

In this case the value is 1500. As the drive is using rpm as the speed units then this equals 1500rpm

DA C3

CRC

0xDAC3 (56003)

Message error checking code

What we can see from this message is that we are sending a speed reference command with a value of 1500 to the drive with address 1.

Response to Speed Reference Command

The response we get back from the drive is as follows: 01 03 02 05 DC BA 8D

Decoding this telegram:

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Should be the same as P2-01

03

Function Code

0x03 (3)

Read Holding Registers command

02

Byte Count

0x02 (2)

Number of Bytes (2 in this case)

05 DC

Register Value

0x05DC (1500)

This shows that 1500 has been accepted as a valid speed reference by the drive

BA 8D

CRC

0xBA8D (47757)

Message error checking code.

From this response telegram we can see that the drive has accepted the speed reference value and will now run at 1500rpm when the drive is enabled via the Control Word in Register 1.

Travel Curve Adjustments with Modbus

When controlling the drive over Modbus the travel curve parameters (Ramps, Jerks, Gains) can all be adjusted by their normal parameters. The drive will always follow these parameters for the travel curve profile.

These parameters can be read/written via the normal method over Modbus with the normal parameter access method which can be found in the topic: Modbus RTU - Reading and Writing Parameters.

Below are a few common problems encountered and simple solutions:

Problem

Solutions

Notes

Getting invalid response

  • Check that the speed reference value sent is within the range of P8-01

If the speed reference is not in the range of P8-01 the drive will reject the value.

Drive is not running at the sent speed reference value

  • Check that the drive is set to the correct units

If you a sending a speed reference in rpm the drive should be set to use rpm as the units to Hz or linear. Use the table Units Setting to select the drives speed units.

  • Check that the correct scaling has been applied to your command

1 = 0.1Hz

1 = 1 rpm

1 = 0.01 ft/s

1 = 0.01 m/s

Modbus RTU - Status Word

The drive's Status Word can be monitored in Modbus Register 6 and is a read only register.

The Status Word is comprised of 16 bits with each bit having it's own function assigned to it that will toggle 0 or 1 depending on which condition is met.

The functions assigned to each bit of the Status Word are listed below:

Bit

Definition

Condition when Bit = 0

Condition when Bit = 1

0

Ready

Drive has any of the following a fault code, lost mains supply or Safety Chain is open

Drive is free from fault codes, has mains supply and Safety Chain is closed

1

Running

When drive is stopped

When drive is running

2

Tripped

When drive has no fault code

When drive has tripped and displays a fault code

3

Reserved

Reserved

Reserved

4

Reserved

Reserved

Reserved

5

Reserved

Reserved

Reserved

6

Speed Set-point Reached (At Speed)

When drive is not at target speed reference

When drive reaches target speed reference

7

Below Minimum Speed

When drive is above minimum speed (P8-02 value)

When drive speed is less than P8-02 value and drive is enabled

8

Overload

When drive output current is below P4-03 value

When drive output current is above P4-03 value (Overload Conditions)

9

Mains Loss

When drive is supplied from mains power

Whens mains power is lost

10

Heatsink > 85°C

When P0-48 is below 85°C

When P0-48 is > 85°C

11

Control Board > 80°C

When drive P0-49 temperature is < 80°C

When drive P0-49 temperature is > 80°C

12

Switching Frequency Reduction

When no switching frequency reduction is not active

When switching frequency reduction is active

13

Reverse Rotation

When drive speed sign is positive

When drive speed sign is negative

14

Auto-tune Active

When Auto-tune is not active

When Auto-tune is in progress

15

Live Toggle Bit

No message read

Message Read

Request to Read drive drives Status Word

To read the drive Status Word use Register 6. Below is an example telegram using Modbus to request (Tx) the drive status word from Register 6:

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Needs to match P2-01 value

06

Function Code

0x06 (6)

Read Holding Registers command

00 05

Register Address

Physical: 0x0005 (5)

Logical: 0x0006 (6)

Reading to Register 6 (Status Word)

00 01

Register Value

0x 0001 (1)

Writing a value of 1 to read only the drive Status Word register

94 0B

CRC

0x940B (37899)

Message error checking code.

Response from the Drive showing the Status Word

Now below is the response from the drive (Rx) which details the Status Word after the request has been sent: 01 03 02 80 43 98 75.

Part of Telegram

Description

Value in Hex (Decimal)

Drive Description

01

Drive Address

0x01 (1)

Needs to match P2-01 value

03

Function Code

0x03 (3)

Read Holding Registers command

02

Byte Count

0x02 (2)

Number of Bytes (2 in this case)

8043

Register Value

0x8043 (32835)

This gives the current Drive Status Word

In binary the control word would look like: 1000 0000 0100 0011

98 75

CRC

0x9875 (39029)

Message error checking code.

Understanding the Status Word from the Modbus message

From the deconstructed telegram above, the Status Word returns the value: 1000 0000 0100 0011

Lets break down this status word into its individual bits and using the table of each bits function we can define what the drive is doing below:

From the Status Word we can see that the drive is:

  • Running at target speed reference

  • Not in overload conditions

For full details of this Status Word example see the table below to fully define what the drive is doing in this example.

Bit

Status Word Individual Bit Status

What does each bit status mean

0

1

Bit 0 has a status of 1 which is Drive Ready so we know the drive is fee from faults, has mains supply and the Safety Chain is closed

1

1

Bit 1 being in a 1 state shows the drive is running

2

0

As bit 2 is 0 the drive has no fault codes present

3

0

Reserved

4

0

5

0

6

1

Bit 6 being 1 shows the drive is at it's target speed reference

7

0

Bit 7 being 1 shows the drive is NOT below the speed set in P8-02

8

0

Bit 8 being 0 means the drive is not in overload conditions and the Motor Current (P0-25) is below the value in P4-03

9

0

As bit 9 is 0 the drive is supplied from mains power

10

0

Bit 10 being 0 means the drive is not overheated

11

0

Bit 11 being 0 means the drive is not overheated

12

0

Bit 12 with a status of indicates there is no switching frequency reduction

13

0

Bit 13 being 0 shows the drive has a positive speed sign so should be running forward (upwards)

14

0

Bit 14 being 0 shows that an Auto-tune is not active

15

1

Bit 15 being toggled at 1 means a message is being read

Below are a few common problems encountered and simple solutions:

Problem

Solutions

Note

Status Word is not changing value

  • Check that the software you are using does not use 0 based addressing

If using 0 based address 1 must be subtracted from all Register address number

  • Check you are connected to the drive via Modbus

If you are not connected via Modbus the Status Word will not change

Modbus RTU – Control & Monitoring Registers

All parameters are accessible for Read and Write over Modbus RTU communication. The following is a list of additional accessible Modbus Registers available in the drive which can be used to control and monitor the drive.

Note

Registers can be read regardless of the setting in parameter P1-01.

Register Number

Upper Byte

Lower Byte

Read/Write

Notes

1

Command Control Word

R/W

Command control word used to control the drive when operating with Modbus RTU.

2

Commanded Speed Reference

R/W

This Register is used to send the Speed Reference command to the drive over Modbus

3

Reserved

R/W

Reserved

4

Reserved

RW

Reserved

5

Internal Speed Reference

RO

0.01Hz Reference

6

Status Word

RO

Shows the Status of the drive

7

Output Speed

RO

Output speed in the units that the drive is operating in. e.g. rpm, m/s to one decimal place

8

Output Current

RO

Output current of the drive to one decimal place, e.g.105 = 10.5 Amps

9

Output Torque

RO

Motor output torque level to one decimal place, e.g. 474 = 47.4 %

10

Output Power

RO

Output power of the drive to two decimal places, e.g.1100 = 11.00 kW

11

Digital Input Status

RO

Represents the status of the drive inputs

12

Reserved

Reserved

Reserved

Reserved

13

Drive Power Rating

RO

Drive Power Rating in kW

14

Drive Voltage Rating

RO

Drive Power Rating in Volts

15

I/O Firmware

RO

Major*100+Minor

16

Power Firmware

RO

Major*100+Minor

17

Drive Type Code

RO

Always 0x0330

18

Active Fault Code Sub Index

Active Fault Code

RO

Register 18 shows currently active fault code on the drive.

Bits 15 - 8 shows the fault codes sub index. If there is no Sub Index values are 0.

Bits 7 - 0 shows the active fault code that matches Optitools Pro and other documentation.

19

Alarm Code

RO

When an Alarm is triggered from the drive this register shows what alarm is active.

Each bit corresponds to an alarm. The table shows the each bit and it's associated alarm.

20

Analog 1 Level

RO

Analog Input 1 Applied Signal level in % to one decimal place, e.g. 1000 = 100.0%

21

Analog 2 Level

RO

Analog Input 2 Applied Signal level in % to one decimal place, e.g. 1000 = 100.0%

22

Pre Ramp Speed Reference

RO

Internal drive frequency setpoint

23

DC bus voltage

RO

Measured DC Bus Voltage in Volts

24

Drive temperature

RO

Measured Heatsink Temperature in °C

25

Serial Number Part 1

RO

Modbus Registers 25 - 28 show the Drive Serial Number in parts, combining all these Registers together gives the complete Drive Serial Number.

26

Serial Number Part 2

27

Serial Number Part 3

28

Serial Number Part 4

29

Digital Output Status

RO

Bit is set to 1 when Digital Output is closed (high)

30

Energy Consumption kWh

RO

Energy Consumption in kWh

31

Energy Consumption MWh

RO

Energy Consumption in MWh

32

Reserved

Reserved

Reserved

33

Reserved

Reserved

Reserved

34

Drive total run time (h)

RO

Drive total run time in hours

35

Drive total run time (m)

RO

Drive total run time in minutes

36

Run time since last enable (h)

RO

Drive run time in hours since last enable

37

Run time since last enable (m)

RO

Drive run time in minutes since last enable

38

Service time remaining

RO

Time remaining until next service is due

39

Control Board Temperature

RO

Control Board Temperature in °C

40 - 47

Reserved

Reserved

Reserved

48

STO Status

RO

1 When Safe Torque Off is closed (both STO1 and STO2 ports need to be closed)