You are on page 1of 5

THE UNIDEX 500 MOTION CONTROLLER AND WINDOWS SOFTWARE

OPERATION & TECHNICAL MANUAL CHANGES FOR UPDATED SINGLE


AXIS FIRING
Section 8.2.1 (Page 8-2)
The U500 contains a set of hardware counters which can track the position of a single axis encoder channel.
It can then generate an output pulse or series of pulses at a specified number of encoder counts. The on and
off time of each output pulse and the number of pulses to be output are user programmable. The U500 also
contains two window counters and compare registers which can be used to qualif the output pulse. The
window counters can be setup to track an axis! independent of the main tracking axis.
The maximum tracking rate " encoder data rate # in single axis firing mode is $0%h&. The maximum pulse
output frequenc is '0%h&. To use the single axis firing mode! ()*+ ,$ must be set to single )-. mode
in the sstem options menu.
The sntax and arguments "Table /0$# are shown below.
Section 8.2.1 (Page 8-3)
SYNTAX:
FIRE +- STEPS XY!" distance P"#SE on,off,numpulses $N$FF A%SIN& 'IN($' (2
TRI))ER mode ARRAY index,numpoints SET mode SIN)#ET$))#E A%$RT*
T+e ,o--o.ing c+ange/a00ition/ a1e to 2e 3a0e in Ta2-e 8-2:
+rguments 1escription
230 44 .ptional. If 2 is specified! firing will occur when the tracking axis is mo5ing in the
positi5e direction onl. If 6 is specified! firing will occur when the tracking axis is
mo5ing in the negati5e direction onl. .nce the 230 argument has been specified!
firing will not occur in both positi5e and negati5e directions until a (I78
.((3+9.7T command is executed.
distance -ets the incremental distance between output pulses "firing distance# in current
programming units "8nglish! metric! program steps# or in encoder counts if the
-T8)- argument is gi5en. The distance argument is optional and must follow the axis
letter when used. The distance argument! when specified! forces an immediate load of
the tracking counter. .utput pulses will be generated incrementall at positi5e "and
negati5e# inter5als of the distance specified! unless the optional 230 argument has been
specified.
The firing distance has a maximum 5alue of /!://!;0< encoder counts and should not
be specified when using the arra mode.
)U=-8 on -pecifies the on time of each output pulse in usec. The maximum on time is >00000
usec ">00 millisec ? .> sec#. The minimum on time is .' usec. "@oteA '000 usec ? '
millisec.#
off ** .ptional. -pecifies the off time of each output pulse in usec. The default 5alue is 0.
The maximum off time is >00000 usec ">00 millisec ? .> sec#. The minimum off time
is .' usec. "@oteA '000 usec ? ' millisec.#
numpulses ** .ptional. -pecifies the number of pulses to be output. The default 5alue is '.
+77+B
index,numpoints *
.ption argument to tell U500 to use the pre5iousl downloaded arra data as
incremental firing points. The arra will be read starting at index. numpoints firing
points will be read from the arra. If numpoints is set to 0! the u500 will continue
through the table until the end.
@ote that the arra data is interpreted in encoder counts! no scaling is performed. If
this command is not specified! a fixed distance must be specified.
-I@*=8 44 -ingle mode generates a single output using the on time! off time! and number of
pulses specified b the )U=-8 argument. -ingle mode is turned off after the pulses
ha5e been output.
T.**=8 44 Toggle mode generates a continuous pulse output using the on and off times specified
b the )U=-8 argument. The (I78 .((3+9.7T commands turn toggle mode off.
4 A command onl a5ailable with software 5ersion 5.'$ or higher.
44 A command onl a5ailable with software 5ersion 5.'< or higher.
Section 8.2.1 (Page 8-4)
T+e /econ0 e5a36-e in t+i/ /ection 37/t 2e c+ange0 07e to t+e ne. /8nta5.
(I78 )U=-8 '000!'000 T.**=8 .@ C fire continuous pulse train
C pulse frequenc will be 0.5 kD&
C with a 50E dut ccle
Section 8.2.1.2 (Page 8-9)
The U500 contains two window counters that can be linked to separate axis encoders. These are specified
as window number ' and window number $. The window logic consist of a :$ bit up down counter " load0
able # and two :$ bit compare registers! one for the lower window limit and one for the upper window
limit. These are signed numbers and ha5e the same direction polarit as the axis positions displaed in the
diagnostic window. Fhen the counter 5alue is greater than or equal to the lower limit and less than or equal
to the upper limit! the counter is inside the window. This can be used to enable the tracking of the firing
axis. + second identical window function is incorporated to be used in conGunction with the first window to
create a two dimensional window.
9oth window functions are disabled b default.
T+e ,o--o.ing c+ange/a00ition/ a1e to 2e 3a0e in Ta2-e 8-4:
+rguments 1escription
+9- Fhen firing is off because the window axis is outside the window limits! the fire
counter will continue to track the specified axisHs position. Fhen the window axis is
inside the window limits! the pulse output will remain snchroni&ed to the starting
position.
This command is modal. .nce specified it will remain in effect until the FI@1.F
I@I command is gi5en or the U500 is reset. This is the default mode after reset. This
command is not the same as the )7.*7+% +9-.=UT8 command.
@oteA In +9- mode! a pulse ma not be fired at the position at which the window is
entered. This position ma be either the window low or high 5alue! depending on the
direction of motion of the tracking axis. The first example program at the end of this
section illustrates this point.
I@I Fhen firing is off because the window axis is outside the window limits! the fire
counter resets. Fhen the window axis is inside the window limits! the fire axis
counter will begin counting and pulse outputs will occur at the incremental firing
distance.
This command is modal. .nce specified it will remain in effect until the FI@1.F
+9- command is gi5en or the U500 is reset. This command is not the same as the
)7.*7+% I@I78%8@T+= command.
@oteA In I@I mode! the fire counter is not decremented at the position at which the
window is entered. This position ma be either the window low or high 5alue!
depending on the direction of motion of the tracking axis. The second example
program at the end of this section illustrates this point.
T+e g1a8 2o5 1ea0ing: T+i/ co33an0 +a/ t+e /a3e e,,ect a/ t+e FIRE IN& co33an0* /+o7-0 2e
1e3o;e0 ,1o3 t+e 2otto3 o, 6age 8-8.
T+e t.o e5a36-e 61og1a3/ on 6age 8-< /+o7-0 2e 3o0i,ie0 to 1ea0 a/ ,o--o./:
C4444444444444444444444444444444444444444444444444444444444444444444444
C Findow firing example.
C (or use with single axis firing ()*+ configuration.
C4444444444444444444444444444444444444444444444444444444444444444444444
8@+9=8 J
D.%8 J
F+ .@
FI@1.F ' -T8)- J0 =.F>000 DI*D>500 8@+9=8 C set up the window
C between >000 and >500 encoder counts!
C set window counter to 0
(I78 -T8)- J'00 )U=-8 '00 .@ C fire '00usec pulse e5er '00 steps
C inside window
A=..)
*' J'0 ('0000
C firing enabled on positi5e mo5e between >000 and >500 counts
C pulse output will occur at >'00! >$00! >:00! >>00!and >500 counts
C in +9- mode! a pulse ma not be fired at the position at which the window is entered ">000#
J0'0
C firing enabled on negati5e mo5e between >500 and >000 counts
C pulse output will occur at >>00! >:00! >$00! >'00!and >000 counts
C in +9- mode! a pulse ma not be fired at the position at which the window is entered ">500#
1F8== $000
F+ .@
*.T. A=..)
C4444444444444444444444444444444444444444444444444444444444444444444444
C This example shows how to use the pulse output of the U500 in window mode with a
C rotar axis.
C
C (or use with single axis firing ()*+ configuration.
C Fe want to generate some pulses! equall spaced! at a particular location e5er
C re5olution of the motor. The window function will be used to KgateK on the pulse
C output. The window counter will reset on e5er marker pulse! once per re5.
C This example assumes that the rotar axis has >000 counts per re5olution.
C + pulse will be generated e5er '00 encoder counts o5er '3> turn of the motor.
C4444444444444444444444444444444444444444444444444444444444444444444444
8@+9=8 J
78( J
C setup window to track on J axis.
C define window low as '000 encoder counts! high as $000 encoder counts
C reset window ' counter on e5er marker " once per re5olution #
C fire counter will reset when outside window
FI@1.F ' -T8)- J =.F '000 DI*D $000 8@+9=8 T7I* $ I@I
C generate 'msec pulse e5er '00 encoder counts
C (I78 .(( will not reset fire counter
(I78 -T8)- J'00 )U=-8 '000 +9- .@
(7 J'000 C command motion
C pulse output will occur at ''00! '$00! ':00! L! $000 counts during first re5olution
C in I@I mode! the fire counter is not decremented at the position at which the window is entered "'000#
C therefore! the fire counter ? '000 after rotar axis has mo5ed '000 counts
C fire counter ? MMM after rotar axis has mo5ed '00' counts
C fire counter ? 0 and first pulse fires after rotar axis has mo5ed ''00 counts
T+i/ e5a36-e 61og1a3 /+o7-0 2e a00e0 a,te1 t+e t.o on 6age 8-<:
C4444444444444444444444444444444444444444444444444444444444444444444444
C This example shows how to use the pulse output of the U500 with a two dimensional
C window.
C
C (or use with single axis firing ()*+ configuration.
C Fe want to mo5e the J axis '000 counts back and forth as the B axis mo5es '000
C counts in the positi5e direction in '00 count increments.
C + pulse linked to the J axis should fire e5er '00 counts whenA
C '. The B position is greater than :50 and less than ;50 and
C $. The J position is greater than $50 and less than <50
C4444444444444444444444444444444444444444444444444444444444444444444444
)7.*7+% -T8)-
8@+9=8 J! B
D.%8 J! B
F+IT .@
C setup window to track on B axis
C define window low as $50 encoder counts! high as <50 encoder counts
C fire counter will not reset when outside window
FI@1.F ' -T8)- B =.F :50 DI*D ;50 8@+9=8 +9-
C setup window to track on J axis
C define window low as $50 encoder counts! high as <50 encoder counts
C fire counter will not reset when outside window
FI@1.F $ -T8)- J =.F $50 DI*D <50 8@+9=8 +9-
C generate 'msec pulse e5er '00 encoder counts on J axis
C (I78 .(( will not reset fire counter
(I78 -T8)- J'00 )U=-8 '000 +9- .@
=..) 5 C B mo5es $00 counts each time through loop
C look 5 times so B will mo5e '000 counts total
*0 J'000 C mo5e J '000 counts in positi5e direction
C pulses will fire at :00! >00! 500! ;00! and <00
C if B position is >00! 500! or ;00
*0 B'00 C increase B '000 counts in positi5e direction
*0 J0'000 C mo5e x back to original position "0'000 counts#
C pulses will fire at <00! ;00! 500! >00! and :00
C if B position is >00! 500! or ;00
*0 B'00 C increase B '000 counts in positi5e direction
@8JT
C pulse output will occur at N"J!B#OA
C ":00!>00# ">00!>00# "500!>00# ";00!>00# "<00!>00#
C ":00!500# ">00!500# "500!500# ";00!500# "<00!500#
C ":00!;00# ">00!;00# "500!;00# ";00!;00# "<00!;00#

You might also like