Delta Tau GEO BRICK LV ユーザーズマニュアル
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.
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).
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:
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:
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: