Modes of Operation#

The mode of operation selects which controller runs inside the drive and therefore which target objects have any effect. Write it to Modes of Operation 0x6060 and read it back from Modes of Operation Display 0x6061.

The underlying controllers are the same ones the MD Protocol exposes. For the control theory, tuning advice and block diagrams, see Motion Control. This page covers only how to reach them over CANopen.

Supported modes#

Value

Mode

Controller

Setpoint objects

-3

Impedance

Impedance PD

0x607A, 0x60FF, 0x6071

-2

Service

none, motor idle

none

0

Idle

none, motor idle

none

1

Profile Position

trajectory into Velocity PID

0x607A, 0x60FF

3

Profile Velocity

trajectory into Velocity PID

0x60FF

8

Cyclic Sync Position

Position PID cascade

0x607A

9

Cyclic Sync Velocity

Velocity PID

0x60FF

Supported Drive Modes 0x6502 reads 0x00000185, which advertises Profile Position, Profile Velocity, Cyclic Synchronous Position and Cyclic Synchronous Velocity. The two manufacturer specific modes, Impedance and Service, are negative values and are not represented in that bit field.

Warning

Writing a value that is not in the table above does not produce an SDO abort. The drive accepts the write and falls back to Idle, which stops the motor. Always read 0x6061 back to confirm the mode you asked for is the mode you got.

Note

Reading 0x6060 returns the mode the drive is currently running, not the last value written. It gives the same answer as 0x6061.

Profile Position, mode 1#

The drive runs an internal trajectory generator from the current position to Target Position 0x607A and feeds the result to the velocity controller.

Object

Role

0x607A

Destination

0x60FF

Cruise velocity of the profile

0x6083

Acceleration

0x6084

Deceleration

0x2011

Velocity PID gains

Important

The cruise velocity comes from Target Velocity 0x60FF, not from Profile Velocity 0x6081. There is no 0x6081 in this object dictionary. A profile position move with 0x60FF left at zero will not move.

Completion is reported through bit 15 of Quick Status 0x2022:1, using Position Window 0x6067 as the tolerance. The statusword does not carry a target reached bit.

Profile Velocity, mode 3#

The trajectory generator ramps from the current velocity to Target Velocity 0x60FF, respecting 0x6083 and 0x6084, and feeds the velocity controller. Position targets are ignored.

Completion is reported through bit 15 of Quick Status 0x2022:1, using Velocity Window 0x606D.

Cyclic Synchronous Position, mode 8#

Target Position 0x607A is applied directly to a cascaded position and velocity controller with no trajectory generation. The master is responsible for feeding a smooth stream of positions, typically one per SYNC through a receive PDO.

Object

Role

0x607A

Position setpoint

0x2010

Position PID gains

0x2011

Velocity PID gains

0x6080

Max Motor Speed, clamps the position loop output

Cyclic Synchronous Velocity, mode 9#

Target Velocity 0x60FF is applied directly to the velocity controller, again with no trajectory generation. Only the Velocity PID gains in 0x2011 apply.

Impedance, mode -3#

A manufacturer specific mode that makes the drive behave like a spring and damper around a moving setpoint, with a feed-forward torque. This is the mode to use for compliant and force controlled applications.

Object

Role

0x607A

Equilibrium position

0x60FF

Equilibrium velocity

0x6071

Feed-forward torque

0x2012:1

Stiffness, Kp

0x2012:2

Damping, Kd

Service and Idle#

Both leave the motor un-driven. Service, mode -2, is what the drive reports while it is running an internal routine such as a test or an open loop procedure.

Note

Unlike the legacy CANopen firmware, calibration does not require Service mode. The routines in 0x2023 run from whatever mode the drive is in. See Setting Up a New Motor.

Changing mode safely#

Switch modes with the drive in Switched on rather than Operation enabled, or write a setpoint that matches the current state before enabling. Changing mode while the drive is following a setpoint hands control to a different controller with a target that may be stale, which shows up as a jump on the output shaft.