Interruption of Movements
Interruption of single-axis movements
Single-axis movements, such as MC_MoveAbsolute
, can be interrupted at any time by other movements. This can be a movement to a different position or a change in maximum velocity, acceleration, or jerk with the same type of movement and to the same position. The interruption is implemented in such a way that there is no jump in velocity. For all quadratic ramp types, there is also no jump in the acceleration.
In specific cases, a reversal of the axis is unavoidable due to the aborted movement:
If the new target position of an
MC_MoveAbsolute
exists before the end of the current deceleration distanceIf a smaller maximum deceleration and/or a smaller maximum jerk is used for the aborted movement, which in turn extends the deceleration distance beyond the target position
If
SMC_MoveContinuousAbsolute
orSMC_MoveContinuousRelative
is used with anEndVelocity
which cannot be reached from the current axis state without reversal
When the ramp types sin² and quadratic (smooth) are used, a reversal can occur during interruption even if it does not appear to be necessary. (That is, even if the reasons listed above do not apply. See explanations below.) Then the new target position could be overtraveled, although it is not located before the old target position. This might happen even if the maximum deceleration and the maximum jerk are not changed (or even increased) and the final velocity is not changed compared to the aborted movement. In this case, the following rules apply:
For trapezoid and quadratic ramp types, there is never any overtraveling.
For the sin² ramp type, there is no overtraveling when the new target position and the limiting values for acceleration and deceleration are equal to the old values.
In all other cases, there may be overtraveling with sin² and quadratic (smooth) ramp types.
Explanation for the sin² ramp type: The aborted movement starts with a new sin² velocity ramp, which means that the acceleration starts at 0 and gradually increases or decreases. If the axis has an acceleration not equal to 0 at the time of aborting, then the acceleration jumps to 0 at the start of the sin² velocity ramp. This can lead to overtraveling because increasing or decreasing the acceleration takes time.
Explanation for the quadratic (smoothed) ramp type: The same explanation applies as for sin², but for the jerk instead of the acceleration.
Note about override
Based on the above explanations, using MC_SetOverride
with the sin² and quadratic (smoothed) ramp type is not recommended
Interruption during the deceleration phase
Single-axis movements, such as MC_MoveAbsolute
, can be interrupted at any time by other movements. This can be a movement to another position or a change of velocity or acceleration. Basically, the movement is interrupted by another one in such a way that there is no jump in the velocity. For all ramp types (except trapezoid), there is also no jump in the acceleration. When the ramp types sin² and quadratic (smooth) are used, a reversal can occur during interruption and does not appear necessary at first (see explanation). Then the new target position is overtraveled, although it is not located before the old target position. This can occur in the following situations:
If a smaller maximum deceleration value is set for the canceling movement than before
In this case, the available deceleration distance to the new target position is possibly too short (for all ramp types).
Accordingly, for quadratic and quadratic (smooth) ramp types when a lower maximum value is set for jerk
However, if these maximum values remain unchanged (or increase), then the following rules apply:
For trapezoid and quadratic ramp types, there is never any overtraveling.
For the sin² ramp type, there is no overtraveling when the new target position and the limiting values for acceleration and deceleration are equal to the old values.
In all other cases, there may be overtraveling with sin² and quadratic (smooth) ramp types.
Comments about overtraveling the target position (ramp type: sin²)
When single-axis motion is started, the motion profile is computed first. This means that the computation of the phases, in which motion is accelerated, run at constant velocity, or decelerates. For the sin² ramp type, a sin² curve is laid over the acceleration/deceleration phase. The sin² curve has the property of having the acceleration equal to zero before and after, therefore allowing for constant transition to other phases.
A special behavior results when a motion is interrupted during a sin² curve. If the current acceleration does not equal zero, then a sin² curve cannot be started because it is required to start with acceleration 0.
Because the sin² curve profile guarantees a constant acceleration curve to the user, the trajectory generator therefore ramps the acceleration value down to zero. It uses the jerk input of the function block. If this value is zero, then the jerk value set in the controller configuration (fRampJerk) will be used.
The following chart shows the interruption behavior: The signals of position, velocity, acceleration, and from Execute
of the interrupted block are shown from top to bottom. Beginning with the rising edge of Execute
, the acceleration is reduced linearly to zero, before a new sin² profile is connected (phase between the vertical tick marks).

Tip
If the jerk value selection is too low as related to the acceleration, then this phase can be too long and the block may lead to an apparently uncontrolled run. The jerk value should be selected so that the downramping of the acceleration takes only a few milliseconds (for example, with a maximum acceleration of 10,000 u/s2 and a jerk of 1,000,000 u/s3, this phase takes 10ms at most).

A movement from position 0 to position 1 was started with a specific velocity value of 1 u/s and acceleration value 10 u/s2. Shortly before reaching the target position when the deceleration has already been set, a new motion command interrupts with a new target position of 1.01.
Due to the acceleration downramping phase immediately after starting the second motion, the axis travels a distance which means that the axis must travel beyond the target and then it has to be returned.