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}