NP5 CANopen Online Manual

Control modes


The control mode of systems without feedback is called open loop, the mode with feedback is called closed loop. In the closed loop control mode, it is initially irrelevant whether the fed back signals come from the motor itself or from the influenced process.

For controllers with feedback, the measured control variable (actual value) is constantly compared with a set point (set value). In the event of deviations between these values, the controller readjusts according to the specified control parameters.

Pure controllers, on the other hand, have no feedback for the value that is to be regulated. The set point (set value) is only specified.

In addition to the physical feedback systems (e.g., via encoders or Hall sensors), model-based feedback systems, collectively referred to as sensorless systems, are also used. Both feedback systems can also be used in combination to further improve the control quality.

Summarized in the following are all possible combinations of control modes and feedback systems with respect to the motor technology. Support of the respective control mode and feedback is controller-specific and is described in chapters Pin assignment and Operating modes.

Control mode Stepper motor BLDC motor
Open Loop yes no
Closed Loop yes yes
Feedback Stepper motor BLDC motor
Hall no yes
Encoder yes yes
Sensorless yes yes

Nanotec developed the Slow Speed control mode, which is a combination of open loop and closed loop, especially for applications in the low speed range. This control mode can be used if an encoder is present as feedback.

Various operating modes can be used depending on the control mode. The following list contains all the types of operation that are possible in the various control modes.

Operating mode Control mode
Open Loop Closed Loop Slow Speed
Profile Position yes yes yes
Velocity yes yes yes
Profile Velocity yes yes yes
Profile Torque no1) yes no
Homing yes2) yes yes
Interpolated Position Mode yes3) yes yes
Cyclic Synchronous Position yes3) yes yes
Cyclic Synchronous Velocity yes3) yes yes
Cyclic Synchronous Torque no1) yes no
Clock-direction yes yes yes

1) The Profile Torque and Cyclic Synchronous Torque torque operating modes are not possible in the open loop control mode due to a lack of feedback.

2) Exception: Homing on block is not possible due to a lack of feedback.

3) Because ramps and speeds in operating modes Cyclic Synchronous Position and Cyclic Synchronous Velocity follow from the specified points of the master, it is not normally possible to preselect these parameters and to ascertain whether a step loss can be excluded. It is therefore not advisable to use these operating modes in combination with open loop control mode.

Open Loop


Open loop mode is only used with stepper motors and is, by definition, a control mode without feedback. The field rotation in the stator is specified by the controller. The rotor directly follows the magnetic field rotation without step losses as long as no limit parameters, such as the maximum possible torque, are exceeded. Compared to closed loop, no complex internal control processes are needed in the controller. As a result, the requirements on the controller hardware and the controller logic are very low. Open loop mode is used primarily with price-sensitive applications and simple movement tasks.

Because, unlike closed loop, there is no feedback for the current rotor position, no conclusion can be drawn on the counter torque being applied to the output side of the motor shaft. To compensate for any torque fluctuations that arise on the output shaft of the motor, in open loop mode, the controller always supplies the maximum possible (e.g., specified by parameters) set current to the stator windings over the entire speed range. The high magnetic field strength thereby produced forces the rotor to assume the new steady state in a very short time. This torque is, however, opposite that of the inertia of the rotor and overall system. Under certain operating conditions, this combination is prone to resonances, comparable to a spring-mass system.


To use open loop mode, the following settings are necessary:

  • In object 2030h (Pole Pair Count), enter the number of pole pairs (see motor data sheet: for a stepper motor with 2 phases, a step angle of 1.8° corresponds to 50 pole pairs and 0.9° corresponds to 100 pole pairs).
  • In object 2031h:00h, enter the maximum permissible motor current (motor protection) in mA (see motor data sheet)
  • In object 6075h:00h, enter the rated current of the motor in mA (see motor data sheet).
  • In object 6073h:00h, enter the maximum current (for a stepper motor, generally corresponds to the rated current, bipolar) in tenths of a percent of the set rated current (see motor data sheet). Factory settings: "1000", which corresponds to 100% of the value in 6073h. A value greater than "1000" is limited internally to "1000".
  • In object 3202h (Motor Drive Submode Select), set bit 0 (CL/OL) to the value "0".

