EL70x1

Topics

  1. error/warning
  2. tuning
  3. Speed range

error/warning

If the drive is in error/warning state and not possible to enable, see drive refuse to enable.

Further information about the error/warning can be read from from the drive’s diagnostic register, Index A010 STM Diag data Ch.1:

The ecmccfg/utils/read_el70xx_diag.sh tool can be used to read all the diagnostic registers of any ex70xx drive:

bash read_el70xx_diag.sh <master_id> <slave_id>

Example: master 0, slave 3, drive under voltage warning

bash read_el70xx_diag.sh 0 3

#########################################################
Reading EL70xx status at master id 0 and slave id 3:

Saturated:
0x00 0
Over temperature:
0x00 0
Torque overload:
0x00 0
Under voltage:
0x01 1
Over voltage:
0x00 0
Short circuit A:
0x00 0
Short circuit B:
0x00 0
No control power:
0x00 0
Misc error:
0x00 0

#########################################################

Note: The toolecmccfg/utils/PDO_read can also be used for reading the diagnostics.

under voltage

Use a multimeter to verify that the voltage level corresponds to voltage levels described in the electrical drawings. If the voltage is correct, then the under voltage alarm could be related to wrong setting of nominal drive voltage setting (48V but the drive is powered with 24V).

The nominal drive voltage setting can be changed by the U_NOM_MV macro when applying the component (ecmccomp).

Example: Set nominal voltage to 24V

${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd,       "HW_DESC=EL7041-0052"
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,  MACROS='I_MAX_MA=1000, I_STDBY_MA=500, U_NOM_MV=24000, R_COIL_MOHM=1230'"

For the EL703x drives the nominal voltage must be set to 24V (ecmccomp handles this automatically).

over voltage

Use a multimeter to verify that the voltage level corresponds to voltage levels described in the electrical drawings. If the voltage is correct, then the over voltage alarm could be related to wrong setting of nominal drive voltage setting (24V but the drive is powered with 48V).

The nominal drive voltage setting can be changed by the U_NOM_MV macro when applying the component (ecmccomp).

Example: Set nominal voltage to 48V

${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd,       "HW_DESC=EL7041-0052"
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,  MACROS='I_MAX_MA=1000, I_STDBY_MA=500, U_NOM_MV=48000, R_COIL_MOHM=1230'"

For the EL703x drives the nominal voltage must be set to 24V (ecmccomp handles this automatically).

Tuning

There are normally several control loops in an ecmc system:

  • Position loop (centralized in ecmc if CSV), see tuning
  • Velocity loop (in drive)
  • Current loop (in drive)

However, for the EL70x1 drives there’s no dedicated velocity loop.

Current loop

For most use cases, the default current controller parameters are already well tuned. Sometimes when operating at higher speeds the current loop needs to be tuned.

The following parameters can be tuned for a EL70x1 stepper drive:

  • 8011:07 Ka factor
  • 8011:08 Kd factor
  • 8011:01 Kp factor
  • 8011:02 Ki factor

8011:07 Ka and 8011:08 Kd factor:

8011:07 Ka factor / 8011:08 Kd factor are “current boosts” during acceleration/deceleration. Default they are set to 100% which is normally is too high for most applications. Start by setting these parameters to 0.

8011:01 Kp and 8011:02 Ki factor:

This is the current loop settings and this is also what affect the performance. The higher you set these registers, the stiffer the control loop. For most applications it is important to keep a ration of 40:1. Default is 400 / 10, if you want a stiffer loop, then change to f ex 800 / 20 and onwards. Increase until the motor misbehaves and go back to a safe setting.

speed range

The EL704x stepper drives are default setup to a maximum velocity range of +-2000 full-steps/s. The 16bit velocity setpoint that are sent to the drive corresponds to this range. The speed range for the EL704x can however be changed by setting SDO 8012:05:

0 for 1000 full-steps/second
1 for 2000 full-steps/second (default)
2 for 4000 full-steps/second
3 for 8000 full-steps/second
4 for 16000 full-steps/second
5 for 32000 full-steps/second

When changing the speed range of the drive, also the drive scaling in the axis yaml configuration must be updated, see scaling.