Delta Tau GEO BRICK LV User Manual

Page of 440
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. 
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. 
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 M03M04M05). 
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.   
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).   
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).   
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 M03M04, and M05).