APIs, concepts, guides, and more
Stopping Actions

Explore the various methods to stop a motor or axis, including disabling drives, ramping down feed rates, and applying deceleration, each configurable with specific actions and parameters.

🔹 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.
Note
See the table at the bottom of this page for a comprehensive overview the stopping methods used by each action and their default parameters.

RSIActionSTOP

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 StopTimeSet(). 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.

Note
Motions can also be paused using FeedRateSet(0)

RSIActionE_STOP

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

RSIActionABORT

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.

RSIActionE_STOP_ABORT

First performs and E_STOP and then performs an ABORT. See EStop() and Abort() for details.

RSIActionE_STOP_CMD_EQ_ACT

This action will decelerate the axis (or axes) to a stop in the time specified by the EStopTimeSet(). 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.

RSIAction_E_STOP_MODIFY

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.

RSIActionE_STOP_MODIFY_ABORT

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

RSIActionTRIGGERED_MODIFY

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

Stopping Action Table

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

Motion State Diagram

RSIState