Delta Tau GEO BRICK LV User Manual

Page of 440
 
Turbo PMAC User Manual 
312
 
Writing and Executing Motion Programs 
If the algorithm, while looking ahead in the programmed trajectory, determines that any motor in the 
coordinate system is being asked to violate its acceleration limit, it will slow down the trajectory at that 
point just enough so that no limit is violated.  It will then work backwards through the buffered trajectory 
segments to create a controlled deceleration along the path to this limited speed in the minimum time that 
does not violate any motor’s Ixx17 acceleration constraint. 
Calculating the Segmentation Time 
Turbo PMAC’s lookahead function operates on intermediate motion segments calculated from the 
programmed trajectory.  An intermediate point for each motor is computed once per segment from the 
programmed path, and then a fine interpolation using a cubic spline to join these segments is executed at 
the servo update rate.  Therefore, the user settable segmentation time is an important parameter for 
optimization of the lookahead function. 
Variable Isx13 for each Coordinate System x defines the time for each intermediate segment in the 
programmed trajectory, in milliseconds, before it is possibly extended by the lookahead function.  Isx13 
is an integer value; if a non-integer value is sent, Turbo PMAC will round to the next integer.  If Isx13 is 
set to 0, the coordinate system is not in segmentation mode; no intermediate segments are calculated, and 
the lookahead function cannot be enabled. 
Several issues must be addressed in setting the Isx13 segmentation time.  These include its relationship to 
the maximum block rate, the small interpolation errors it introduces, and its effect on the calculation load 
of the Turbo PMAC.  Each of these is addressed in turn, below. 
Block Rate Relationship 
In most applications, the Isx13 segmentation time will be set so that it is less than or equal to the 
minimum block (programmed move) time.  Put another way, usually the segmentation rate defined by 
Isx13 is set greater than or equal to the maximum block rate.  For example, if a maximum block rate of 
500 blocks per second is desired, the minimum block time is 2 milliseconds, and Isx13 is set to a value no 
greater than 2. 
This relationship holds because blocks of a smaller time than the segmentation time are skipped over as 
Turbo PMAC looks for the next segment point.  While this does not cause any errors, there is no real 
point in putting these programmed points in the motion program if the controller is going to skip over 
them.  However, some people inherit old motion programs with points closer together than is actually 
required; these users may have reason to set their segmentation time larger than their minimum block 
time. 
Note that the programmed acceleration time sets a limit on the maximum block rate.  The move time for a 
programmed block, even before lookahead, is not permitted to be less than the programmed acceleration 
time.  The programmed acceleration time is the larger of the TA time (TA = Isx87 by default) and twice 
the TS time (TS = Isx88 by default).  In high-block-rate lookahead applications, the TA time typically is 
set equal to the minimum desired block time, and the TS time typically is set to (because it squares up 
corners). 
Interpolation Errors 
The cubic-spline interpolation technique that Turbo PMAC uses to connect the intermediate segment 
points is very accurate, but it does create small errors.  These errors can be calculated as: 
R
6
2
T
2
V
Error
=
 
where V is the vector velocity along the path, T is the segmentation time (watch the units!), and R is the 
local radius of curvature of the path.  For example, if the speed is 100 mm/sec (~4 in/sec), the 
segmentation time is 0.01 sec (Isx13 = 10 msec), and the minimum radius at this speed is 50 mm (~2 in), 
then the worst-case interpolation error can be calculated as: