Delta Tau GEO BRICK LV Manuale Utente
Turbo PMAC User Manual
316
Writing and Executing Motion Programs
First, the programmed acceleration time, which is the larger of TA or 2*TS, is the minimum move-block
time. If PMAC initially computes a smaller move time, typically as (vector-distance divided by vector-
feedrate), it will increase the time to be equal to the acceleration time, slowing the move. This check
occurs even before lookahead (which can only slow the move further), and it is an important protection
against computational overload. The acceleration time must be set low enough not to limit valid moves.
time. If PMAC initially computes a smaller move time, typically as (vector-distance divided by vector-
feedrate), it will increase the time to be equal to the acceleration time, slowing the move. This check
occurs even before lookahead (which can only slow the move further), and it is an important protection
against computational overload. The acceleration time must be set low enough not to limit valid moves.
Note:
The acceleration time may be set to 0; in this case, Turbo PMAC sets a minimum
move time of 0.5 milliseconds.
move time of 0.5 milliseconds.
Second, as longer moves are blended together, the programmed acceleration time and feedrate control the
corner size for the blending. The blended corner begins a distance of F*Ta/2 before the programmed
corner point, where F is the programmed feedrate, and Ta is either the specified acceleration time (TA) or
two times the specified S-curve time (2*TS), which ever is greater. The blended corner ends an equal
distance past the programmed corner point.
corner size for the blending. The blended corner begins a distance of F*Ta/2 before the programmed
corner point, where F is the programmed feedrate, and Ta is either the specified acceleration time (TA) or
two times the specified S-curve time (2*TS), which ever is greater. The blended corner ends an equal
distance past the programmed corner point.
If the lookahead algorithm determines that the blended corner violates the acceleration limit on one or
more motors, it will slow the speed of the path in the corner. This will make the time for the blended
corner bigger than what was specified in the program. The lookahead will also create a controlled
deceleration ramp going into the blended corner, and a controlled acceleration ramp coming out of the
corner. In this manner, the size of the rounding at a corner can be kept small without violating
acceleration constraints, and without limiting speeds far away from the corners.
more motors, it will slow the speed of the path in the corner. This will make the time for the blended
corner bigger than what was specified in the program. The lookahead will also create a controlled
deceleration ramp going into the blended corner, and a controlled acceleration ramp coming out of the
corner. In this manner, the size of the rounding at a corner can be kept small without violating
acceleration constraints, and without limiting speeds far away from the corners.
In general, the acceleration time should be set as large as it can be without either making the minimum
move time too large, or the corners too large. In high block-rate applications, the TA time is generally set
to the minimum block time, and the TS time is set to 0. In low block-rate applications, the TA and TS
times generally are set to achieve the desired corner size and shape.
move time too large, or the corners too large. In high block-rate applications, the TA time is generally set
to the minimum block time, and the TS time is set to 0. In low block-rate applications, the TA and TS
times generally are set to achieve the desired corner size and shape.
Trajectory Filter
In high block-rate applications, rough motion can result from “quantization errors” in the programmed
path. This can produce machine vibration, audible noise, and high surface roughness on cut parts. These
errors can stem from the limited numerical resolution of the programmed points, from measuring errors if
the programmed points were scanned, or both.
path. This can produce machine vibration, audible noise, and high surface roughness on cut parts. These
errors can stem from the limited numerical resolution of the programmed points, from measuring errors if
the programmed points were scanned, or both.
This behavior can be compensated with a simple filtering of the interpolated motor trajectory, using
variable Ixx40 for each Motor xx. If Ixx40 is set to a value greater than zero, the desired trajectory is
passed through a simple first-order digital low-pass filter for smoothing purposes. (If Ixx40 is set to 0.0,
this filtering is disabled.) The higher the value of Ixx40, the greater the time constant of the filter.
variable Ixx40 for each Motor xx. If Ixx40 is set to a value greater than zero, the desired trajectory is
passed through a simple first-order digital low-pass filter for smoothing purposes. (If Ixx40 is set to 0.0,
this filtering is disabled.) The higher the value of Ixx40, the greater the time constant of the filter.
The equation for the time constant T
f
of the filter as a function of the servo update time T
s
and Ixx40 is:
40
Ixx
1
s
T
*
40
Ixx
f
T
−
=
Generally, time constants of a few milliseconds are selected when the filter is used. Note that only the
desired trajectory is filtered, so servo-loop stability is not affected. However, the filtering does introduce
a very slight path error (only noticeable for very large time constants) that can be quantified according to
the following equation:
desired trajectory is filtered, so servo-loop stability is not affected. However, the filtering does introduce
a very slight path error (only noticeable for very large time constants) that can be quantified according to
the following equation:
R
2
2
f
T
2
V
Error
=
where V is the velocity, T
f
is the filter time constant, and R is the local radius of curvature of the path. For
example, with a velocity of 5000 mm/min (~200 in/min), a filter time constant of 2 msec, and a local
radius of 100 mm (~4 in), the path error would be:
radius of 100 mm (~4 in), the path error would be: