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.

Program Flow

[label]
start
MSB mode
end
{ and start MSB mode }
abort
MSB
goto
label
if
condition goto label
on
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

Gearing

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

Spline/Cam

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

Loading Tables

table n clear
table
n addpair xexpression, yexpression
table
n addseries pairs
table
n copy from rowOffset1 to table m rowOffset2 numRows
table
n loadoffset rowOffsetFile, numPairs, rowOffsetTable
table
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 }

Utility

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

I/O

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]
ctr[n] = expression
ctr[n] = offset
generate alternate mode

Set

set common bit number state
set common var
number value
set loopperiod
value
set mode positioning
set mode tracking
set timeout
ticks
set target position
value
set feedback position
value
set target position counts
vcounts
set feedback position counts
vcounts
set simulated feedback on/off
offset position
value
offset position counts
vcounts
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