Nanotec recommends to activate the current reduction on motor standstill in order to reduce the power loss and heat build-up. To activate current reduction, the following settings are necessary:

  • In object 3202h (Motor Drive Submode Select), set bit 3 (CurRed) to "1".
  • In object 2036h (open-loop current reduction idle time), the time in milliseconds is specified that the motor must be at a standstill (set value is checked) before current reduction is activated.
  • In object 2037h (open-loop current reduction value/factor), the root mean square is specified to which the rated current is to be reduced if current reduction is activated in open loop and the motor is at a standstill.


Depending on the system, resonances may occur in open loop mode; susceptibility to resonances is particularly high at low loads. Practical experience has shown that, depending on the application, various measures are effective for largely reducing resonances:

  • Reduce or increase current, see objects 6073h and 6075h, respectively. An excessive torque reserve promotes resonances.
  • Reduce or increase the operating voltage, taking into account the product-specific ranges (with sufficient torque reserve). The permissible operating voltage range can be found in the product data sheet.
  • Optimize the control parameters of the current controller via objects 3210h:09h (I_P) and 3210h:0Ah (I_I) or 320Fh (generally not necessary).

    The current controller operates optimally if the actual current of both windings (square root of the sum I_a2+ I_b2, 2039h:03h/:04h) divided by 2 at any point in time corresponds to the set rated current (203Bh:01h).

  • Adjustments to the acceleration, deceleration and/or target speed depending on the selected control mode:
    Profile Position operating mode
    Objects 6083h (Profile Acceleration), 6084h (Profile Deceleration) and 6081h (Profile Velocity).
    Velocity operating mode
    Objects 6048h (Velocity Acceleration), 6049h (Velocity Deceleration) and 6042h (Target Velocity).
    Profile Velocity operating mode
    Objects 6083h (Profile Acceleration), 6084h (Profile Deceleration) and 6081h (Profile Velocity).
    Homing operating mode
    Objects 609Ah (Homing Acceleration), 6099h:01h (Speed During Search For Switch) and 6099h:02h (Speed During Search For Zero).
    Interpolated Position Mode operating mode
    The acceleration and deceleration ramps can be influenced with the higher-level controller.
    Cyclic Synchronous Position operating mode
    The acceleration and deceleration ramps can be influenced via the external "position specification / time unit" targets.
    Cyclic Synchronous Velocity operating mode
    The acceleration and deceleration ramps can be influenced via the external "position specification / time unit" targets.
    Clock-direction operating mode
    Change of the step resolution via objects 2057h (Clock Direction Multiplier) and 2058h (Clock Direction Divider). Optimize acceleration / deceleration ramps by adjusting the pulse frequency to pass through the resonance range as quickly as possible.

Closed Loop


The closed loop theory is based on the idea of a control loop. A disturbance acting on a system should be compensated for quickly and without lasting deviation to adjust the control variable back to the set point.

Closed loop using a speed control as an example:

PII = Proportional-integral current control loop
PIV = Proportional-integral velocity control loop
Iactual = Actual current
Vactual = Actual speed

The closed loop method is also referred to as "sine commutation via an encoder with field-oriented control". At the heart of closed loop technology is the performance-adjusted current control as well as the feedback of the actual values of the process. Using sensor signals, the rotor orientation is recorded and sinusoidal phase currents generated in the motor windings. Vector control of the magnetic field ensures that the magnetic field of the stator is always perpendicular to that of the rotor and that the field strength corresponds precisely to the desired torque. The current thereby controlled in the windings provides a uniform motor force and results in an especially smooth-running motor that can be precisely regulated.

The feedback of the control variables necessary for closed loop mode can be realized with various technologies. In addition to the physical feedback with encoders or Hall sensors, it is also possible to virtually record the motor parameters through a software-based model calculation. Physical variables, such as speed or back-EMF, can be reconstructed with the help of a so-called "observer" from the data of the current controller. With this sensorless technology, one has a "virtual rotary encoder", which – above a certain minimum speed – supplies the position and speed information with the same precision as a real optical or magnetic encoder.

