Overview

The spline function moves two to six axes along a path that is defined by a point sequence and other parameters.

Spline functions have the following characteristics:

  1. Along the entire path, the position, velocity, and acceleration of the commanded axes are continuous.

  2. Up to six axes may be commanded.

  3. Two types of splines are supported: cubic splines, which passes through every point in the point sequence, and cubic basis splines, which approach but might not pass through the specified points.

  4. Four methods for generating the velocity and acceleration profile along the spline are supported:

    • Total Time Spline: The total time to execute the entire spline motion is specified.

    • Point Time Spline: The time at which each point is passed is specified.

    • Profile Spline: The profile along the spline is specified using the Profile class.

    • Velocity Acceleration Limited Spline: The velocity and acceleration limits of each commanded axis is specified, and a profile that executes the spline motion as fast as possible while staying within those axis limits is generated.

  5. The size of the buffer memory for storing the point data can be specified by the user. With a sufficiently large buffer size, splines containing hundreds of thousands or millions of points can be executed.

Spline commands are executed by channel. There are maxSplineChannel channels available for executing spline commands. Each channel can independently execute a spline command.

Before a spline command can be executed by a spline channel, a buffer memory for storing point data must be allocated for that channel. The CreateSplineBuffer function is used to allocate the buffer memory. This function only needs to be called once after starting the engine. This function may fail if contiguous memory of the specified size could not be obtained from the system. For deterministic behavior, this function should be called during the initialization of the user application, and not immediately before using the spline channel. For additional information, see Function Calls Related to Memory Allocation.