User`s manual

5.0 - Motion Programs
Page - 52
5.8 - Splined Moves
PMAC can perform cubic splines (cubic in terms of the position vs time equations) to blend together a series of points on an
axis. Splining is particularly suited to "odd" (non-cartesian) geometries, such as radial tables and rotary-axis robots, where
there are odd axis profile shapes even for regular "tip" movements.
In SPLINE1 mode, a long move is split into equal-time segments, each of TA time. Each axis is given a destination
position in the motion program for each segment with a normal move command line like X1000Y2000. Looking at the
move command before this and the move command after this, PMAC creates a cubic position-vs-time curve for each axis
so that there is no sudden change of either velocity or acceleration at the segment boundaries. The commanded position at
the segment boundary may be "relaxed" slightly to meet the velocity and acceleration constraints.
PMAC can only work with integer (millisecond) values for the TA segment times. If a non-integer value is specified for the
TA time, PMAC will automatically round it to the nearest integer. It will not report an error. This rounding will change the
speeds and times for the trajectory.
At the beginning and end of a series of splined moves, PMAC automatically adds a zero-distance segment of TA time for
each axis, and performs the spline between this segment and the adjacent one. This results in an S-curve acceleration to and
from a stop.
PMAC’s SPLINE2 mode is very similar to the SPLINE1 mode, except that the requirement that the TA spline segment
time remain constant is removed.
5.9 - PVT-Mode Moves
For the user who desires more direct control over the trajectory profile, PMAC offers Position-Velocity-Time (PVT) mode
moves. In these moves, the user specifies the axis states directly at the transitions between moves (unlike in blended
moves). This requires more calculation by the host, but allows tighter control of the profile shape. For each piece of a
move, the user specifies the end position or distance, the end velocity, and the piece time.
PMAC is put in this mode with the program statement PVT{data}, where {data} is a constant, variable, or expression,
representing the piece time in milliseconds. This value should be an integer; if it is not, PMAC will round it to the nearest
integer. The piece time may be changed between pieces, either with another PVT{data} statement, or with a TA{data}
statement. The program is taken out of this mode with another move mode statement (e.g. LINEAR, RAPID, CIRCLE,
SPLINE).
A PVT mode move is specified for each axis to be moved with a statement of the form {axis}{data}:{data}, where
{axis} is a letter specifying the axis, the first {data} is a value specifying the end position or the piece distance,
depending on whether the axis is in absolute or incremental mode, respectively, and the second {data} is a value
representing the ending velocity.
The units for position or distance are the user length or angle units for the axis, as set in the Axis Definition statement. The
units for velocity are defined as length units divided by time units, where the length units are the same as those for position
or distance, and the time units are defined by variable Ix90 for the coordinate system (feedrate time units). The velocity
specified for an axis is a signed quantity.
From the specified parameters for the move piece, and the beginning position and velocity (from the end of the previous
piece), PMAC computes the only third-order position trajectory path to meet the constraints. This results in linearly
changing acceleration, a parabolic velocity profile, and a cubic position profile for the piece.
Since the user can specify (directly or indirectly) a non-zero end velocity for the move, it is not a good idea to step through a
program of transition-point moves, and great care must be exercised in downloading these moves in real time. With the use
of the BLOCKSTART and BLOCKSTOP statements surrounding a series of PVT moves, the last of which has a zero end
velocity, it is possible to use a Step command to execute only part of a program.
The PVT mode is the most useful for creating arbitrary trajectory profiles. It provides a "building block" approach to
putting together parabolic velocity segments to create whatever overall profile is desired. The diagram PVT Segment
Shapes, below, shows common velocity segment profiles. PVT mode can create any profile that any other move mode can.
PVT mode provides excellent contouring capability, because it takes the interpolated commanded path exactly through the
programmed points. It creates a path known as a "Hermite Spline". LINEAR and SPLINE modes are 2nd and 3rd-order B-
splines, respectively, which pass to the inside of programmed points. Compared to PMAC's SPLINE mode, PVT produces
a more accurate profile.