User`s manual

5.0 - Motion Programs
Page - 42
5.2 - Coordinate Systems
A coordinate system in PMAC is a grouping of one or more motors for the purpose of synchronizing movements. A
coordinate system (even with only one motor) can run a motion program; a motor cannot. PMAC can have up to 8
coordinate systems, addressed as &1 to &8, in a very flexible fashion (e.g. 8 coordinate systems of 1 motor each, 1
coordinate system of 8 motors, 4 coordinate systems of two motors each, etc.).
In general, if you want certain motors to move in a coordinated fashion, put them in the same coordinate system. If you
want them to move independently of each other, put them in separate coordinate systems. Different coordinate systems can
run separate programs at different times (including overlapping times), or even run the same program at different (or
overlapping) times.
A coordinate system must first be established by assigning axes to motors in 'Axis Definition Statements'. A coordinate
system must have at least one motor assigned to an axis within that system, or it cannot run a motion program, even non-
motion parts of it. When a program is written for a coordinate system, if simultaneous motions are desired of multiple
motors, their move commands are simply put on the same line, and the moves will be coordinated.
5.2.1 - Axis definitions
An axis is an element of a coordinate system. It is similar to a motor, but not the same thing. An axis is referred to by letter.
There can be up to 8 axes in a coordinate system, selected from X, Y, Z, A, B, C, U, V, and W. An axis is defined by
assigning it to a motor with a scaling factor and an offset (X, Y, and Z may be defined as linear combinations of three
motors, as may U, V, and W). The variables associated with an axis are scaled floating-point values.
In the vast majority of cases, there will be a one-to-one correspondence between motors and axes. That is, a single motor is
assigned to a single axis in a coordinate system. Even when this is the case, however, the matching motor and axis are not
completely synonymous. The axis is scaled into engineering units, and deals only with commanded positions. Except for
the PMATCH function, calculations go only from axis commanded positions to motor commanded positions, not the other
way around.
More than one motor may be assigned to the same axis in a coordinate system. This is common in gantry systems, where
motors on opposite ends of the cross-piece are always trying to do the same movement. By assigning multiple motors to the
same axis, a single programmed axis move in a program causes identical commanded moves in multiple motors. This is
commonly done with two motors, but up to eight motors have been used in this manner with PMAC. Remember that the
motors still have independent servo loops, and that the actual motor positions will not necessarily be exactly the same.
An axis in a coordinate system can have no motors attached to it (a "phantom" axis), in which case programmed moves for
that axis cause no movement, although the fact that a move was programmed for that axis can affect the moves of other axes
and motors. For instance, if sinusoidal profiles are desired on a single axis, the easiest way to do this is to have a second,
"phantom" axis and program circularly interpolated moves.
5.2.2 - Axis Definition Statements
A coordinate system is established by using axis definition statements. An axis is defined by matching a motor (which is
numbered) to one or more axes (which are specified by letter).
The simplest axis definition statement is something like #1->X. This simply assigns motor #1 to the X axis of the
currently addressed coordinate system. When an X axis move is executed in this coordinate system, motor #1 will make the
move. The axis definition statement also defines the scaling of the axis' user units. For instance, #1->10000X also
matches motor #1 to the X axis, but this statement sets 10,000 encoder counts to one X-axis user unit (e.g. inches or
centimeters). This scaling feature is almost universally used. Once the scaling has been defined in this statement, the user
can program the axis in engineering units without ever needing to deal with the scaling again.
Permitted Axis Names: X,Y,Z,U,V,W,A,B,C
X,Y,Z: Traditionally Main Linear Axes
- Matrix Axis Definition
- Matrix Axis Transformation
- Circular Interpolation
- Cutter Radius Compensation
A,B,C: Traditionally Rotary Axes
(A rotates about X, B about Y, C about Z)
- Position Rollover (Ix27)
U,V,W: Traditionally Secondary Linear Axes
- Matrix Axis Definition