User Manual  Chapter 7 
GFK-1742F  Jan 2020 
 
Programmed Motion  172 
7.2  Multi-Axis Motion Programs and Subroutines 
The term multi-axis is specified in the definition statement (on the first line) of a program or 
subroutine, for example: PROGRAM 2 MULTI-AXIS, or SUBROUTINE 7 MULTI-AXIS. Axis 1 and 
Axis 2 are the only two axis numbers permitted in a multi-axis program or subroutine. Both 
axes  must  be  home  referenced  and  meet  the  remaining  prerequisites  (see  the  section 
“Prerequisites for Programmed Motion” on page 173) before a program can be executed. A 
multi-axis  motion  program  may CALL  only  multi-axis  subroutines.  One  motion  program 
instruction,  SYNC  Block,  is  available  only  in  a  multi-axis  motion  program  or  subroutine. 
Subroutine  “nesting”  limitations  are  the  same  as  for  a  single-axis  motion  program.  In  a 
multi-axis program, there are two categories of moves: 1-Axis moves, and 2-Axis moves. 
1-Axis moves: When two consecutive 1-Axis moves are programmed, the second move will 
begin execution within 2 milliseconds after the first move finishes. 
2-Axis moves: A 2-Axis move is programmed with three consecutive blocks. The first of the 
three blocks must contain the SYNC Block command. The next two blocks contain the move 
commands, one for Axis 1, and one for Axis 2. When the SYNC Block command is executed, 
the two moves will be started “together” (within 2 milliseconds). Note that only the start of 
the moves is synchronized. 
More  information  about  multi-axis  programming,  program  block  structure,  flow  control 
(JUMP), and the SYNC Block command, is provided later in this chapter. 
7.3  Motion Program Command Types 
The motion program commands are grouped into four categories: 
Type 1 Commands 
CALL (Subroutine) JUMP 
Type 2 Commands 
Block number 
SYNC (Block Synchronization) 
LOAD (Parameter) 
ACCEL (Acceleration) 
VELOC (Velocity) 
Type 3 Commands 
PMOVE (Positioning Move) 
CMOVE (Continuous Move) 
DWELL 
WAIT