Delta Tau GEO BRICK LV User Manual
Turbo PMAC User Manual
Writing and Executing Motion Programs
333
G96 – Constant Surface Speed Mode Enable
This code sets up the programs so that the spindle is put in constant surface speed (CSS) mode. In this
mode, the spindle angular velocity is varied in real time so that its surface speed past the tool tip remains
constant. Essentially, this means that the angular velocity of the spindle is inversely proportional to the
radial distance of the tool tip from the spindle center. This distance is usually the X-axis position –
implying that the X-axis zero position is at the spindle center. Some G-code dialects allow the parts
program to create an X-axis offset with G92 R (q.v.), which defines what the radial distance is at the
current X-axis commanded position.
mode, the spindle angular velocity is varied in real time so that its surface speed past the tool tip remains
constant. Essentially, this means that the angular velocity of the spindle is inversely proportional to the
radial distance of the tool tip from the spindle center. This distance is usually the X-axis position –
implying that the X-axis zero position is at the spindle center. Some G-code dialects allow the parts
program to create an X-axis offset with G92 R (q.v.), which defines what the radial distance is at the
current X-axis commanded position.
The method suggested here for CSS mode has the spindle in a separate PMAC coordinate system from
the other axes. This allows a spindle program to be executing and reacting at a different rate from the
main parts program, yet to be ultimately controlled by the parts program through variables and flags.
This type of spindle program is explained in detail below.
the other axes. This allows a spindle program to be executing and reacting at a different rate from the
main parts program, yet to be ultimately controlled by the parts program through variables and flags.
This type of spindle program is explained in detail below.
A G96 code will carry with it a spindle surface speed S code in either feet/minute or meters/minute. This
value should be placed in a variable for the spindle program to pick up. A flag should also be set noting
which mode the spindle is in. Note that spindle mode and speed can be set independently of spindle
on/off state and direction (for which see M03, M04, M05).
A typical G96 routine using this approach would be:
value should be placed in a variable for the spindle program to pick up. A flag should also be set noting
which mode the spindle is in. Note that spindle mode and speed can be set independently of spindle
on/off state and direction (for which see M03, M04, M05).
A typical G96 routine using this approach would be:
N96000 READ(S)
; Read spindle surface speed into Q119
P96=Q119
; Store spindle speed
M96=1
; Flag to mark CSS mode
RETURN
G97 – Constant Surface Speed Disable
This code cancels spindle constant surface speed mode and puts the spindle into a constant angular
velocity mode. In this mode, the spindle speed is independent of tool radial position. With the spindle
axis in a separate coordinate system, the subroutine executing this code simply sets a variable and a flag
for that program to see. Usually, a G97 code will carry with it a spindle speed S code in RPM. If it does,
the routine picks it up and puts it into a variable. If it does not, the routine allows the spindle program to
keep its last RPM computed under G96 from surface speed and radial distance.
velocity mode. In this mode, the spindle speed is independent of tool radial position. With the spindle
axis in a separate coordinate system, the subroutine executing this code simply sets a variable and a flag
for that program to see. Usually, a G97 code will carry with it a spindle speed S code in RPM. If it does,
the routine picks it up and puts it into a variable. If it does not, the routine allows the spindle program to
keep its last RPM computed under G96 from surface speed and radial distance.
A typical G97 routine using this approach would be:
N97000
READ(S)
; Read spindle RPM into Q119
IF (M100 & 262144 > 0) P97=Q119
; Store for spindle program
M96=0
; Cancel CSS mode
Spindle Programs
Controlling the spindle axis may be done in many different ways in Turbo PMAC, depending on what the
spindle needs to do. The simplest type of spindle operation, of course, is the one in which the spindle is
simply asked to move at constant speeds for substantial periods of time in one direction or another. In
this case, there is no need to write a spindle motion program; either Turbo PMAC just puts out a voltage
proportional to speed (so the spindle is open-loop as far as Turbo PMAC is concerned), or the spindle
motor is jogged (under Turbo PMAC closed-loop control).
spindle needs to do. The simplest type of spindle operation, of course, is the one in which the spindle is
simply asked to move at constant speeds for substantial periods of time in one direction or another. In
this case, there is no need to write a spindle motion program; either Turbo PMAC just puts out a voltage
proportional to speed (so the spindle is open-loop as far as Turbo PMAC is concerned), or the spindle
motor is jogged (under Turbo PMAC closed-loop control).
Jogged Spindle
The jogged spindle motor does not need to be in any coordinate system (it must not be in the same
coordinate system as the other axes, or it cannot be jogged while a parts program is running), but it is a
good idea to put it in a different coordinate system, because motors that are not in any coordinate system
use Coordinate System 1’s time base control (feedrate override).
coordinate system as the other axes, or it cannot be jogged while a parts program is running), but it is a
good idea to put it in a different coordinate system, because motors that are not in any coordinate system
use Coordinate System 1’s time base control (feedrate override).
Spindle speed values are scaled and put into jog speed I-variables (Ix22), and the spindle on/off functions
command jog starts and stops (see M03, M04, and M05).
command jog starts and stops (see M03, M04, and M05).