Motion Control Instruction Set 2017-09-27T14:34:50+00:00
Series 5300 Motion Control system

Motion Control Commands in QuickBuilder

Motion control is programmed identically whether you are using IncentivePLC and IncentiveECAT on an embedded PC, or the dedicated Series 5300 Programmable Automation Controllers.  Motion Sequence Blocks (MSBs) are programs formed using the commands below, which are then downloaded into the IncentiveECAT program or Series 5300 motion control board for local execution.  This ensures optimum performance by keeping the motion program execution independent of the main or supervisory control, while still allowing for intensive intercommunication between program components.

MSBs are written using the QuickBuilder Programming Environment as part of your overall control program.  They may be triggered by events in your main program, or written to sense and respond to events local to the motion subsystem.  For detailed information on programming MSBs, including full descriptions of each of these commands, download the QuickBuilder Reference Guide.

Download the QuickBuilder Reference Guide (PDF)

Program Flow

MSB mode
{ and start MSB mode }
condition goto label
asynchevent asynchhandler

Simple Motion

move to position { using acc, dec }
move at maxvelocity to position { using acc, dec }
move trap to position using rate
move in time to position { mode n }
move for displacement { using acc, dec }
move at maxvelocity for displacement { using acc, dec }
move trap for displacement using rate
move in time for displacement { mode n }
wait for in position
new endposition position using rate
new endposition relative displacement using rate
slew begin
slew at velocity in time
slew for displacement
slew end


gear at numerator : denominator
gear at numerator : denominator in counts
gear at numerator : denominator in counts after acounts
gear for slavecounts in mastercounts
gear for slavecounts in mastercounts after acounts
offset slave by slavecounts in time
wait master counts
wait slave counts
wait source within start, end
wait source outside start, end
zero masslv counters

Virtual Master

move master at rate for limit { using ramp }

Segmented Move

segmove table clear
segmove table accdec to vel using rate
segmove table accdec to vel for displacement
segmove table slew until position
segmove table stop at position using rate
segmove table start relative


table n continue
n precompute
n start imethod tscale, rpscale, repeatcount
n start imethod cam mpscale, spscale, repeatcount
stop table

Loading Tables

table n clear
n addpair xexpression, yexpression
n addseries pairs
n copy from rowOffset1 to table m rowOffset2 numRows
n loadoffset rowOffsetFile, numPairs, rowOffsetTable
n loadseries source fileNumber

Position and Capture

set capture transition of input input { gate input gateinput gatestate }
set capwin range start, end using reference { arm }
wait capture { if limit of limit goto limitlabel }


stop { slewed using rate }
drive enable
drive disable
delay time ms
variable = expression
zero feedback position
zero target position
zero following error
if condition then variable = expression
wait until condition


setout outputlist
clrout outputlist
pulse output for n
pls output using reference definitions
pls output state
wait for transition of input { or condition }
generate output output rate freq
generate n steps on pair
variable =
ctr[n] = expression
ctr[n] = offset
generate alternate mode


set common bit number state
set common var
number value
set loopperiod
set mode positioning
set mode tracking
set timeout
set target position
set feedback position
set target position counts
set feedback position counts
set simulated feedback on/off
offset position
offset position counts
set master
mode { using global }

Common Bits and Variables

set common bit number state
wait common bit
number state
set common var
number value
wait common var
number range

Host Register

host read variable, register {, row, column}
host write variable, register {, row, column}

Download our
Product Guide