All controllers from Nanotec that support closed loop mode implement a field oriented control with sine commutated current control. Thus, the stepper motors and BLDC motor are controlled in the same way as a servo motor. With closed loop mode, step angle errors can be compensated for during travel and load angle errors corrected within one full step.

Controller structure

The controller consists of three cascaded PI controllers (proportional-integral): the current controller (commutation), the velocity controller and the position controller.

The current controller is active in all operating modes. The velocity controller is as well with the sole exception of the "Real Torque" modes (torque mode without speed limiting if bit 5 in 3202h is set to "1").

The position controller is active in the following operating modes:

  • Profile Position
  • Homing
  • Interpolated Position Mode
  • Cyclic Synchronous Position
  • Clock-direction mode
  • Velocity/Profile Velocity/Cyclic Synchronous Velocity if bit 1 in 3202h is set to "1"

For firmware versions from FIR-v19xx upwards, the new schema described here for the Controller structure applies.

The old control parameters (object 3210h) are still activated in the factory settings for compatibility reasons. For new applications, Nanotec recommends using the new control parameters.

To use the new parameters, you must set 3210h:07h (for closed loop) or 3210h:09h (for open loop) to "0". When the controller is switched on, the old values are converted and entered in the new object 320Eh or 320Fh. You must save both objects (see Saving objects).

Each controller consists of a proportional component with the gain factor Kp and an integral component with the reset time Tn. The control variable (the output signal of the controller, which is the set point for the next controller) is limited by the maximum speed (position controller), the maximum current (velocity controller) or the maximum PWM signal (current controller), respectively.

The following figures show the structure of the three cascaded controllers.

For each controller you can set a maximum control deviation (emax) and a gain factor (Kp) that determine the output of the controller (control variable), taking into account the limitation of the control variable (ymax).

The following figure shows the relationship between the maximum control deviation (e), the control variable (y) and the gain factor (Kp) using the position controller as an example.

With a Kp of 100%, a maximum deviation set in 320Eh:04h (emax_pos) leads to the set maximum control variable set in 320Eh:05h (in the case of the maximum speed, ymax_vel). For smaller deviations, the control variable is also correspondingly smaller.

The gain factor Kp has a direct influence on the current control variable: at the same deviation, the control variable is proportional to the gain factor.

Each controller also has an integral component that is determined by the reset time (Tn). The following figure shows the influence of the reset time on the control variable using the velocity controller as an example.

The smaller the reset time, the greater the influence of the integral component and the faster the control variable increases. If the reset time is 0, the integral component is internally set to "0" and the controller only has the proportional component.

Feed forward

It is also possible to set a velocity feed forward, an acceleration feed forward (that corresponds to a torque/current value) and a voltage feed forward.

You can use the feed forward to add an already known or anticipated control variable to the set point ("predictive"). You can, e. g., compensate for the inertia of the load by adding an acceleration feed forward value to the output of the velocity controller.

The feed forward values are additionally fed to the speed/current control loop or added to the voltage value and are immediately available. A more dynamic control can thereby be achieved.

The following figure shows the current (produced by the acceleration) during the acceleration phase as a function of the acceleration feed forward. At a feed forward value of "50%", the current is at "50%" already at the start of the acceleration phase; the current controller is thereby "relieved".

The factor for the velocity feed forward is set in object 320Eh:03h in tenths of a percent of the output of the ramp generator (606Bh) and added to the output of the position controller before the velocity controller. The velocity feed forward is active in all modes with position control loop:

  • Profile Position
  • Homing
  • Interpolated Position Mode
  • Cyclic Synchronous Position
  • Clock-direction mode
  • Velocity/Profile Velocity if bit 1 in 3202h is set to "1"

The factor for the acceleration feed forward is set in object 320Eh:08h in tenths of a percent of the factor of 320Dh and multiplied by the output of the ramp generator (6074h). The value is added to the output of the velocity controller before the current controller. The acceleration feed forward is active in all modes, with the exception of the torque modes.

