How User Programs Work www.emersonct.com 71
GoTo RunIndex2: 'Go to RunIndex2 label
EndIf
RunIndex1:
Index.1.Initiate
GoTo EndLoop:
RunIndex2:
Index.2.Initiate
EndLoop:
Wait For Index.AnyCommandComplete
Loop
See the Label: instruction for additional examples.
8.4.2 Motion Instructions
8.4.2.1 Dwell For Time
This motion instruction is used to pause program execution
for a very precise amount of time.
It operates as a motion instruction - similar to an index,
home or jog. Like all other motion instructions it will not
start until the preceding motion instruction has completed.
A "Wait for Index.AnyCommandComplete" is not required.
Likewise, any subsequent motion commands will wait and
start after the dwell has completed. The total time required
to complete a sequence of indexes and "Dwell For Time"
instructions is extremely repeatable.
The "Dwell For Time" instruction is in units of seconds with
a resolution of milliseconds (0.000 seconds).
If you want to pause the program while an index is
executing you should use a "Wait for Time" instruction
described below.
A comment is automatically inserted after the "Dwell For
Time" instruction that notes that the dwell time is in units of
seconds. The comment starts with the ' character.
Example:
Do While (TRUE)
Index.0.Initiate'Incremetal,Dist=25.
000in,Vel=25in/s
Dwell For Time 1.000 'Seconds
Loop
Example:
Do While (TRUE)
Index.0.Initiate
Dwell For Time 1.000 'Seconds
Index.1.Initiate
Dwell For Time 0.500 'Seconds
Loop
8.4.2.2 Dwell For MasterDist
This motion instruction is used to pause program execution
for a precise change in distance on the master encoder
signal. This is typically used in synchronized motion
applications. This dwell does not begin until all other
motion has completed. When the dwell begins, program
flow will wait until the specified master distance has
passed. The units for the dwell value are specified in the
Master Units View.
Example:
Do While (TRUE)
Index.0.Initiate
Dwell For MasterDist 12.00 'MstrInch
Loop
8.4.2.3 Index.Initiate
This program instruction is used to initiate a single index.
The index is preset to include an acceleration up to speed,
a run at speed and a deceleration to a stop.
A comment is automatically inserted after the index
instruction which shows key data about the particular
index. The comment starts with the apostrophe 'character.
A "Wait For Index.AnyCommandComplete" instruction is
also automatically inserted after each index. This insures
that the index has completed before the program continues
on to the next line of code. It is also possible make the
program wait until the index is complete and the following
error is less than a specified amount. This is accomplished
by changing the "Wait For Index.AnyCommandComplete"
to "Wait For InPosn". The In Position Window is configured
in the Position view.
Example:
Index.0.Initiate
Wait For Index.AnyCommandComplete
Example:
Index.37.Initiate
Wait For InPosn
8.4.2.4 Index.CompoundInitiate
This program instruction is used to initiate an index which
has no deceleration ramp. The index accelerates or
decelerates towards the next index velocity using the next
index acceleration ramp. The index will finish at velocity.
The program then moves on to the next index. It smoothly
transitions into the second index without stopping. The
second index then ramps to its pre-configured velocity.
Multiple indexes can be "compounded" to create a
complex velocity profile. The last index in a complex profile
must have a deceleration ramp.
This is accomplished using a standard Index.Initiate rather
than a Index.CompoundInitiate.
The final index will honor the deceleration ramp. If the last
index is not long enough to perform a decel ramp at the
programmed rate, the motor will backup at the end of the
last index.
Each index can be used in multiple places as both a
standard index with a deceleration ramp, and a compound
index without a deceleration ramp. The program instruction