User's Manual

PMAC User Manual
Writing Programs for PMAC 179
Feedrate Axes
Any axes used in the circular interpolation are automatically feedrate axes for circular moves, even if they
were not so specified in a FRAX command. Other axes may or may not be feedrate axes. Any non-
feedrate axes commanded to move in the same move command will be linearly interpolated so as to finish
in the same time. This permits easy helical interpolation. See the Feedrate Axes section in this manual.
Circle Radius Errors
If the endpoint is not the same distance from the center as the starting point, the change in radius is taken up
smoothly over the course of the move. This allows smooth compensation for round off errors. For circles
using the Radius center specification (the R format as opposed to I, J, K format) each coordinate system
has an I-variable (Ix96) that determines the limit in distance difference for which this compensation will be
done. Above this limit, a run-time error will be generated and the program will stop.
This limit helps distinguish between round off errors and major mistakes. Regardless of this limit, if the
distance from starting point to center or from ending point to center is zero, an error will be generated and
the program will stop. If the specified vector does not lie in the plane of interpolation, the projection of
that vector into the plane is used.
Move Segmentation
PMAC computes circular trajectories through a rapid and continuous cubic spline technique. The spline
segments are of a time specified by I13 (in units of milliseconds). Typically, a value of 5 to 10
milliseconds will be used, depending on the number of axes being controlled by the card. When I13 is
greater than zero, all blended moves (linear and circular) are computed through this ongoing cubic spline
technique. If I13 is zero, linear moves are not computed using this spline technique, and circular moves
are not permitted (if a circular move is requested, it will be done as a linear move). The difference in the
actual performance of linear and transition-point moves between I13=0 mode and I13>0 mode is virtually
imperceptible, unless the feature sizes of the moves are in the same range as the I13 time.
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 axis states are specified 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, specify the end position or distance, the end velocity, and
the piece time.
Mode Statement
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).
Move Statements
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.