User Manual  Chapter 7 
GFK-1742F  Jan 2020 
 
Programmed Motion  174 
7.4  Program Blocks and Motion Command 
Processing 
A program block consists of and is defined as one (and only one) Type 3 command with any 
number and combination of preceding Type 1 and 2 commands. 
A block number has two primary uses: (1) it provides a Jump-To identification (label), and 
(2) it identifies the section of the program that is currently executing via the Block Number 
%AI Status words for each axis. Type 2 commands are optional; a program block can contain 
a single Type 3 command. Type 2 commands and Conditional Jumps do not take effect until 
the DSM executes the next Type 3 command. 
While the DSM314 is executing a program block, the following program block is processed 
into a buffer command area. This buffering feature minimizes block transition time. Thus, 
parameters  used  in  a  move  must  be  loaded  before  the  move  command  that  was 
programmed two blocks earlier completes execution. In other words, in order to minimize 
the  block-to-block  transition  time,  a  new  block  is  pre-processed  during  previous  block 
execution. Program block parameters must be loaded before the preceding block begins 
execution. 
When a DSM314 is executing a multi-axis program, the program commands are scanned 
independently by each axis and only the data designated for that axis is executed. Note that 
some multi-axis program commands do not specify an axis (Block number, Jump, Call, and 
End) and therefore apply to both axes. 
A multi-axis program can contain SYNC commands to synchronize the axes at designated 
points. When the first axis reaches a SYNC block (a block containing a SYNC command), it 
will not execute the next block until the other axis has also reached the SYNC Block. Refer to 
Example 18, “Multi-axis Programming”, later in this chapter, for an example of this. 
7.5  Prerequisites for Programmed Motion 
The following conditions must be satisfied before a motion program can be initiated (for a 
multi-axis program, the conditions must be met for both axes): 
•
 
The Enable Drive %Q bit must be ON 
•
 
The Drive Enabled %I bit must be ON 
•
 
The Position Valid %I bit must be ON 
•
 
The Moving %I bit must be OFF 
•
 
The Program Active %I bit must be OFF 
•
 
The Abort All Moves %Q bit must be OFF 
•
 
The axis position must be within the configured end of travel limits (High Software 
EOT and Low Software EOT), unless the Software End of Travel mode is configured 
as Disabled 
•
 
The Overtravel Limit Switch inputs must be ON (24V input is high) if enabled 
•
 
A Force Digital Servo Velocity %AQ command must not be active