4.3.8. Power control

4.3.8.1. Current consumption reduction

Controller has an option to set current when idle to reduce power consumption. This mode is active by default. It is widely used to lower stepper motor heating in hold mode while keeping position maintenance accuracy. Hold current is set as a percentage of nominal winding current. A time delay after which current will be reduced is also defined. Current reduction mode can be disabled. To set current reduction see set_power_settings function in Programming guide or XILab Power consumption settings page. Nominal engine current is set by set_engine_settings function (see Programming guide) or on Settings of kinematics (stepper motor) page in XILab.

A reasonable hold current level is 40-70%. This will lower power consumption 2-4 times, while keeping holding force sufficient. A reasonable time to reduce power lies in 50-500 ms range. This is a sufficent time for mechanical oscillations, which might knock the system out of the hold position, to subside.

4.3.8.2. The motor power shutdown

There is also a power shutdown mode to reduce power consumption of a stepper motor. It is mostly used to stop wasting power on position hold, when no movements are performed for a long time. This mode is on by default, but can be disabled by the user. Time from motor stop to power off is set in seconds. A reasonable time is 3600 seconds (one hour). To set power off options see set_power_settings function in Programming guide or XILab Power consumption settings settings page.

4.3.8.3. Time delay calculation specifics

All timeouts work in the follwing way: on each transition to stop state time is saved with millisecond accuracy. After certain set time is elapsed depending on PowerOff/CurrentReduce enabled state a motor will reduce winding current or turn its power off. All settings can be changed online. For example, if you increase PowerOff timeout value after the poweroff has already happened then windings will get powered on and a PowerOff function will activate after the new delay. Timeout countdowns cancel after each movement start.

4.3.8.4. Jerk free function

Sometimes smooth motor winding current changes are required to reduce vibrations of a mechanical system. That’s why a Jerk free option is provided, which allows one to set current ramp-up time from zero to nominal value with millisecond precision. When this option is turned on all changes to stabilization current or winding powerdown will happen with smooth current increase or decrease. For example, if jerk free time is set to 100ms and the controller needs to reduce current to \(50\%\) it will be reduced over the time of 50ms (because 100ms are required to reduce current from full to zero). To setup Jerk free see set_power_settings function in Programming guide or XILab Settings of kinematics (stepper motor) page.

Smooth current change function activates on any change in the amplitude of the winding current, for example on nominal hold current change. In this case current change speed is calculated based both on older and newer hold currents, whichever is higher. If controller needs to turn off the motor windings then current is gradually ramped down, then power output circuits are disconnected. If controller needs to power up the windings, then they are powered with zero current which increases up to nominal current.

There are exceptions to the rule, when the current is immediately reduced to zero even if Jerk free option is active. These are the critical errors/Alarm state (see Critical parameters) and controller reset events on firmware update. These events are rare and should not happen during normal stage operation.

A reasonable Jerk free time is 50-200ms, which merely leads to low-energy mechanical oscillations on 3-10 Hz frequencies which are significantly lower than noise from other common sources. Higher Jerk free times will lead to constant delays when current is switched on or off.

4.3.8.5. Peak current mode

Controllers with a power board of revision 2.4.x are equipped with a new power driver and capable of supplying a stepper or BLDC motor winding current of up to 5 A. Since the motor wiring and other electronics are not designed for a continuous 5 A current, the increased current is supplied in the pulse mode: the controller estimates the averaged motor heating from the winding currents and reduces the current to the nominal value when the power limit is reached. The peak current can be applied while moving under load. This temporarily increases the available torque while limiting the averaged motor heating.

Starting with firmware 4.9.7, the peak current mode is available for stepper, DC and BLDC motors on these power boards. This does not change the current ratings of the older power boards.

The peak current value is set in the Peak current field together with the enabling flag on the settings of kinematics (stepper motor) page in XILab (or with the set_engine_settings function, see the Programming guide). In the API, set PeakCurrent and enable the ENGINE_USE_PEAK_CURRENT flag in EngineFlags. Set Peak current above Nominal current, taking into account the motor rating, the controller rating and whether the current is specified as RMS or amplitude. The controller allows the increased current while moving, subject to the averaged power limit. Raising this setting does not increase the continuous current rating of the controller.

4.3.8.5.1. Averaged motor power

AveragedPowerRatio, returned by get_chart_data, is the estimated averaged motor heating power relative to the nominal motor power, in percent. The estimate is calculated from the winding currents; the calculation accounts for the motor type. A value of 100% is the nominal power threshold: at or above it, the controller reduces an increased current to the nominal value. The reported value can temporarily exceed 100%; 100% is a control threshold, not a hard upper bound on the field.

This field replaced DutyCycle in firmware 4.9.1. It is not the PWM duty factor and must not be interpreted using the old DutyCycle scale. In XILab, select Averaged Power Ratio in the Charts window to monitor it. The Power current indicator in the main window instead shows the current consumed from the power supply.