Delta Tau GEO BRICK LV User Manual

Page of 440
 
Turbo PMAC User Manual 
258
 
Setting Up a Coordinate System 
Rotary Axes 
A rotary axis is one that permits rollover, but cannot be assigned to combinations of motors.  A rotary axis 
must be named A, B, or C.  The rollover is technically a motor function, specified by Ixx27 for Motor xx, 
but it can only operate when the motor is assigned to a rotary axis.  Rollover permits the motor to take the 
shortest path around the rotary range, or the specified direction to the destination, when an absolute axis 
move is specified in a program. 
Vector Feedrate Axes 
A vector feedrate axis is an axis in a coordinate system that figures into the calculations of a feedrate-
specified move.  The time for a feedrate-specified move is calculated as the vector distance for the feedrate 
axes (calculated by Pythagorean theorem as the square root of the sum of the squares of the axis distances) 
divided by the feedrate itself.  If other axes are commanded to move in the same statement, they will be 
linearly interpolated over this same computed time. 
The default feedrate axes are the Cartesian axes X, Y, and Z.  This setting can be changed with the FRAX 
(feedrate axis) command.  Any axis involved in the arc of a CIRCLE-mode move is automatically a vector 
federate axis for that move, even if not explicitly declared as such. 
Conversion from Axis to Motor Position 
Technically, the conversion from axis (tool-tip) positions to motor (joint, or actuator) positions is known as 
the inverse-kinematic conversion.  Turbo PMAC automatically converts from the programmed axis 
positions (in user engineering units) to motor positions (in counts) every programmed move, or in the case 
of segmented moves, every segment of the move.   
In the case of axes defined with axis-definition statements, Turbo PMAC simply plugs the axis values into 
the equation of the definition statement, and computes the resulting motor position.  (The axis-definition 
statement is therefore an inverse-kinematic equation.)  In the case of axes defined using kinematic 
subroutines, Turbo PMAC executes the user-written inverse-kinematic subroutine to compute these (see 
the Coordinate-System Kinematic Calculation section in this manual). 
Conversion from Motor to Axis Positions 
Technically, the conversion from motor (joint, or actuator) positions to axis (tool-tip) positions is known as 
the forward-kinematic conversion.  There is only one type of calculation in which Turbo PMAC 
automatically performs these forward-kinematic calculations.  This is in the PMATCH (position-match) 
function, which converts from commanded motor positions to commanded axis positions.  This is needed 
in only a few cases. 
First, when a motion program is started with an R (run) or S (step) command, Turbo PMAC automatically 
executes a PMATCH command internally to compute the starting axis positions for the first move 
calculations.  Within a motion program, it normally assumes that the endpoint of the previous move is the 
starting point for the subsequent move, and so does not do these calculations each move.  However, when 
a program is started, it does these calculations because there is a good chance that motors may have been 
moved independently (e.g. jog moves, open-loop moves, stopping on an error condition); in other words, 
the axes does not know where the motors have gone and motor and axis positions may not match properly. 
Second, if the relationship between motor and axis positions is changed inside a motion program (e.g. 
changing position-following offset mode, directly writing to the position-bias or axis scaling registers), 
issue a PMATCH command before the next programmed move (using the CMD"PMATCH" structure).  
Otherwise, the next move will not execute properly. 
For axes defined with a simple definition statement, the PMATCH function inverts the equations contained 
in the axis-definition statements for the coordinate system, using motor commanded positions, and solves 
for axis commanded positions.  If more than one motor is assigned to the same axis (e.g. #1->10000X
#2->10000X), the commanded position of the lower-numbered motor is used in the PMATCH 
calculations.  For axes in a coordinate system with a user-written forward-kinematic subroutine (see 
below), this subroutine is executed automatically for the PMATCH function.