Delta Tau GEO BRICK LV User Manual

Page of 440
Turbo PMAC User Manual 
Writing and Executing Motion Programs
 
337
 
Rotary Motion Program Buffers 
The rotary motion program buffers allow for the downloading of program lines during the execution of 
the program and for the overwriting of already executed program lines.  This permits continuous 
execution of programs larger than PMAC’s memory space, and also real-time downloading of program 
lines. 
Defining a Rotary Buffer 
Each coordinate system can have a rotary program buffer.  To create a rotary buffer for a coordinate 
system, address that coordinate system (&n) and send the DEFINE ROT {constant} command 
where {constant} is the size of the buffer in memory words.  Each value in a program (e.g. X1250
takes one word of memory.  The buffer should be sized to allow enough room for the distance ahead of 
the execution point you wish to load.  Since most applications utilizing rotary buffers will not strain 
PMAC’s memory requirements, it is a good idea to oversize the buffer by a good margin.   
For instance, to be able to load 100 program lines ahead of the execution point in a four-axis application 
where using constant values for position (e.g. X1000 Y1200 Z1400 A1600), there should be at least 
400 words of memory in the buffer, so it would be a good idea to allot 500 or 600 words for the rotary 
buffer (e.g. DEFINE ROT 600). 
Required Buffer State for Defining 
In order for PMAC to be able to reserve room for the rotary buffer, there can be no data-gathering buffer 
and no rotary program buffer for a higher-numbered coordinate system at the time of the DEFINE ROT 
command.  Therefore, delete any data-gathering buffer first, and define the rotary buffers from high-
numbered to low-numbered.  For instance: 
DELETE GATHER 
&3 DEFINE ROT 200 
&2 DEFINE ROT 1000 
&1 DEFINE ROT 20 
Preparing to Run 
To prepare to run a rotary program in a coordinate system, use the B0 command (go to beginning of 
program zero – the rotary program) when addressing that coordinate system.  This must be done when no 
buffers are open, or it will be interpreted as a B-axis command.  Once prepared this way, the program is 
started with the R command.  This command can be given with the buffer either open or closed.  If the R 
command is given for an empty rotary buffer, the buffer will simply wait for a command to be given to it, 
and then execute that command immediately. 
Opening for Entry 
The OPEN ROT command opens all of the rotary program buffers that have been defined.  Program lines 
following this are sent to the buffer for the host-addressed coordinate system (&n).  Most users of rotary 
program buffers will have only one coordinate system, so this will not be of concern to them, but it is 
possible to switch coordinate systems on the fly and use several rotary buffers at once. 
It is important to realize that after the OPEN ROT command, PMAC is treating as many commands as 
possible as buffered commands, even if it is executing them immediately (some commands mean one 
thing as an on-line command, and another thing as a buffered command).  For instance, an I100 
command is a request for a value of I-variable 100 when buffers are closed, but it is a command to do a 
full circle with a 100-unit radius when a motion program buffer is open (the I-value is the X-axis 
component of the radial vector; since no axis positions are given, they are all assumed to be the same as 
the starting point)!