Roll-Over Axis

When a rollover axis is used, the position control loop has to be closed inside the PLC, the drive should run in speed mode unsing the Speed Refernce value of he Kernel FB.

If the Position Reference value is used, the drive must able to perform a position over-run after 32 bit. If the drive’s position over-run is different, it can be adapted with the function blocks ZCMC_BINARY2MODULO and ZCM_MODULO2BINARY from the library CompactMotionControl_AC500_V12. Incompatibility can cause an axis to trip after hours of operation.

The possible position following error has to be smaller the ½ MODULO_RANGE. Make sure that the modulo range is large enough.

Position following error = (100- FF_PERCENTAGE)*MAX_RPM *INC_PER_R*CONTROL_TIME/6000000. This is the maximum value at constant velocity.

EN_MODULO

With this parameter the axis can be configured as a roll-over axis.

MODULO_RANGE

The modulo range will be defined in drive position counts (DINT). It will result that the scaled unit position which is used by the PLCopen function blocks will stay within the defined range.

Example

EN_MODULO\ \ \ = TRUE
MODULO_RANGE \ \ = 20000
INC_PER_REV\ \ \ = 10000
U_PER_REV_NOMINATOR \ = 360 \ (e.g. degree)
U_PER_REV_DENOMINATOR \ = 1

The scaled units position will cover the range from 0 to 720 (degrees).

In some cases it is not suitable to set the modulo range of an application with the DINT value of the parameter MODULO_RANGE only. In such cases the parameters 2001 MODULO_NOMINATOR and 2002 MODULO_DENOMINATOR can be used to scale the parameter MODULO_RANGE to a more precise value.

Parameter MODULO_NOMINATOR and MODULO_DENOMINATOR\ (supported with CMC_MOTION_KERNEL_REAL)\

These parameters can be used to modify the MODULO_RANGE in a way that fractions of an increment could be used for 1 modulo (=rollover) distance

  • Default: MODULO_NOMINATOR=1 and MODULO_DENOMINATOR=1: the actual position for an axis is limited between 0 and MODULO_RANGE increments.
  • Limitations: MODULO_RANGE*MODULO_NOMINATOR < 2147483647. Otherwise: default values will be used.
  • When modifying these parameters, the position control loop should be opened.

Example

EN_MODULO\ \ \ = TRUE
MODULO_RANGE \ \ = 1024
MODULO_NOMINATOR \ \ = 10
MODULO_DENOMINATOR \ \ = 3
INC_PER_R\ \ \ = 1024
U_PER_REV_NOMINATOR \ = 80*5*3
U_PER_REV_DENOMINATOR \ = 10
../_images/b587b740b54938a50a3313900039f60d

Result of parameters MODULO_RANGE, MODULO_NOMINATOR and MODULO_DENOMINATOR: The modulo range will cover one revolution of the toothed belt wheel.

Result of parameters U_PER_REV_NOMINATOR and U_PER_REV_DENOMINATOR: One scaled unit corresponds to one mm of the tooth belt.

Example: Gearbox 10.1

  Option1 Option2
EN_MODULO TRUE TRUE
MODULO_RANGE 10240 10240
MODULO_NOMINATOR 1 1
MODULO_DENOMINATOR 1 1
INC_PER_R 1024 10240
U_PER_REV_NOMINATOR 36 360
U_PER_REV_DENOMINATOR 1 1
MAX_RPM 3000 300

The two options above describe exactly the same configuration. The MODULO_RANGE is equivalent to 10 motor revolutions and is 10240 increments. For the position, 1u means 1° and the resolution is 360°/10240inc = 0,035°/Inc = 1°/28,44 Inc.

Example: Gearbox 10.3

  Option1 Option2
EN_MODULO TRUE TRUE
MODULO_RANGE 1024 10240
MODULO_NOMINATOR 10 1
MODULO_DENOMINATOR 3 3
INC_PER_R 1024 10240
U_PER_REV_NOMINATOR 108 1080
U_PER_REV_DENOMINATOR 1 1
MAX_RPM 3000 300

The two options above describe exactly the same configuration. The gearbox is 10:3, so the MODULO_RANGE is equivalent to 1024*10/3 = 3413 + 1/3 increments. For the first option, the resulting modulo range is calculated 1024*10/3, for option2, it is 10240*1/3. For the position, 1u means 1° and the resolution is 108°/1024inc = 0,105°/Inc = 1°/9.481 Inc.