APIs, concepts, guides, and more

◆ MoveRelative() [3/3]

void MoveRelative ( double relativePosition,
double vel,
double accel,
double decel,
double jerkPct,
double finalVel )

MoveRelative with a final velocity.

Command a relative point-to-point S-Curve motion.

Description:
MoveRelative command a relative point-to-point motion, with an S-Curve velocity profile. Axis will move relative increment distance from the currently commanded position.
S-Curve Velocity Profile
Parameters
relativePositionA relative increment, positive or negative.
velMaximum velocity, UserUnits/second.
accelMaximum acceleration , UserUnits/second/second. (peak up to 2× accel when jerkPercent = 100, see below)
decelMaximum deceleration , UserUnits/second/second. (peak up to 2× decel when jerkPercent = 100, see below)
jerkPctJerk Percent, which defines the percentage of acceleration time which is smoothed, 0.0 to 100.0 .
Note
In most cases, a servo motor has a feedback device mounted. Depending on feedback device resolution, one motor shaft rotation will produce fixed value of counts. Example: motor has a resolution of 8192 counts. This means if 8192 is entered as distance to move, motor will move single revolution. User can implement UserUnitsSet() to change to a different unit (ex: mm, inches, etc) from encoder counts.
Note
Non-Blocking Execution Motion commands return instantly and do not pause code execution. Use MotionDoneWait() post-call to block execution until motion completes, or MotionDoneGet() to poll for completion.
Warning


Using a non-zero JerkPercent increases the maximum acceleration above the user-specified average.
If your system can’t handle the higher peak, you risk overshoot or excessive load. The relation between average acceleration and maximum acceleration is:

\[ Maximum Acceleration \;=\; \frac{accel}{1 - \bigl(jerkPercent \times 0.005\bigr)} \]

  • accel: the requested (average) acceleration value given in the MoveSCurve command.
  • jerkPercent: the percent of time with non-zero jerk (0–100) given in the MoveSCurve command.
  • Maximum Acceleration: the resulting peak commanded acceleration.

See the S-Curve Motion concept page for more information.

Warning


Using a non-zero JerkPercent increases the maximum deceleration above the user-specified average.
If your system can’t handle the higher peak, you risk overshoot or excessive load. The relation between average deceleration and maximum deceleration is:

\[ Maximum Deceleration \;=\; \frac{decel}{1 - \bigl(jerkPercent \times 0.005\bigr)} \]

  • decel: the requested (average) deceleration value given in the MoveSCurve command.
  • jerkPercent: the percent of time with non-zero jerk (0–100) given in the MoveSCurve command.
  • Maximum Deceleration: the resulting peak commanded deceleration.

See the S-Curve Motion concept page for more information.

Part of the Motion method group. See the S-Curve Motion concept page for more information.

Sample Code:
RelativeMotion
axis.MoveRelative(Constants.POSITION, Constants.VELOCITY, Constants.ACCELERATION, Constants.DECELERATION, Constants.JERK_PERCENT); // Command a relative to the current position
axis.MotionDoneWait(); // Wait for motion to finish. (the motion should take 2.5 seconds)
var cmdPositionAfterMove = axis.CommandPositionGet(); // The command position should be equal to Constants.POSITION
// Move back to the start position by moving negative relative to current position
axis.MoveRelative(-1 * Constants.POSITION, Constants.VELOCITY, Constants.ACCELERATION, Constants.DECELERATION, Constants.JERK_PERCENT);
RapidSetup:
Go to axis screen->Motion Profile box (left) to select type of motion
Go to axis screen->Motion Parameters box (right) to select values for motion
Motion Scope:
Relative move profile shown below:
See also
Point to Point, MoveSCurve, MoveTrapezoidal, MoveVelocity, MovePT, MovePVT
Parameters
finalVelVelocity the Axis will follow after completing the rest of the profile.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.