Stopping Actions

Stopping Actions Overview

A moving motor/axis can be stopped in a variety of ways. For a complete list of actions that can be performed on an axis see our RSIAction enum in our API.

There are three main ways motions are stopped:

  1. Disabling the drive/amplifier.

  2. Ramping down the federate from current value (default 1.0) to 0.0 over a set amount of time.

  3. Decelerating with a specified deceleration rate.

See the table at the bottom of this page for a comprehensive overview the stopping methods used by each action and their default parameters.

If Motion is in the moving state (RSIStateMOVING), a STOP action will decelerate the axis (or axes) to a stop in the time specified by the STOP time configuration. The motion state will transition to RSIStateSTOPPING during the deceleration and then to RSIStateSTOPPED after the motion completes. The amplifier will remain enabled. STOP is also the same as PAUSE and can be resumed.

Motions can also be paused using FeedRateSet(0)

This action will decelerate the axis (or axes) to a stop in the time specified by the ESTOP time configuration. After the motion stops, the axis will be set to the RSIStateERROR. The amplifier will remain enabled.

This action will disable the PID control (or other algorithm), set the DAC output to the offset value, and disable the amp enable outputs. After the abort completes, the Motion will be set to the RSIStateERROR state. If outside forces such as gravity would cause a crash, you likely don’t want to use this.

First performs and E_STOP and then performs an ABORT. See E_STOP and ABORT for details.

This action will decelerate the axis (or axes) to a stop in the time specified by the ESTOP time configuration. After the Motion stops, the the Motion will be set to the RSIStateERROR state. The amplifier will be disabled. When the E_STOP_CMD_EQ_ACT is triggered, the output of the axis trajectory calculator is replaced by settling the command position equal to the last sample’s actual position.

Similar to E_STOP except the user can now define explicit deceleration and jerk percent instead of the axis (or axes) simply decelerating to a stop in the time specified by the ESTOP time configuration. Users will need to set the deceleration and jerk percent using the EStopDecelerationSet() and EStopJerkPercentSet() methods.

First performs and E_STOP_MODIFY and then performs an ABORT. See E_STOP_MODIFY and ABORT for details.

If the motion is in the moving state (RSIStateMOVING), a TRIGGERED_MODIFY action will decelerate the axis to a stop by the TriggeredModifyDeceleration and TriggeredModifyJerkPercent. The motion state does not transition - it will remain RSIStateMOVING during the deceleration and then to RSIStateIDLE after the motion completes. After TriggeredModify(), axis does NOT have error state & drive(amplifier) is still enabled

Key differences in the methods of stopping a motion

To see how to set the various parameters see the Stopping Rates Topic on the next page.

Motion controller state diagram (API)

Last updated