Delta Tau GEO BRICK LV User Manual
Turbo PMAC User Manual
Writing and Executing Motion Programs
339
How PMAC Executes a Motion Program
It can be important to know how Turbo PMAC works its way through a motion program. A motion
program differs fundamentally from a typical high-level computer program in that it has statements
(moves, DWELLs, and DELAYs) that take time; there is an important difference between the calculation
time and the execution time.
program differs fundamentally from a typical high-level computer program in that it has statements
(moves, DWELLs, and DELAYs) that take time; there is an important difference between the calculation
time and the execution time.
Basically, a Turbo PMAC program exists to pass data to the trajectory generator routines that compute the
series of commanded positions for the motors every servo cycle. The motion program must be working
ahead of the actual commanded move to keep the trajectory generators fed with data. If the program fails
to keep ahead, and the time for the next move comes without the proper data in place for the trajectory
generators, Turbo PMAC will abort the program and bring all motors in the coordinate system to a stop.
series of commanded positions for the motors every servo cycle. The motion program must be working
ahead of the actual commanded move to keep the trajectory generators fed with data. If the program fails
to keep ahead, and the time for the next move comes without the proper data in place for the trajectory
generators, Turbo PMAC will abort the program and bring all motors in the coordinate system to a stop.
Calculating Ahead
PMAC processes program lines either one or two moves (including DWELLs and DELAYs) ahead.
Calculating one move ahead is necessary in order to be able to blend moves together; calculating a second
move ahead is necessary if proper acceleration and velocity limiting is to be done, or a three-point spline
is to be calculated (SPLINE mode). For linear blended moves with Isx13 (move segmentation time)
equal to zero (disabled), Turbo PMAC calculates two moves ahead, because the velocity and acceleration
limits are enabled here. With the special lookahead buffer enabled, Turbo PMAC looks enough moves
ahead in a continuous sequence to stay Isx20 segments ahead. In all other cases, Turbo PMAC is
calculating one move ahead.
Calculating one move ahead is necessary in order to be able to blend moves together; calculating a second
move ahead is necessary if proper acceleration and velocity limiting is to be done, or a three-point spline
is to be calculated (SPLINE mode). For linear blended moves with Isx13 (move segmentation time)
equal to zero (disabled), Turbo PMAC calculates two moves ahead, because the velocity and acceleration
limits are enabled here. With the special lookahead buffer enabled, Turbo PMAC looks enough moves
ahead in a continuous sequence to stay Isx20 segments ahead. In all other cases, Turbo PMAC is
calculating one move ahead.
Starting Calculations
Upon the command to start the program, Turbo PMAC will calculate program statements down to and
including the first or second move statement, depending on the mode of the move and the setting of
Isx13. This can include multiple modal statements, calculation statements, and logical control statements.
including the first or second move statement, depending on the mode of the move and the setting of
Isx13. This can include multiple modal statements, calculation statements, and logical control statements.
The programmed moves will not actually start executing until I11 milliseconds have passed, even if the
calculations were finished earlier. This permits proper synchronization between cards, so one will not
start before the other. If I11 is set to zero, the first move will start as soon as the calculations have
finished.
calculations were finished earlier. This permits proper synchronization between cards, so one will not
start before the other. If I11 is set to zero, the first move will start as soon as the calculations have
finished.