omron — PMAC Quick Reference

PMAC Quick Reference Guide If calculations stop on condition 1 or 2, the calculation flag is cleared and will not be set again until actual motion progresses into the next move (1) or a new RUN command is given (2). If calculations stop on conditions 3 or 4, the flag remains set, so calculations will resume at the next RTI. In these cases there is an empty (no-motion) loop, the motion program acts much like a PLC 0 during this period. If PMAC cannot finish calculating the trajectory for a move by the time execution of that move should begin, PMAC will abort the program, showing a run-time error in its status word.

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 eight coordinate systems, addressed as &1 to &8 , in a flexible fashion (e.g. eight coordinate systems of one motor each, one coordinate system of eight motors, four coordinate systems of two motors each, etc.). In general, if certain motors should move in a coordinated fashion, put them in the same coordinate system. To move them 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 be established first 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 wanted of multiple motors, their move commands are simply put on the same line and the moves will be coordinated. 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 eight 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 crosspiece 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. Commonly, this is done with two motors, but up to eight motors can be 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. 44 Motion Programs