The following figure shows the cases in which the feed forward is active and the position of the feed forward within the controller cascade.

The factor for the voltage feed forward is specified in object 320Eh:0Dh in tenths of a percent of the voltage that is needed to produce the rated current. If the factor is 1000‰ (factory setting), the voltage is immediately available and the actual current quickly reaches the rated current. As a result, there is practically no control deviation during acceleration and the current controller is relieved.

The voltage feed forward is active in all modes. To switch it off, set 320Eh:0Dh to "0".

Assignment of the feedbacks to the control loops

In object 3203h, you define which of the existing feedbacks the controller takes into account for the individual controllers (current controller/commutation, velocity, position). You can also use a second sensor for the commutation (see Commutation help).

Each subindex of the object contains a bit mask for the respective feedback of a sensor. The bits have the following meaning here:

  • Bit 0: If the bit is set to "1", this sensor is used for position feedback.
  • Bit 1: If the bit is set to "1", this sensor is used for velocity feedback.
  • Bit 2: If the bit is set to "1", this sensor is used for commutation feedback in Closed Loop.

Subindex 01h always corresponds to the first (and always existing) sensorless feedback. The order of the remaining feedbacks corresponds to the table in chapter Configuring the sensors.

Which sensor the controller takes into account for the individual controllers (commutation, velocity, position) is implicitly specified by the order of the sensors.

The search always begins with sensor 2 and continues in ascending order until all existing sensors have been queried. If a sensor is found whose feedback is set, it is assigned to the corresponding controller and the search ended.



The controller has two physical interfaces. Hall sensors and a (non-absolute) incremental encoder were connected.

Feedback 1 Feedback 2 Feedback 3
Bit Controller Sensorless Hall Incremental encoder
0 Position 0 0 1
1 Velocity 0 1 11
2 Commutation 0 12 1
Index:Subindex 3203h:01h 3203h:02h 3203h:03h

1The Hall sensors should be used for velocity control, the encoder for the positioning and commutation. Although the bit for the velocity was also set for the third feedback, this is not taken into account.

2Immediately after switching on − and until the index of the encoder is passed over for the first time − commutation is to take place via the Hall sensors and immediately enable closed loop mode.

Commutation help

Some sensors are initially lacking the alignment necessary for the commutation (offset between the index of the encoder and the magnets of the rotor). This means that the rotor orientation cannot be determined using only the position information of the sensor.

For assistance, you can set a second sensor as commutation sensor (bit 2 of the corresponding subindex in 3203h). It is thereby possible, for example, for each (electric) absolute sensor with alignment (such as a Hall sensor), to offer commutation assistance, e. g., for an incremental encoder without index or still missing alignment (index signal not yet seen since a restart). The controller automatically uses the better sensor for the commutation.

If no second commutation sensor is selected or if the alignment is missing for the selected sensors, an auto-alignment is determined in open loop if necessary (independent of bit 4 in 3202h).


An auto setup should be performed before using closed loop mode. The auto setup operating mode automatically determines the necessary parameters (e.g., motor data, feedback systems) that are necessary for optimum operation of the field oriented control. All information necessary for performing the auto setup can be found in chapter Auto setup.

To use closed loop mode, certain settings are necessary depending on the motor type and feedback; see chapter Setting the motor data.

Bit 0 in 3202h must be set . The bit is set automatically after a successfully completed auto setup.


If an (electric) absolute sensor (e.g., Hall sensor) is used for the commutation, the closed loop is activated automatically already when switching on.

If an encoder is used for the commutation, the index of the encoder must be passed over at least once after switching on before closed loop can be activated (remains in open loop mode until this takes place).

