Concatenation of Movements

From SoftMC-Wiki
Jump to: navigation, search
Language: English  • 中文(简体)‎


Using ControlStudio, two motions can be "glued" together using a non-zero final velocity value. This method is called concatenation. It is a basic way of blending. Each motion is fully executed according to its interpolation specification, as opposed to blending (CP, SP or AI) where the path is modified to fit to the motion constraints.

Issuing Concatenation

Depending if the given motion element is a group/axis or a robot, the following final-velocity properties are used:

Special Issues


  • When specifying final velocity, it is important to note that the actual final velocity can differ. The system motion profiler tries to generate the best (fastest) motion profile under the given limitations. The actual final velocity will depend on the initial velocity of the movement, movement length, and all the motion limitations (e.g., acceleration/deceleration max, jerk max).
  • If a series of concatenated motions is issued and the last one starts with such a high velocity that the movement cannot be stopped at the end, an AUTOMATIC BRAKING error will be issued.
  • If the final velocity is too high, the highest achievable final velocity will be reached instead.


Discretization is a phenomenon occurring in motion-concatenation. A movement that ends with a non-zero final velocity can never end exactly at the last motion sample. Since a motion profile generation is done in every system sample at a specified sample rate, the last sample will never be exact. In other words:

The overshoot will be transferred to the next movement as its new initial position. In transitions between circles and lines, the appropriate projection-factor will be taken into account.

The following example shows two movements (to A and then to B):

MOVE A vcruise = 100 vfinal = 100
MOVE B vcruise = 100

Note that the second motion will start from a point that is little bit further from the point A.



In case of motion concatenation and PLS, the second movement will miss the PLS set at 0% as 0% actually never happens.