APIs, concepts, guides, and more

◆ Resume()

void Resume ( )
Description:
Resume will resume an axis that was previously stopped with a Stop(). If the motion is in idle state (::RSIStateIDLE), it will change to moving state (::RSIStateMOVING), and the motion will resume if it was stopped by a prior call to Stop().
Resume will use 'stop time' value defined by StopTimeSet() to go from 0 counts/sec to commanded velocity.
Warning
The stopping time that is used will be from the object (Axis or MultiAxis) that started the active motion, NOT the object that commanded this action.
If a MultiAxis motion is in progress, the stopping time will be determined by MultiAxis::StopTimeSet() and the individual Axis::StopTimeSet() values will be ignored.

Part of the Action method group.

Sample Code:
Motion: Modify
// start motion
axis.MoveSCurve(POSITION, VELOCITY, ACCELERATION, DECELERATION, JERK_PERCENT);
Console.WriteLine($"\tPosition commanded: {POSITION}");
// set feedrate to 150%
axis.FeedRateSet(1.5);
// wait here until we reach position 5
while (axis.CommandPositionGet() < 5)
Thread.Sleep(10);
// stop motion
axis.Stop();
axis.MotionDoneWait();
Console.WriteLine($"\tPosition after FeedRate (1.5): {axis.CommandPositionGet()}");
// set feedrate to reverse motion (-100%)
axis.FeedRateSet(-1);
// resume motion for a bit
axis.Resume();
Thread.Sleep(500);
Console.WriteLine($"\tPosition after FeedRate (-1): {axis.CommandPositionGet()}");
// restore feedrate (100%)
axis.FeedRateSet(1);
// wait for motion done
axis.MotionDoneWait();
Console.WriteLine($"\tPosition after FeedRate (1): {axis.CommandPositionGet()} (expected: {POSITION})");
Note

Resume will not work with EStop() or any other error condition (such that an axis is in error state)
RapidSetup:
Go to axis screen->Position and Trajectory box. Various actions (Stop, EStop, Abort) are shown in image below.
See also
StopTimeSet , StopTimeGet , Stop, RSIState
Examples
axis-motion-modify.cs, and axis-motion-streaming-pt-whilestopping.cs.