If no index is present or if it cannot be used, you can:

  • use a second sensor for commutation (see Assignment of the feedbacks to the control loops)
  • or have an auto alignment determined in open loop by setting bit 4 in 3202h to "1".

    Auto alignment is determined once every time the controller is restarted after the first command that switches the CiA 402 Power State Machine to the Operation enabled state.

    In doing so, the rotor is moved up to a magnetic pole. After the alignment has been determined, the Operation enabled state is reached and travel continues if applicable.


    To be able to determine the auto alignment, you must ensure that the (automatic or manual) brake control is deactivated (see chapter Automatic brake control).

    • Uncontrolled motor movements!
    • Unforeseeable reactions can result if the alignment is not correctly determined.
    • Please observe the following requirements for the use of auto alignment:
    • ► The motor shaft must ideally be load-free. If this is not possible, the motor must be designed so that there is a large torque reserve (at least 25%).
    • ► Use an encoder with sufficiently high resolution (at least 500 counts per revolution, after quadrature, for a motor with 50 pole pairs)

Bit 15 in 6041h Statusword indicates whether or not closed loop is active (if the state of CiA 402 Power State Machine is Operation enabled).



In closed loop, the measured control variable (actual value) is constantly compared with a set point (set value). In the event of deviations between these values, the controller readjusts according to the specified control parameters.

The objective of control parameter optimization (the so-called tuning of the controller) is the smoothest possible running of the motor, high accuracy and high dynamics in the reaction of the controller to faults. All control deviations should be eliminated as quickly as possible.

Due to the cascaded Controller structure, it is useful to start the optimization of the inner-most controller (current controller) before the velocity and – if applicable – the position controller are optimized. Each of the three controllers consists of a proportional and an integral component, which should normally be adjusted in this order.

The following figures show the reaction of the controller to a change in set value.

If the proportional component is too small, the actual value remains below the set value. A proportional component that is too large, on the other hand, results in "overshooting".

If the reset time is too small, the system tends toward oscillations. If the reset time is too large, the deviations are compensated for too slowly.

  • Risk of injury through uncontrolled motor movements!
  • Incorrect control parameters may result in an unstable control behavior. Unforeseen reactions can result.
  • ► Increase the control parameters slowly and incrementally. Do not increase these further if you notice strong vibrations/oscillations.
  • ► Do not reach for moving parts during operation. After switching off, wait until all movements have ended.

Slow Speed


The slow speed mode combines the advantages of open loop and closed loop technologies in a low speed range and can be used if an encoder is present as feedback. Slow speed offers following error monitoring but is more smooth-running than in pure closed loop mode at low speeds.

The rotor orientation is detected via the signals of the encoder. To calculate the speed, the change of position is divided by the (fixed) cycle time. At low speeds, the controller counts fewer (or even no) encoder increments in one cycle, which leads to a speed curve with a relatively high number of peaks (in spite of the used low-pass filter).

Due to the cascaded control loop, this results in current peaks in closed loop mode, which can lead to uneven running, as the following figure shows.

In the slow speed mode, the motor instead operates with constant phase current, as in open loop. The following error is, however, monitored by means of the encoder and the vector control of the magnetic field is activated if necessary, as in closed loop.


To activate the slow speed mode, you must:

  1. activate closed loop,
  2. in object 3202h (Motor Drive Submode Select), set bit 7 to "1".

The changeover between slow speed and closed loop occurs automatically at a speed that is dependent on the physical encoder resolution, with a hysteresis of 10%. This fixed changeover speed is calculated in revolutions per minute as follows:

The following figure shows the changeover as a function of speed in both directions.

While at a standstill, the motor is in closed loop mode.


The entire phase current remains constant as in open loop. Depending on the system, resonances may occur that you can avoid by adjusting the motor current and/or the acceleration ramp. See also chapter Open Loop.

During operation at various speed ranges, if changing between closed loop and slow speed, it may be necessary to:

  • reduce the motor current (objects 6075h, 6073h) if changing from closed loop to slow speed,
  • ascertain various control parameters (see Controller structure) for each speed range.
▶   next


Privacy settings
We use essential cookies that our website requires to function correctly. With your consent, we also use optional cookies for statistics and marketing. You can agree to the non‑essential cookies by clicking the "Accept" button or reject them. You can call up your settings and also withdraw your consent at any time. For more information, see our privacy statement.