Fast Blending Override

FastBlending is the default interpolation override type.

The FastBlending interpolation override will decelerate and stop the motion of the current interpolation and at the same time start executing the override interpolation. The deceleration stop motion and the override interpolation motion are blended to calculate the position command of the axis.

If the current interpolation and the override interpolation have the same profile parameters, the acceleration of the override interpolation will coincide with the deceleration of the stop motion, and the axes will smoothly transition to the override interpolation without reducing the velocity.

This interpolation override type is shown in the following figure.

../_images/WMXDOC_FUNC_INT_OVERRIDE_image10.png

Fast Blending Override Example

The following code executes an interpolation override in the same direction as the current interpolation.

Motion::LinearIntplCommand lin;
Trigger trig;

lin.axisCount = 2;
lin.axis[0] = 0;
lin.axis[1] = 1;
        
lin.profile.type = ProfileType::Trapezoidal;
lin.profile.velocity = 10000;
lin.profile.acc = 10000;
lin.profile.dec = 10000;

lin.target[0] = 30000;
lin.target[1] = 40000;
        
wmxlib_CoreMotion->motion->StartLinearIntplPos(&lin);

lin.target[0] = 60000;
lin.target[1] = 80000;

trig.triggerType = TriggerType::RemainingDistance;
trig.triggerValue = 20000;

wmxlib_CoreMotion->motion->StartLinearIntplPos(&lin, &trig);

The following plots show the positions and velocities when the above code is executed with the FastBlending and Blending override types.

../_images/WMXDOC_FUNC_INT_OVERRIDE_image5.png

Overriding an Interpolation with a Long Remaining Time

When overriding an interpolation with the FastBlending override type, the current interpolation transitions to a stop motion. With the Blending override type, the current interpolation will run to completion. If the remaining time of the current interpolation is long, the override motion may finish faster when using the FastBlending override type.

The following code executes an interpolation override when the remaining time of the current interpolation is long.

Motion::LinearIntplCommand lin;
Trigger trig;

lin.axisCount = 2;
lin.axis[0] = 0;
lin.axis[1] = 1;
        
lin.profile.type = ProfileType::Trapezoidal;
lin.profile.velocity = 10000;
lin.profile.acc = 10000;
lin.profile.dec = 10000;

lin.target[0] = 50000;
lin.target[1] = 0;
        
wmxlib_CoreMotion->motion->StartLinearIntplPos(&lin);

lin.target[0] = 10000;
lin.target[1] = 10000;

trig.triggerType = TriggerType::CompletedDistance;
trig.triggerValue = 10000;

wmxlib_CoreMotion->motion->StartLinearIntplPos(&lin, &trig);

The following plots show the positions and velocities when the above code is executed with the FastBlending and Blending override types.

../_images/WMXDOC_FUNC_INT_OVERRIDE_image6.png

Overriding with a Short Interpolation

If the override interpolation takes less time to complete than the current interpolation, the Blending override type will delay the start of the override interpolation so that the two interpolations finish at the same time. The FastBlending override type will immediately start the stop motion for the current interpolation and execute the override interpolation, regardless of the remaining time of the current interpolation.

The following code executes an interpolation override that is is delayed when using the Blending override type.

Motion::LinearIntplCommand lin;
Trigger trig;

lin.axisCount = 2;
lin.axis[0] = 0;
lin.axis[1] = 1;
        
lin.profile.type = ProfileType::Trapezoidal;
lin.profile.velocity = 10000;
lin.profile.acc = 10000;
lin.profile.dec = 10000;

lin.target[0] = 50000;
lin.target[1] = 0;
        
wmxlib_CoreMotion->motion->StartLinearIntplPos(&lin);

lin.target[0] = 50000;
lin.target[1] = 10000;

trig.triggerType = TriggerType::CompletedDistance;
trig.triggerValue = 10000;

wmxlib_CoreMotion->motion->StartLinearIntplPos(&lin, &trig);

The following plots show the positions and velocities when the above code is executed with the FastBlending and Blending override types.

../_images/WMXDOC_FUNC_INT_OVERRIDE_image7.png

Override During Deceleration Segment

Even if the override type is FastBlending, if the override interpolation is executed while the current interpolation is in the final deceleration segment, the current interpolation will run to completion instead of transitioning to a stop motion.