Note: Descriptions are shown in the official language in which they were submitted.
''3;2~9
Cross Reference To Related Applications
The present application is related to co-pending
Canadian application Serial No. 264,391 filed October 28,
1976, now Canadian Patent No. 1,084,966, and Canadian applica-
tion Serial No. 282,868 filed July 15, 1977, now Patent No.
1,091,330, and these co-pending applications are hereby incor-
porated by reference for all purposes.
BACKGROUND OF THE INVENTION
A. Field of the Invention
The present invention relates to teach assist
apparatus and manipulator control apparatus and more particu-
larly to an arrangement wherehy the teach assist apparatus
during an initial teaching operation precomputes an optimum
path of movement at the dynamic capabilities of the manipulator
apparatus to perform a series of program work operations and
to account for projected workpiece movement. Data signals
representing the precomputed optimum movement of the manipulator
arm in terms of conveyor movement and position are recorded
into a main control memory of the manipulator apparatus and
utilized during a playback work cycle by control apparatus
to perform the work operations in minimum execution time and
at the dynamic capabilities of the manipulator arm in accordance
with dynamic conveyor movement.
B. Description of the Prior Art
Program manipulators of the type shown, for example
in Dunne et la U.S. Patent No. 3,661,051 have been employed
in the past to perform various types of operations on conveyor
carried workpieces. Thus, in co-pending application Serial
Nos. 264,391 and 282,868, arrangements are shown wherein the
programmable manipulator is taught a series of work operations
to be performed
--1--
11~9'h79
on a workpiece during an initial teaching phase with the conveyor
stationary or at various teach positions. The static teach data is
projectedto account for projected conveyor movement at
a predetermined conveyor velocity to transl'ate the static taught data.
The translated data iR then recorded. The recorded data is
utilized during a playback of the work cycle in accordance wit~
conveyor movement to control movement of the manipulator to perform
the work operations. While this ar~anqement is generally suitable
for its intended purpose, the manipulator arm movement is not'
projected on the basis of optimum execution time to perform the
taught program in minimum execution time at the maximum dynamic
capabilities of the manipulator arm.
Another conveyor tracking arrangement is disclosed
in U.S. Patent No.- 4,011, 437 which.issued to.RrE.-Hohn on March
8, 1977. In this~arrangement, the-pro-gram is taught-with a
stationary conveyor and al~ manipulator- arm positions are recordëa
without any calculations for projected conveyor motion during
pl~yback. During each playback cycle, various programs are
executed by a data processor to correct and modify the movements
of the manipulator for the motion and positions of the conveyor.
Various techniques are disclosed to compensate for the queing
delay of anticipated control signals which'are qenerated by~'the ' ' ''
program and for tracking error ~ased on past performance to
cipate further tracXing behavior. For example, tracXing appara-
tus determines the position off-set as unprogrammed~position change
from the conveyor position at which the arm positions are recorded.
~he tracking apparatus then off-sets the recorded arm positions accord-
ingly. Second apparatus determines the rate of change of conveyor motion
during a fixed time interval, interrupt time, between control
signals to determine tracking velocity error. Other apparatus
monitors the rate of the unprogrammed change to generate a
following error signal. The various following and tracking
signals are utilized to modify the recorded data with all con-
veyor tracking operation being unprogrammed in the teach mode
and entirely compensated for on-line during the playback of a
work cycle. Thus, the arrangement in Hohn does not project
and calculate optimum manipulator arm movement to minimize exe-
cution time in accordance with projected conveyor motion in an
off-line teach mode.
Another arrangement disclosed in United States Patent
No. 3,909,600 which issued to R. E. Hohn on September 30, 1975,
discloses apparatus for controlling a manipulator arm to move
at a predetermined velocity and acceleration along a predeter-
mined path in space between two predetermined points. In a teach
mvde, the manipulator arm coordinates for the two points are
recorded along with a prede~ermined path velocity. In a play-
back cycle, a data processor operating on a fixed sampling time
for use with a fixed time interval, servo interrupt control cir-
cuit calculates path movement data by determining appropriate incre-
mental positional changes to be moved in the fixed sample times.
The initial and final velocities of the movement between the two
steps is utilized along with the distance between the two points
to determine required acceleration or deceleration movement of the
arm. A number of direction numbers and incremental displacement
inter~als are calculated to define the path during playback in
real time operation of the manipulator. The span between any
required acceleration
and deceleration spans is programmed at a constant predetermined
path velocity. While this arrangement is also generally suitable
for its intended purpose, it does not precompute optimum manipulator
arm movement for minimum execution time to project arm movement
in accordance with projected conveyor motion in an o~f-line
teaching mode. The arrangement in Hohn 3,909,600 also requires a
relatively complex and high speed computer for the path computations
performed during the playback of the work cycle.
SUMMARY OF THE INVENTION
~t is therefore a principal object of the present
invention to provide a new and improved programmable manipulator
arrangement which may be employed with a moving conveyor and
wherein one or more of the above described disadvantages of the
prior art arrangements are eliminated.
It is another object of the present invention to provide
a new and improved programmable manipulator arrangement wherein
the manipulator arm is initially programmed in an off-line teaching
mode to teach a number of work operations to be performed in a
playback or work cycle on a moving workpiece; the off-line
teach assist apparatus precomputes an optimum fixed path for
manipulator arm movement on the basis of the maximum dynamic capa-
bilities of the manipulator arm to accomplish the work operations in
minimum execution time and to account for projected conveyor movement.
It is a further object of the present invention to provide
a new and improved on line manipulator control apparatus to control
; movement of a manipulator arm to execute a predetermined series of
work operations with respect to a moving workpiece from recorded, pre-
computed data; the on-line control apparatus during a replay of the
work operations reconstructing a fixed path solution of arm
_ 4 _
i~g2~9
movement as precomputed during an initial off-line teaching mode to
perform the work operations in replay in mini~um execution time and
in accordance with dynamic workpiece movement.
Briefly in accordance with one important aspect of the
present invention, teach assist apparatus is provided for a pro-
grammable manipulator arm to precompute a projected fixed path solu-
tion during an initial teaching operation. The projected fixed path
solution represents a desired series of work operations of the
manipulator arm to be performed with respect to a workpiece in
the minimum execution time while the workpiece is moving at a
projected velocity.
The teach assist apparatus computes the minimum execution
time on the basis of the maximum dynamic capabilities of the
manipulator arm being taught. The teach assist apparatus
receives input data repr~senting the positions of the arm relative
to the workpiece as the arm is moved during the inîtial teaching
operation to different positions of the stationary workpiece. The
teach positions of the arm correspond to the desired series of work
operations of the manipulator relative to the stationary workpiece.
The teach assist apparatus then formats the precomputed
path data for storage into a control memory of the programmable
manipulator. The stored data also includes projected workpiece
positions in terms of basic linear displacement units correspond-
ing to positions of the workpiece.
During an on-line playback of the series of work operations,
control apparatus is provided to reconstruct the precomputed
fixed path solution from the stored data in accordance with dynamic
movement of the workpiece. The control apparatus performs
arithmetic computations in accordance with a stored program as
determined by the data recorded in the main control memory.
~1~927~
BRIEF DESCRIPTION _ THF. DRAWINGS
The invention both as to its organi~ation and method
of operation together with further objects and advantages
thereof will best be understood by reference to the following
specification taken in connection with the accompanying drawings
in which:
Figure 1 is a diagrammatic perspective view and block
diagram representation of the off-line teach assist apparatus and
the on-line control apparatus for teaching and controlling move-
ment of a manipulator apparatus in working location alongside a
conveyor;
Figure 2 is a diagrammatic Tepresentation of the dynamic
response of a manipulator to a control signal;
Figure 3 is a diagrammatic representation of the dynamic
response of a manipulator and the corresponding control signal
as calculated~in an off-line teaching mode and generated during
an on-line, real time playback operation in accordance with the
apparatus of the present invention of Figure l;
Figures 4, 5 and 6 are diagrammatic representations of
various dynamic profiles illustrating velocity versus time relation-
ships in accordance with the apparatus of the present invention
of Figure l;
Figure 7 is a flow diagram representation of the general
operation of the off-line teach assist apparatus of Figure l;
Figure 8 is a diagrammatic perspective representation of
the manipulator apparatus of Figure 1 and illustrating calculations
performed during the off-line teaching mode by the present invention;
Z7~
Figures 9, 10 and 11 are diagrammatic representations
of the respective position, velocity, and acceleration profiles
calculated by the off-line teach assist apparatus of the present
invention;
Figures 12A and 12B are diagrammatic representations of
velocity profiles illustrating the teach assist calculations
performed by the off-line teach apparatus of the present invention;
Figures 13 and 14 are flow diagram representations of one
calculation or predict method utilized by the teach assist
apparatus of the present invention of Figure 1 in connection with
Figure 7;
Figures 15A and B when assembled as shown in Figure 15C are
a logic and block diagTam of the control circuitry of the present
invention of Figure l;
Figure 16 is a logic and block diagram representation
of portions of the control circuitry of Figure 15; and
Figure 17 is a diagrammatic representation of various
timing signals and waveforms occurring in the circuitry and
control apparatus of Figures 15 and 16.
.~
279
DESCRIPTION OF THE PREF~RRED EMBODIMENT
-
In accordance with the present invention and referring
to Figure 1, a programmable manipulator generally referred to at 10
is illustrated in a working relationship alongside a conveyor
generally referred to at 12. The manipulator apparatus 10 includes
a manipulator arm 11 that is controllable in a plurality of axes
to perform a predetermined series of work operations referred to
as a work cycle on a workpiece carried by the conveyor 12. The
work cycle, for example is a series of spot and/or seam welds
performed on a car body carried by the conveyor 12.
The manipulator arm 11 is moved in synchronism with
movement of the conveyor 12 by on-line control apparatus connected
to the manipulator 10 and generally referred to at 14. Program
data representing the predetermined work cycle in minimum execution
time as a precomputed fixed path in space is stored in a control
memory 16 of the on-line control apparatus 14. During the replay or
playback of a work cycle, the stored program data is read out of the
control memory 16 to an on-line computation and control unit 18
of the overall control apparatus 14. lhe on-line computation and
control unit 18 reconstructs the precomputed fixed path in space
from the data read out of the memory 16 and controls movement of
the manipulator arm 11 by generating position, velocity and
acceleration controls.
The program data stored in the memory 16 and representing
the predetermined work cycle is calculated during an off-line
teaching mode by off-line teach apparatus referred to generally at
30. The term off-line is utilized only to denote teaching operation
as opposed to playback work cycle OpeTatiOn. The off-line teaching
may be performed at the conveyor location or at a separate simulated
27~ c
conveyor. ~uring the off-line teaching mode, the manipulator arm 11
is moved over the series of work operations to be taught with respect
to the workpiece. Conveyor position data is generated by a conveyor
encoder 32 and manipulator arm position data is generated by
manipulator encoder apparatus.
The conveyor encoder data and the manipulator encoder
data is utilized by an off~line teach assist computer 34 of the
off-line teach apparatus 30 in accordance with a stored program to
generate data that represents a fixed path in space to achieve
io execution of the predetermined work cycle with opti~al dynamic
movement of the manipulator arm ll with respect to movement of the --
conveyor 12. The dynamic movement of the manipulator arm 11 is
characterized by the maximum dynamic capabilities and response of
the manipulator arm. -~he off-line teach assist computer 34 calculates
~-- 15 projected data that--r,epresents-real time manipulator arm-positions
and corresponding,conveyor positions accounting for projected ---
conveyor motion. Thus, the data inputted during the off-line teaching
- mode under static conditions is optimally projected into real time
on-line operation to define an optimum fixed path solution to be
executed ~y the manipulator arm in accordance with dynamic conveyor
motion and in optimal execution time. The projected data calculated
by the off-line teach assist computer 34 is then stored in the
memory 16 for use by the on-line computation and control unit 18
during an on-line playback o~ the work cycle. ~he on-line computation
and control unit 18 reconstructs the fixed path solution from the
aata read out of the memory 16 to control movement of the
manipulator arm 11 to describe the work cycle in accordance with
movement of the conveyor 12.
A data terminal 36 is provided for the control of the
off-line teach assist computer unit 34 and also to control the
~119~79
input of the conveyor positional data and the manipulator
arm positional data to the off-line teach assist computer
34. A teach gun control 38 is interconnected with the
manipulator 10 and the off-line teach apparatus 30. The
teach gun control unit 38 is utilized to control movement of
the manipulator arm 11 with respect to the workpiece and the
conveyor 12 during the teaching mode. The manipulator apparatus
10 for example is of the general type described in U.S. Patent
No. 3,661,051 and co-pending applications Serial Nos. 282,868
and 264,391 to which reference may be made for a more detailed
discussion of the teach control apparatus, manipulator apparatus
and the general form of the on-line control apparatus.
The off-line teach assist computer 34 is connected to
the conveyor encoder 32, the manipulator 10, and the associated
control apparatus 14 by an interface stage 40 for control of
the input and output of data. A conveyor tachometer 33 inputs
line speed data to the on-line control apparatus 14. The
interface stage 40 is connected to the manipulator apparatus
10 via a detachable connector 42. Thus, during t he off-
line teaching mode, the off-line teach apparatus 30 is connected
to the manipulator apparatus 10. Upon conclusion of the
teaching mode, the off-line teach apparatus 30 is disconnected
for use at another location for teaching another manipulator
apparatus 10. The off-line teach assist apparatus 30 may be
utilized to teach the same or various other work cycles.
When not in use, the off-line teach assist apparatus 30 may
be removed from the conveyor work station and placed at a
storage location.
During playback of the work cycle to be
performed on a workpiece carried by the conveyor 12,
the manipulator arm 11 is controlled by the on-line
control apparatus 14 to perform the predetermined work
cycle in real time in accordance with the precomputed
--10--
7~
data stored in the memory 16. The precomputed data is generated by
off-line teach assist computer unit 34 during the off-line teaching
mode. During an on-line playback of the work cycle, the on-line
computation and contTol unit 18 reconstructs and computes real time
position, velocity and acceleration command signals from the stored
program data to control movement of the manipulator arm 11 to
perform the predetermined work cycle with respect to a moving work-
piece on the conveyor 12 in accordance with the actual dynamic
conveyor mo~ement.
Thus, during the off-line teaching mode, the relatively
powerful off-line teach assist computer unit 34 performs pre-
computations and calculations without time restrictions. In playback,
the on-line computation and control unit 18 performs arithmetic
computations by processing the stored data at a high data rate
speed in comparison to powerful general purpose computers.
The on-line computation and control unit 18 is capable of re-
constructing the precomputed fixed solution from the stored data to
optimally control movement of the manipulator arm 11 in real time.
Thus, the on-line computation and control unit 18 is not required to
perform the complicated time consuming computations in real time
to calculate the dynamic path of the manipulator arm 11 with respect
to the moving conveyor 12.
In accordance with important aspects of the present
invention, the relatively complex computations requiring the major
portion of the compute time to define the optimum real time
dynamic path or manipulator arm trajectory are performed during a
teaching mode by the off line teach apparatus 30. The on-line real
compute ~ime to reconstruct the precomputed optimal fixed path
~7
solution of manipulator arm movement relative to and in synchronism
with the conveyor line 12 is minimized to allow execution of a work
cycle limited only by the dynamic capabilities of the manipulator
apparatus and not by the real time compute burden. If it were
attempted to perform all the necessary calculations to define
optimum dynamic manipulator arm movement during real time in the
on-line mode, the real time compute burden would necessitate either
approximate solutions and dynamic following routines that are
not optimal solutions or an expensive, complicated, extremely high
speed computer.
Considering Figure 2a, the plot 50 illustrates the approx-
imate velocity verses time response characteristic when a manipulator
arm is commanded to move from one point Pl to another point P2 in re-
sponse to a comm~nd signal 52. The command signal 52 is approximately
~ a square wave (a step function of velocity) with a sharp leading edge
; 54 that commands infinite acceleration, a maximum velocity command por-
tion 56 and a sharp trailing edge 58 commanding infinite deceleration
when the manipulator controls indicate that the commanded point P2 has
been reached. In response, the manipulator accelerates from the point
Pl at the maximum acceleration rate of the manipulator up the sloped
portion 60 of the plot 50, overshoots the maximum desirable velocity
56 at point 62, and decelerates at the maximum deceleration rate of
the manipulator down the sloped portion 64 after the command signal
52 indicates that the desired position P2 has been reached.
Thus, the manipulator arm initially lags the commanded
signal (slope 60), ~hen overshoots ~portion 62), and then lags the
command signal (slope 64). In terms of positional error and
referring now to Figure 2b, the initial lag in response at 60 of
Figure 2a
_ 12 -
~'
;~9
results in the lagging positional error portion 66 of Figure 2b.
Then, as the manipulator overshoots in velocity at 62 of Figure 2a,
the positional following error is reduced toward zero at 68 of
Figure 2b. However, the manipulator is now commanded to decelerate
instantaneously at an infinite deceleration rate as the point P2
is reached and passed. Thus, the manipulator overshoots creating
the positional error denoted at 70. The positive positional error
under 70 indicates that the manipulator has overshot or moved beyond
the commanded point P2. Accordingly, the manipulator attempts to
correct the positional overshoot. The correction of the positional
overshoot portion under 70 corresponds to the velocity response
portion 72 indicating a negative velocity with respect to the
initial forward velocity.
In terms of execution time to move from Pl to P2, the total
time referred to at ta is required to finally settle at the
commanded point P2 as measured from the start of the command at Pl-
The additional execution time ~t is the control lag time required
for the correction of the overshoot response with respect to the
optimum execution time tb.
In accordance with important aspects of the present
invention and referring now to Figure 3a, the optimum execution time
tb is achieved by controlling movement of the manipulator by a
command signal 74 precomputed in the off-line teaching mode by the
teach assist apparatus 30 and reconstructed in a real time, on-line
playback mode by the on-line control apparatus 14. The control
signal 74 is c~lculated on the basis of the maximum dynamic capabilit-
ies of the manipulator and on the basis of the desired positional move,
the distance between the points Pl and P2.
The representations in Figures 2 and 3 describe the behavior
of a single axis of the manipulator or the behavior in a single Car-
tesian coordinate axis of the manipulator arm.
- 13 -
Thus in accordance with one particular predict method, the
off-line teach assist computer 34 precomputes the real time command
signal 74 between the two taught points Pl and P2 between
which the manipulator is to be moved. The maximum dynamic
capabilities of the particular manipulator arm 11 being controlled
are identified as +a MAX corresponding to the maximum acceleration
rate of the manipulator arm 11, -a MAX corresponding to maximum arm
deceleration, and V MAX corresponding to maximum arm velocity.
The off-line teach assist computer 34 then precomputes the optimum
command signal 74 to move from point Pl to point P2 corresponding
to a fixed path solution executed in the minimum or optimal time.
The command signal 74 commands the manipulator arm 11 during a
first predetermined time interval T~ to accelerate at the maximum
acceleration +a MAX to the maximum velocity V ~AX at the end of the
time interval Tl. The command signal 74 then commands the manip-
ulator arm to move at the maximum velocity V MAX for a second pre-
determined time interval TM. At the end of the time interval TM,
the command signal 74 then commands the manipulator arm to
decelerate during a third predetermined time interval T2 at the
maximum deceleration rate -a MAX Thus, the command signal 74 is
precomputed during the off-line teaching mode to project a real
time, fixed path solution for movement between the points Pl and P2
in minimum execution time; the manipulator arm being commanded to
move at maximum dynamic characteristic throughout the entire time
interval tb.
Accordingly, the manipulator arm 11 in response to the
co~mand signal 74 is commanded to move within its dynamic capabilities
to describe a path form Pl to P2 without the overshoot and settling
time ~t of Figure 2a. Thus, the execution time tb to move from Pl
to P2 in response to the command signal 74 is less than the execution
- 14 -
time ta in response to the command signal 52 by a substantial factor
~t. The response characteristic of the manipulator arm ll is
approximately the same as the command signal 74. The small
positional error of the manipulator arm in following the command
signal 74 is depicted in Figure 3b. Thus, the small positional
error and optimal, minimum execution time to ~ove from Pl to P2 is
achieved by precomputing the command signal 74. The area under
the velocity versus time command signal 74 defines the positional
change described by the manipulator arm ~in one manipulator axis or
in one Cartesian coordinate axis) between the points Pl and P2.
The times Tl, TM and T2 are calculated by the off-line-teach assist
computer 34.
In accordance with further important aspects of the
present invention, the off-line teach assist computer 34 also pre-
computes the minimum execution to move between the two points P
and P2 on the workpiece carried by the conveyor 12 accounting
for projected conveyor motion. Thus, the off-line teach assist
computer 34 accounts for and precomputes on the basis of a move
from the point Pl to the point P2 while the point P2 is moving at
the projected conveyor velocity. This is accomplished by projecting
; the conveyor position to a point and in time corresponding to the
precomputed manipulator arm positions to traverse from Pl to P2.
Purther, the off-line teach assist computer 34 in response to input
commands from the d~ta terminal 36 precomputes the manipulator
arm movement with respect to projected conveyor motions to perform
welds at the points Pl and P2.
Thus, the off-line teach assist computer 34 precomputes
the weld tracking command signal portions 76 and 78 of the command
signal 74 to perform welds at the points Pl and P2 respectively.
- 15 -
~t
111927~ ( ~
During the on-line playback of the work cycle with respect
to the workpiece on the moving conveyor, the on-line computation
and control unit 18 reconstructs the fixed path solution from t he
data stored in the memory 16 that is precomputed by the off-line
teach assist computer 34. The on-line computation and control
unit 18 senerates position, velocity and acceleration command
signals in accordance with conveyor movement. Re~erring now to
FIGS. 4, 5 and 6, the of~-line teach assist computer 34 in a
preCerred embodiment is programmed to-calculate and precompute
fixed path solutions of optimum manipulator arm-trajectory---
with minimum execution-times.-- The optimal fixed path solutions
define the minimum execution time in terms of conveyor following
behavior to execute a predetermined work cycle. The optimization
of the execution t'ime is'~limited only by the dynamic characteristics
~~' ' 15 of the manipulator arm.- The calculation of-velocity,-acceleration
and position~along-with-dynamic~tracking'~at'a~is-:all computed
from static teach data and is performed in an off-line teaching
mode without compute time restrictions. In this way, the pre-
computation programs performed by the off-line teach assist
computer 34 may be easily modified in accordance with the desired
' . optimum accuracy to be achieved without affecting the complexity
'of the on-line computation control unit-18.- Various precompuation
and predict analyses may then be achieved by modifying the pro-
gramming of the off-line teach assist computer 34 while utilizing
25 the same on-line computation and control unit 18.
For example, in FIG. 4 the dynamic characteristic plot
. 80 of velocity versus time describes the movement of the manipulator
arm 11 in one axis as t'he arm moves between two points P 1 and P
on the moving workpiece. The velocity versus time characteristic 80
-16-
represents the optimum fixed path manipulator axis movement as pre-
computed in the off-line teaching mode in accordance with a particular
stored program and with respect to projected conveyor movement.
The velocity characteristic 80, also referred to as a 1,
velocity profile, is computed according to the stored program in
the off-line teach assist computer 34 as a short move analysis when
the distance between the two points PWl and P is within a pre-
determined short move distance. The coordinates of the initial
po,.nt PWl identified at eNl represent.any general point in a work
1~ cycle at which a weld has been completed on the workpiece. The
nearly horizontal portion 82 of the velocity profile 80 represents
the weld performed at the point.P 1 during the time portion
referred to at weld 1. Throughout a predetermined weld ti~e interval,
. the manipulator.arm welding tip.accurately tracks the movement
~~ '. 15 .,of the con,vey,or to_weld at,the point Pwl.--Th,e weld 1, step-~- -
illustrates,.the weld.tip tracking the workpiece at the tracking
velocity eNl along the nearly horizontal, velocity profile portion
82. At the end of the weld 1, step 1, the manipulator arm in
: " ' accordance with the predetermined work cycle is to traverse to a
, 20 new static point PW2 on the workpiece to perform the next designated
' weld, weld 2, identified by the profile portion 84.
:. ... .During the off-line.teaching mode,t~e manipulator 11 is
. moved in accordance with the teach gun c,ontrol 38 to the static
point P on the worXpiece. ~ext a weld 1 step is proqrammed
Wl
~y inp~tting a weld command from the teach controls 38 or the data
terminal 36 into the off-line teach assist computer 34. The off-
line tea~h assist computer 34 calculates the weld 1, step 1 data
to track the moving point P 1 of the workpiece on the conveyor 12
-17-
lll~Z79
and generates the data to define the tracking portion 82 at nearly
constant velocity 6N to complete the weld at the point P at
the calculated manipulator arm coordinates eN . The weld 1, step 1,
is computed by tracking the conveyor 12 for a predetermined number
of conveyor encoder linear displacement units referred to as LSD's
as discussed in more detail in the aforementioned application Serial
~o. 721,805. ~he weld 1, step 1 calculations are precomputed at
a projected maximum conveyor velocity V to provide a minimum
welding time at the maY~imum allowed conveyor velocity V to ensure
a sa~sfactory weld. - ' -
~ ext, the teach controls 38-are utili~ed to move the
welding tip on the manipulator arm 11 to the workpiece point P 2'
the next weld point to be performed in the predetermined work cycle.
The off-line teach assist computer 34 then computes the fixed path,
optimal''solution-in the 'off-line te'ach'ing''moa'ë t-o perform the
traverse' from point 'P ' to point P~-' accounting for projected
Wl W2
conveyor motion and in terms of a number of conveyor displacement
units, LSD's.
In accordance with the calculations to be discussed in
detail hereinafter, the off line teach assist computer 34 computes
~the minimum execution time T to move the manipulator weld tip
between the static points P and PW2 as projected into real time
and accounting for projected conveyor movement. For the short move
analysis illustrated in F~G. 4, the off-line teach assist computer
34 computes the move between the projected points P and P by
defining an acceleration step 2 for a predetermined time interval
T to the coordinates ~N , followed by a decelaration step 3
1 2
for a predetermined time interval T2 to the coordinates eN . The
-18-
~l~g~79
. (
point eN represents the projected coordinates in real time of the
point PW2. The off-line teach assist computer then computes a
weld 2, step 4, to weld and track the point P on the moving con-
W2
veyor 12. The computed weld 2, step 4, continues from eN3 to the
manipulator arm coordinates eN4 corresponding to the projected point
P 2 mcLng in real time during the time of the weld 2, step 4. The
acceleration step 2 is referred to at the velocity profile portion
90 and the deceleration step 3 is referred to at the velocity
profile portlon 92. The sum of the times Tl and T2 equals the
minimum execution time T of the traverse be~ween the projected
points PWl and P 2 moving at the conveyor velocity V .
Referring now to FIG. 8, the projected move between the
points P and P is diagrammatically illustrated in an XYZ
coordinate system in conjunction with one type of manipulator arm
~_- 15 having six controlled degrees of f~eedom or control axes. The
manipulator arm is represented by ~the vector segments h , r, h , -
h3 and h and the control axes are represented by the angles ~,
and the vector r. The angle ~ represents
rotary axis movement of the arm segments hl and r about the Z
; 2 axis of the XYZ generalized coordinate system. The angle ~
represents up-down (tilt) axis movement of the arm segments hl and
r away from the Z axis. The vector r represents-in-out
axis movement of the arm segment r to define the wrist point Q
of the manipulator system. The angle ~ represents wrist bend
axis movement of the hand segment h2 with respect to the longitudinal
axis of the arm segment r. The end of the segment h2 defines the
point R. The angle ~ represents yaw (wrist swivel) axis movement
of the hand segment h3 about the segment h2 to define the point S
at the end of the segment h . The angle represents hand
--19--
9279
' swivel axis movement of the hand segment h about the h segment.
! The hand segment h in the case of a welding manipulator is fitted
with a welding gun to define the point T at the engagement of the
welding tips of the welding gun.
In ~IG. 8, the manipulator welding gun tip, point T,
is illustrated as positioned to the point P 1 on the workpiece
carried by the conveyor 12. As discussed hereinbefore, the off-
line teaching mode may be conducted at any arbitrary conveyor
position or:positions;~ ~owever,'for simplicity and for illustrative
I0 purposes, it is assumed that the manipulator arm as shown in FIG. 8
corresponds to the precomputed projected point PWl at the projected
conveyor location in real time also as computed by the off-line
teach assist computer 34.
owever,''it'should be realized that the manipulator
~' 15 and conveyor du~ing t'h'e-off-line-teachi'n'g'mode'arë~not necessarily''' '
advanced~to''t~ëse projecte'd~positions~while teaching. ~Periodically,
~he manipulator arm and the conveyor are approximately advanced to
the projected positions for foreseeability considerations to ensure
against collision problems when teaching a work cycle on a three-
dimensional workpiece. Thus, the positioning of the manipulator arm
aDd advancement of the conveyor to the projected point P as
illustrated in FIG. 8 may-occur in the off-~ine teach mode only as
represented by the data in the off-line teach assist computer 34
as projected, precomputed coordinate data.
In any case, the point P in FIG. 8 defines the static
Wl
workpiece point PWl at the real time conveyor position D in the
program work cycle corresponding to the end of completion of the
weld 1, step 1. Thus, the vector ~ Ss between P and the next
-20-
1119~
weld point P defines a static worXpiece distance ~ S represent-
hg the distance between the points P and P . For simplicity
' Wl W2
it is assumed that the conveyor is oriented along the X coordinate
axis although it should be understood that any conveyor orientation
or shape of conveyor is contemplated by the present invention.
The vector segment defined between the points PW2 and Pw2dyn.
represents the projected movement of the workpiece point P due
~o projected conveyor displacement at maximum conveyor velocity
V d~ring the execution time T of the manipulator arm traverse
c s
between points P and Pw2; i.e. the point PW2 i5 moving along
~ S at the conveyor velocity-while the arm is moving between '
the points P and Pw~ dynamic. Th~s the vector ~ S represents
dynamic projected conveyor movement during the execution time T .
The vector segment ~ S TOTAL define,d between the points P and
P dyn. represents the-total d-istance moved ~y the manipulator arm
~_ w2
tip ~etween the points P - and--P -dy~:. ,during the execution,time T
, Wl W2 s
with projected conveyor movement.
After the off-line teach assist computer 34 computes the
minimum execution time T for the arm to traverse from point P
to point P dyn. in accordance with the optimum predict stored
program, the vector ~ s total and thus the coordinates of the
point P dyn. are co~puted. Next, the coordinate data de'fined
- by the point P dy,n., corresponding to point e~ in FIG. 4, are
converted from the XYZ coordinate system to the manipulator axis
cooridinates el through 06' for a six axis manipulator machine.
The off-line teach assist computer 34 then computes a
weld 2, step 4, to perform the weld at the point ~ to define
the coordinate point eN4 at the end of the weld 2 step, again in
-21-
~ , .
~9`~
(~ (
manipulator axls coordinates e - ~ . The minimum e~:ecution time
T along with the data eNl and aN3 are utilized along with the
maximum allowable acceleration and deceleration of the manipulator
arm to precompute and define the acceleration portion 90 over time
interval Tl and the deceleration portion 92 over time interval T .
Thus, the sum of the time intervals Tl t T2 equals the minimum
execution time T . The acceleration or deceleration portions 90
and 92 are also utilized to define the coordinates of the point an2
at ~hich the manipulator in the fixed path solution exits the
10 j acceleration phase 90 and enters the deceleration phase 92.
~~ ~- It should be noted that the vector a s corresponds to the
number of conveyor displacement units moved by the conveyor during
the execution time ~ in terms of the maximum conveyor velocity,
Sc = Vc ~ ~ .T. The off-line teach assist computer 34 then has
~ _. . .
.-. precomputed the coordinate points for each axis of the manipulator,
i.e.-el - through e6 values, for the projected points aNl, eN2, ~N3
and eN4. The move to the next weld point in the work cycle, e.g.
P~3 after the point PW2, is then taught and calculated in the same
manner as described hereinbefore and as illustrated in FIG. 4.
$he Ph.2dyn point corresponds to the point eN in FIG. 4,
; After teaching a seires of such weld points, P - P , the off-
l me teach assist computer 34 upon a command irom the data
terminal 36 transfers the precomputed, projected manipulator
coordinates and corresponding projected conveyor positions to the
main control memory 16 for use in reconstructing the optimal, pre-
computed, projected fixed path solution in the on-line work cycle.
-22-
~9~7~
Considering now mo~ement between two weld points PWl and
PW2 on the workpiece that represents a distance in space greater
than the predetermined distance for a short move analysis, a
dynamic velocity profile 86 as illustrated in Figure 5 is pre-
computed by the off-line teach assist computer 34 in accordance
with a long move analysis of the stored programs. The representation
in Figure 5 describes the behavior of the manipulator arm 11 in a
single manipulator axis or in a single Cartesian coordinate axis.
Thus, for manipulator arm movement between static workpiece points
representing a distance greater than the predetermined maximu~ short
move distance, a constant velocity step, step 3, is precomputed at
the maximum tip velocity Vn~ between the acceleration portion 90 and
the deceleration portion 92. The overall optimal, execution time
of the move Ts is then the sum of Tl, T and T2. Referring now to
Figure 6, where high positional accuracy is required during a long
move traverse between the points PWl and PW2, a predetermined number
of constant velocity steps are precomputed by the off-line teach
assist computer 34 and inserted between the acceleration portion 90
and the deceleration portion 92. For example, in Figure 6, three
constant velocity steps, steps 3a, 3b and 3d, referred to at 94, 96
and 98 respectively, are computed and inserted between the accelera-
tion portion 90 and the deceleration portion 92. The times of the
constant velocity mid steps 94, 96 and 98 are T 1' Tm2 and Tm3
respectively. The positional accuracy considerations and the
computation method to insert the constant velocity midsteps will
be discussed in detail hereinafter.
In the on-line playback operation, the on-line computation
and control unit 18 reconstructs the fixed path solution as
represented by the stored data in the memory 16. The details of
the on-line computation and control unit 18 are discussed in more
detail hereinafter.
- 23 -
~9`:~79
Briefly, the on-line control apparatus 14 controls operation
of the manipulator 10 in several modes, PTP, PTP~c), CP (ACCO=O), CP
(ACC~0) and also various teach modes. Reference may be made to the
aforementioned application Serial Nos. 721,805 and 625,932 for a
general discussion of these operational modes. The CP (ACC=0)
mode is utilized for continuous path movement of the manipulator
arm to accomplish welding such as steps 1 and 5 in Figure 5, constant
manipulator axis velocity movement such as step 3 in Figure 5 and other
continuous path movements where the precomputed accelerations is zero or
approximately zero. For a weld step the mode is designated CPW. The
CP (ACC~0) is utilized for constant acceleration steps such as
steps 2 and 4 in Figure 5. The various modes are assigned and
coded in the data stored in the memory 16 as precomputed by the
off-line teach assist computer 34.
The on-line playback operation of the on-line computation
and control unit 18 to generate the position, velocity and acceleration
command signals to reconstruct the velocity command signals
illustrated in Figures 3 through 6 are described by the following
relationships:
MODE
PTP: POS = n
VEL = 0
ACC = o
CP:
ACC = 0: POS = 0n-1 ~ On- n-l x m
VEL = ~ 0 x Kv x 64
N
ACC = o
~n ~ ~n-l
- 24 -
~ 9~79
CP:
ACC ~ 0: ~; POS ~n-l + 0m 1 ~ n-l x m x 1 x N
2 N Kv 64
~NEW; VEL = 2 ~ 0KV 64 ~OLD
~; YEL = 0 n-l + (On - On - 1) x m = ~m
~; ACC =~\0 x Kv x 64
N
~ ~n n - l
where m = interp. count
N = the number of interpolation intervals in the step
o = ~ 0/64 LSD conveyor change
Kv - number of interpolation intervals/step
~ ep
9n = next position (next data Dn, the end of step n)
On-l = previous position ~previous data Dn-l, the end of step
. n-l)
0NEW = On = next velocity (end of step n)
OOLD = ~n-l = previous velocity (end of step n-l)
0m = present velocity (commanded)
n = present step identification
The symbol On-l in on-line operation is always utilized to refer to the prev-
ious position at the end of the last step data Dn 1 The symbol ~n is uti-
lized to refer to the precomputed position at the end of the present step data
Dn to which the manipulator arm is to be moved during the step n. This con-
vention is utilized within the on-line computation and control unit 18 re-
gardless of whether the step is a CP (ACC = O) or CP tACC f o) mode step.
Referring now to Figure 7, the off-line teach assist computer 34 in
one embodiment operates according to the general flow diagram illustrated
therein to perform the off-line precomputations, calculations and teach-
assist functions as discussed hereinbefore. The overall teach assist program
flow proceeds from the START designation through an INITIALIZE block 100
wherein an internal program step counter of the computer 34 is set to the
first point, n equals 1. After the INITIALIZE block 100 the program flow
proceeds through the A program branch marker to a decision block 102 to de-
termine whether the STATIC point N data is READY? If the determination for
the entry of new static data input is no,
- 25 -
.
lil9S:~9 , I
the program proceeds to another decision block 104 to determine
! whether OT~ER TASKS? are to be performed at this time. If the
determination is no in the decision block 104, the program flow
proceeds back to the A branch marker. If the determination in the
5 block 104 is yes, i.e. other tasks are to be performed, the program
. flow proceeds to a decision block 106 wherein the determination
is made as to whether or not the control data has been entered
. into the terminal 36, S.~T CONTROL DATA7. If the control data has
been entered.the.determination in.the decision block 106 is yes and
the control.da.a is entered as denoted by the process block 108
. INPU~ CONTROL DATA. After the control data is entered, the pro-
- gram flow returns to the program branch marXer A. If the
f determination in block 106 is no, signifying that control data has
not been entered at the terminal 36,..a decision block LOAD MAIN
. 15 CONTROL MEMORY?.llO is-entered. -If_the determination is~yes, the
.- program flow proceeds-through-~-process block 112 where the internal
, .
- program counter is set to N ~ 1 and on to a B program branch
marker.
. Returning now to the program branch A, if the determination
. 20 in the STATIC point N READY? decision block 102 i9 yes signifying
that the entry of new static point data is ready according to the
- data terminal 36, the program flow -in branch A proceeds through
.. an INPUT STATIC POI~T N DATA SET process blocX 114 wherein the
.. static data from the manipulator encoders and the conveyor encoder
25 for the point N is entered into the off-line teach assist computer
34. The program proceeds through the process block 114 after the
entry of data to a marker C and into a PASS ~1, PROCESS N STATIC
.: .
. block 116, denoting the processing of static data at the point N.
:. .
.
. .
. .
. . J26-
~9~7~
In the process block 116, a full precompuation of the optimal
execution time for movement to the point N from the previous pro-
gram point N-l is determined in accordance with a particular pro-
gram stored in the computer 34. The details of the PASS ~1,
PROCESS N STATIC block 116 are shown in FIG. 13 and will be explained
in more detail hereinafter.
Thus in the PASS ~1 block 116, the execution time and
fixed path solution for movement between the two points N-l and
N and a weld to be performed after reaching the new point N are
computed, assuming a weld command has been-entered on the data
terminal 36 for--the point N. ~n the process block 116,-the dynamic par~
meters as discussed in connection with FIGS. 4 through 6 are computeda~
pr~ected with respect to conveyor movement, i~ the teach aqsist compu~ r
34 calculates the real time, projected coordinates for the point N
and the corresponding real time, projec.ed-conveyor position.
At this point in-the program:flow;--the program~-procëëds through
; the PASS ~1 process block 116 through a referencemarker E to anOUTPUT CONTE~TS OF CURR~NT CONVEYOR REGISTER block 118 wherein the
projected conveyor position for the point N is outputted to the
data terminal 36. The projected conveyor position is utili7ed
by the operator to either advance the conveyor or to merely indicate
the projected conveyor position-for the taught point N to ths
operator. This projected conveyor position.corresponds to
completion of this weLd at point N in real time. The program flow
continues through the process block 118 to a process blocX 120
wherein the internal program counter is incremented by one from the
point N to the next point, N = 2 for example. The program flow
continues through the process blcck 120 to the marker A.
.
-27-
~,~19~79 (- I
~ esuming the program flow at marXer B, when a command
from the data terminal 36 is entered to load the main control
memory with the previous taught points,. N, as accumulated in the
computer 34, the program flow through branch B proceeds to a
RETRIEVE /T ~CV STATIC FROM FILE process block 122. In the process
block 122, the static data for each point ~ in Cartesian tra~sform
format referred to as /T / is.recalled by the computer 34.
N CV
The /T / data was calculated and stored in the PASS .'l process
bloAk 16.. The program flow continues through an
: 10 .~ OF PROGRA~I? determination blocX 124 to determine if the end of
program has occurred. If the end of program has not been entered
. at the particular point N identified by the program coun.er, the.
. program flow continues to the reference marker D. The end of
. program is entered.for a particular point N = ~E/P by the data
- 15 terminal ~6 and-s~ored in the computer 34. If the end of program
has. been detected-for the point:~ being.processed, the end-of~~- -
program latch would be set denoted by process blocX 126. The
program flow then proceeds to the reference marker D.
-. Proceeding from the reference marker D, the teach assist
: 20 computer program proceeds to a PASS ~2, P~OCESS N STATIC procesg
- block 128. In process blocX 128, a ~ull predict or precomputation
of the fixed path solution to accomplish the commanded move,- ~-1
to N, is accomplished as shown in.more detail in FIG. 14 and as
.. will be explained in more detail hereinafter. Briefly, the PASS ~2
.
- 25 process block 128 performs the precompuation of the optimum
. execution time and the fixed path solution to project into real time
the dynamic behavior of the manipulator arm in each of the control
axes and a corresponding conveyor position to accomplish the
-28-
~9~79
dynamic profiles as described hereinbefore and illustrated in
~IGS. 4 throush 8. The particular program stored in the teach
assist computer 34 determines the exact computations performed
in the PASS ~2 process block 128. Several optimum predict methods
or programs will be discussed in detail hereinafter.
After the full data has been calculated to accomplish
the move from the previous point N-l to the next point ~, the real
t~me~ projected coordinates for the point N in each of the manip-
UlalO axes along with the projected conveyor position are for-
; 10 -mated-and ou~putted to the memory 16 as indicated by the process
block--30. ~ r ~
The data outputted to the memory 16 represents the
program data utilized by the on-line computation and control unit
18 to reconstruct the optimum, fixed path solution..in accordance
~_ .
with dynamic coveyor movement in the real time worX cycle. A
process-block 132 represents the storage of the outputted data ~or
the point ~ by the teach assist computer 34 for use in precomputing
the move from the point N to the next taught point ~ I 1 during the
next program loop through the PASS *2 process block 128.
In a preferred embodiment, additional data is also cal-
culated and outputted to the main control memory 16. The additional
data includes a predetermined number of interpolation intervals
that are calculated and assigned to each of the acceleration,
deceleration, constant velocity and weld steps calculated for the
move from the point N-l to the point ~ as discussed hereinbefore
2S and as illustrated in FIGS. 4 through 6. The number of assigned
interpolation intervals in one specific embodiment is one of a
predeter~ined set of binary multiples of 16. The number of inter-
polation intervals assigned to a particular step is equal to the
next lowest binary multiple of 16 in the set below the number of
-29-
1~19279
conveyor LSD's calculated from the step. For example, considering
a long move analysis, FIG. 5, each of the steps 2 through 5 for
the move from the point N-l to N (corresponding for example to
P to P ) is assigned one number in the set of interpolation
Wl W2
intervals in accordance with the calculated number of projected
conveyor displacement units for each of the steps 2 through 5.
Additionally a h velocity constant is also calculated for each
of the steps and outputted to the memory 16 in a specific embodi-
men~. The K .constant is equal to the number of assigned inter-
polation intervals divided by the number of projected conveyor
LSD's as discussed in the aforementioned a~plication Serial
No. 721,805.
After the outputting of data into the memory 16, the
program flow of FIG, 7 proceeds through a reference marker H to
a determination block 134_to determine_if_the end of program latch
has been set. If_t~e determination is yes , the program flow
proceeds from the determination block 134 to the START designation
of the overall flow program of the teach assist computer 34. If
the determination in block 134 is no, i.e. the end of program latch
has not been set, the program flow continues from the determination
block 134 through a process block 136. In process block 136, the
internal counter is incremented from the point N to the point Nll.
~he program flow proceeds through the process block 136 to the
re~erence marker B.
Thus, the program flow continues through the program
reference markers, B-D-H-B, for all the stored and taught points
to retrive stored data in the computer 34, to compute the data
representing the optimum dynamic move parameters for each point N,
-30-
( lll9Z79
to compute the manipulator axis coordinates of each of the projected
points and the corresponding projected conveyor position, and to
output the data to the memory 16.
Thus, when the data terminal 36 inputs a load command to
the off-line teach assist computer 34, all the previously taught,
stored points are processed to precompute the fixed path solutions
corresponding to the taught points and to load the data into the
memory 16. At this point, the main control memory 16 has stored
~.e e-n the appropriate data to reconstruct the fixed path solution
as calculated by the off-line teach assist computer 34. The data
in the memory 16 is then utilized by the on-Iine computation and
control stage 18 in the on-line or playback mode to reconstruct
. and perform the taught, fixed path solution in optimal execution
.. .
: time to move 'over the taught points and to perform the taught
~_ .
: 15 welds in correspondencé' to movement and'dlsplacement of the
conveyor 12.
The details of several precomputation methods utilized by
. the off-line teach assist computer 34 to calculate the optimum
execution times for the work cycle will now be considered.
' 20 Considering first a simplified Cartesian predict method
' and referring now to FIGS. 8 through 11, an optimum execution
time Ts is co'mputed for each ~of the''moves between successive weld
. . points in the work cycle on the basis of the maximum dynamic capa-
bilities of the particular manipulator apparatus that is utilized.
~ 25 A~ discussed hereinbefore, the maximum dynamic parameters are
identified as ~a~AX~ -aMAX and ~MAX Considering one speclfic
.' manipulator apparatus, the maximum composite tip velocity V
- 'in the Cartesian domain is 30'inches per second. To perform the
-31-
~1~9279
,
predict method calculation, it is also necessary to know the
permissable range of the conveyor line velocity. The maximum oonveyor
line velocity V is required to insure that the optimum time execution
will not command the manipulator arm to exceed the maximum composite
tip velocity and also to calculate the projected conveyor dis-
placement during the execution time. The smaller the overall
variation (range) in permissable conveyor velocity, the higher the
ontimization of the precomputed move in terms of execution time by
the manipulator and the efficiency of the overall work cycle; i.e.
the maximum number of welds and work that can be performed in the
overall work cycle for a given conveyor displacement and manipulator
work station. In any case, if the maximum conveyor velocity V is
6 inches per second, for example, along a predetermined orientation,
Vc= 6 inches per second is utilized in the precomputation method.
~rpe nominal conveyor line for_example is 5 inches per second.
In the simplified Cartesian predict method under dis-
cussion, the maximum conveyor velocity V of 6 inches per second is
; subtracted from the maximum composite tip velocity V~x f 30
inches per second to result in a relative maximum composite tip
velocity V of 24 inches per second. This approach assumes the
~ R .
worse case wherein the direction of conveyor movement is aligned
with the direction of movement of the manipulator tip, i.e.
the vectors V and VMAx are aligned and subtracted.
The first step in the simplified Cartesian predict method
determines whether a short move analysis or a long move analysis
is required. The detexmination as discussed hereinbefore is made
on the basis of the static distance on the workpiece bet~een the two
successive points PWl and PW2, ~ S in FIG. 8. The PW point
-32-
Z79
corresponds to the previous welded point at the projected, real .!
tiTne conveyor position and the point PW corresponds to
the next weld to be performed at the projected real time conveyor
position at the time the PWl weld is finished. The Vector Ss ~1
corresponds to the static distance between the points PWl and
P 2 and is calculated by the teach assist computer 34 from the
manipulator encoder data as the teach operator teaches the two
points P and ~ by moving the manipulator tip between the two
Wl W2
points by use of the teach controls 38. The manipulator encoder
data is inputted under control of the data terminal 36 and the
teach control 38 to the teach assist computer 3~. It .shou~d be
realized that the distance ~ S is the same regardless of the
conveyor position in the teaching mode.
In accordance with the parameters defined above, if the
_ . _
5 ~ S static distance between the two workpiece points P and P
s - Wl w2
is greater than five inches, the teach assist computer 34 defines
and calculates a long move analysis. If the ~ S static distance
is less the five inches, a short move analysis is utilized.
The maximum short move distance is calculated from the
relationship ~ S maximum equals V MRmultiplied by one-half the total
time to execute the acceleration and deceleration steps:
s M~X = 24 (Tl ~ T2) ~1)
where Tl eguals the time to accelerate to maximum tip velocity from
tracking velocity and T is the time requi~ed to decelerate from
maximum tip velocity to tracking velocity. In accordance with the
maximum acceleration/deceleration parameters for a particular
manipulator, the times T1 and T2 of each of the accleration
-33-
~ 9~79
and deceleration steps are defined in effective time units correspond-
ing to the number of conveyor encoder basic linear displacement units
or LSD's of motion required to effect the desired arm motion with
the conveyor moving at a maximum conveyor speed of 6 inches pex second.
The units for a ~ or velocity command are bits change/64 conveyor LSD's
change and the units for ~ or acceleration command are bits cha~ge/
(64 CODveyOr LSD's change) . In one embodiment, the basic linear
displacement unit, LSD, is .019563102 inches. If an a of
MAX
115.01248 inches/sec. is assigned equal to:
2' i~hes/sec. ~ -
.C1956312 "/LSD x _ x 64 conv. LSD's
~~ 6 "/se~.
then Tl = T2 - .208672 secs. Thus, Tl is approximately equal to
64 LSD's of change to accelerate from 6"/sec. to 30"/sec. If the maximum
~ip velocity V of 30 inches per second equals 3000 bits per second
' MAX' ' ' '
(BPS) in terms of the encoder output readngs, the particular
manipulator apparatus is then capable of accelerating between a
. . . _ . .. . ...
tracXing velocity to the maximum relative velocity of 24 inches per
second at a constant acceleration during the time the conveyor moves
64 conveyor LSD units at a maximum conveyor velocity of 6 inches
per second. The maximum acceleration laMAx and deceleration -a~L~X
then corresponds to a velocity change ~ V of 2400 B2S in a time
interval ~ t of .208672 seconds or the time for tXe conveyor to move 64
... . .. ... .
.~SD's at maxi.mum conveyor velocity. This corresponds to an acceleration
of 12,50~ BPS at a maximum ~nvey,or velocity of 6 lnches per
second. Substituting the above parameters, Tl - T2 = .208672
~5 seconds into equation (1), the ~ SsMAX is found to be 5.008 inches.
Considering the short move analysis for movements between
static weld points of less than 5 inches, the acceleration and
deceleration steps as illustrated in FIG. 4 are executed over time
intervals T1 and T2 less than the time of .20876 seconds to traverse
64 LSD's~ Thus, the manipulator tip does not reach the maximum
composlte velocity V in a short move. The times T and T2 for
( ~l19;i~79 ~
the acceleration and deceleration steps are less than the ,208672
seconds and are calculated in terms of the minimum execution time
to traverse the distance between the points P and P at the pro~
Wl W2 .:
jected conveyor velocity corresponding to a predetermined number of
conveyor linear displacement units, LSD's. The details to calculate .
Tl and T2 for a short move analysis will be explained in more .'
detail after a consideration of the more generali~ed long move analysis....
For execution in real time in the on-line mode, the
acceleration and deceleration steps are accomplished in an assigned '.
number of interpolation in,tervals, either 32 or 64 interpolation '''
intervals in accordance with one aspect of the present invention. '.'
As explained in more detail in the aforementioned application Serial
~o, 721,805, 32 interpolation intervals are assigned to a step wherein
it has been caluated that-32 to-63-conveyor LSD's will be traversed ~'
15 durin,g_,the exeuction time of the .step ata maximum conveyor
velocity..of 6 inches per,second..,, In,-t,~at case, some of the
interpolation intervals in accordance with operation of the on-line .''
computation and control unit 18 correspond to 1 LSD of conveyor
displacement and a second predetermined number of the 32 inter-
polation intervals correspond to two conveyor LSD's as will be .,
explained in detail hereinafter. . ,,' ,;
.,, ,,In.. one embodime,nt,. the.transi'tion or de~ermination ','
point between a long move or a short move analysis
may be modified such that a 64 interpolation interval step may be '
assigned in a short move analysis for a ~ S greater than 5 inches
when it has been calculated that between 64 and 127 LSD's of conveyor ..
motion at the maximum conveyor speed are required to execute each
- of the acceleration and deceleration steps. This method might be ',
used where the length of the constant velocity middle step for a long
move is below a predetermined minimum ~or optimum execution.
~ , -35-
~1~9279
Considering now the details of the simplified Cartesian
predict method and an example of a long move analysis, the opti~um
execution time Ts for the move between the weld points P~ll and PW2
(Figure 5) on the workpiece is calculated from the following
equation:
Ts = Tl ~ T2 M (2)
where TM is the time r0quired for the constant velocity middle
step between the acceleration and deceleration steps.
The teach assist computer 34 in accordance with the pTe-
computation predict program stored therein, in this case the
simplified Cartesian method, proceeds to determine if a short or
long move analysis is required on the basis of the ~Ss distance
calculated from the manipulator encoder data defining the points
PWl and PW2. As discussed hereinbefore, if the ~Ss distance is
determined to be greater than S inches, a long move analysis is
indicated. Por illustrative purposes assume that the ~Ss
distance is c~;lculated to be 11 inches.
After determining the ~Ss, 11 inches for example, the
optimum total execution time Ts is calculated by substituting the
2Q known quantities into equation (2), Ts = 2~.208672) + T sec. Thus,
to define the overall time o~ the step Ts, it is necessary to
calculate TM, the time required for the constant velocity midstep,
step 3 in Figure 5, between the acceleration and deceleration steps.
In this regard, the following expression defines the time of the
midstep TM in terms of the acceleration and deceleratiQn step times
Tl, T2 and the ~ Ss static distance between the points PWl and P~2:
Q Ss VMR Tl + VMR T2 + VMR TM ~ )
2 2
- 36 -
'~,
~,1
;279
This may be rewritten as follows:
TM = ~ Ss ~ 1/2Tl - 1/2T2 (4)
VMR
Further, the time for the step Ts is solved from equation (2) as:
Ts = 2(.208672) ~ .2496613 = .6670053 seconds.
Referring now to Figure 8, to define the XYZ coordinates of
PW2dyn~ the point PW2 projected in real time with conveyor movement,
it is necessary to solve the following equation:
~ STOTAL ~ Ss ~ Sc (5)
where Q STOTAL is the vectorial sum in three dimensional space of
the two components ~ Ss + ~ Sc. The ~ Sc corresponds to move-
ment of the static workpiece reference PW2 during the time of
execution of the overall movement including the acceleration
step 2, the constant velocity step 3, and the deceleration step 4.
Thus, ~ STOTAL defines the manipulator tip movement from the point
PWl to the projected point Pw2dyn with conveyor movement at the
maximum conveyor velocity. The time of the step Ts and the max-
imum conveyor velocity Vc defines the quantity ~Sc:
~ Sc = Ts VC (6)
Solving equation (6),/\Sc equals (.6670053) (6) or 4.00203 inches.
Substituting this value of ~ Sc into equation five, for simplicity
in the present example assume that the conveyor movement is directly
aligned with the X axis corresponding to a i vector:
/~ STOTAL= ~ Ss ~ i 4-00203 (7)
Equation (7) defines the total move from points PWl to PW2d . The
teach assist computer 34 has stored the calculation of ~ Ss as
follows:
~Ss = -i~sx + . ~ ~sy + ~Asz (8)
~ - 37 -
~19~
Thus, in vector notation, the coordinates of the translated and
projected po1nt PW2 dynamic can be written as follows:
W2 dyn wl dyn ~ ~- TOTAL (9)
Referring to the dynamic profile of FIG. 5, the point PW2 at the
start of the weld 2 step defines the XYZ coordinates that represent
the manipulator position in the various controlled axes at eN . The
pos.itional data in each of the coordinate axes may be obtained
~lom the XYZ coordinates of the point P 2d through a transformation
process as described in the aforementioned application Serial Nos.
721,805 and 625,932. The projected conveyor location corresponding
to the point P (eN ) at the start of the weld 2 is also defined
W2dyn 4
as follows:
. D = ~ D t D (10)
, ., ~ eN4 . - eNl s
where SD is the projected conveyor location.at point P
eN4 ~ W2
dynamic and ~ D is the projected conveyor location previously
~ Nl
calculated and stored by the teach assist com~uter 34 corresponding
to the projected point P (The point P may also be referred to
Wl Wl
as P ). ~he term D corresponds to the conveyor displacement
Wl dyn. 9
in LSD'.s during the total time of the step T for the manipulator
tip to move the distance ~ S . Thus, the term D is the pro-
TOTAL S
jected conveyor movement in LSD's during the execution of the acceler-
ation step, the constant velocity step, and the deceleration step
and is defined as follows:
D = T V (11)
s s C/f~/LSD
where ~ /LSD = .019563102 inches.
. In the above example, the conveyor displacement D
i during the time Ts of execution of the total
!
.-38-
step is calculated as .6670053 seconds times 6 inches per second.
equal to 4.0020318 inches or 204 conveyor LSD's for the overall move-
ment, 64 LSD's for each of the steps 2 and 4, and 76 LSD's for the
constant velocity step 3. The number of LSD's for the constant
velocity step 3 is calculated as D = TM - .2496613_- 76.56 or
eN3 l'~SD ,0032605
76 LSD' s . An interpolation interval code representing 64 interpolation
intervals is assigned to this step the next lowest binary
multlple of 16. The total number of LSD's for the overall movement
is defined:
: 10 D = D t D t D = T ~ S
S e~2 eN3 e~4 s - c (12)
- ~ /\/LSD
. LSD
where D is the number of LSD's for the acceleration step 2,
eN2
D is the number of LSD's for the deceleration step, T
. eN4 .. . - . . LSD
1~ is .0032605 seconds, the time to traverse one conveyor LSD at the
.. ..
maximum conveyor velocity, and A /LSD denotes the positional change
.: . .
per LSD of the conveyor movement equal to .019563102 inches.
The proiected conveyor.displacement for each caiculated
step of the move in the program including the weld steps is outputted
.. 20 for storage into the memory 16 along with the manipulator axes data
as an absolute, accumulated conveyor displacement in terms of
the number of conveyor LSD's. For example, if the projected
conveyor data ~ D corresponding to the point ~N was 1857
., 'eNl
. conveyor LSD's,the number of displacement units represented by the
25 quantity D 204 LSD's for example, is added to obtain ~ D . Then
. s eN4
D = 204 ~ 1857 = 2061 LSD's. Similarly, ~ D is equal to
' eN4 eN2
1857 f 64 or 192L. For ~ D , the result is 1921 ~ 76 = 1997.
eN3
It should be apparent that in equation tl2) the ratio of time
-39-
9279
quantities and the ratio of distance quantities can be equated
since the time is calculated at maximum conveyor velocity and the
distances are derived from the execution times and correspond to
the displacement of the conve~or at maximum conveyor velocities.
Further, knowing the real time, projected coordinates
of the point PW2 or eN in manipulator 2xis joint data and .the
co~responding projected conveyor position, the weld 2, step S can
also be calculated. The calculation of the end point eN of the weld
2 is per~ormed by translating the manipulator coordinates of the
W2dyn W2dyn
time again based on a maximum conveyor velocity to perform a
weld. This results in the coordinates eN at the end of the weld
2 and a corresponding projected conveyor position.
The next step in tXe simplified Cartesian predict method
for a long step analysis is the computation of the coordinates
for each of the manipulator-axes and the corresponding conveyor
position for the points 8N and eN, referring to FIG. 5. At this
point, the coordinates of the points eN , eN and e~ are defined
l 4 5
along with the corresponding projected conveyor positions. Up
to this point, the analysis has been per~ormed with Cartesian
~YZ coordinates; the ~N , eN , eN coordinate data being transformed
into joint coordinate data after calculation in the XYZ domain.
The profile of FIG. 5 describes manipulator tip movement in one
Cartesian component direction of the XYZ domain. The representation
in FIG. 8 describes a translation or movement in Cartesian space.
Considering the calculation of the coordinates for the
points eN , eN a~d referring now additionally to FIGS. 9 through
ll, FIG. lO similarly to FIG. 5 represents a manipulator axis
velocity profile with respect to time. Each axis is
.
-40-
~19Z79
' I'
accurately described by the profile of FIG. 10 according to a
scaling factor. Briefly, to summarize the overall velocity pro-
file of FIG. 10 for a long move analysis, step 1 corresponds to the ,-
weld 1 performed with the manipulator tracking the point P on the
workpiece. The weld 1 ends at ~N correspon~ing to P . At this
Wl :'
point, at the start of step 2, the velocity ramps up at a constant
acce!e-ation during the time interval Tl from the point eN to
the point ~N corresponding to a transis~ion from the velocity
. 2 _
~1 to e~ defining the slope in step 2. In step 3 the manipulator
moves in each of the joint axes at a constant velocity eN3 during
the T t me interval from the points eN to eN . In step 4, each ;
M 2 3
of the joint axes decelerates from the velocity eN to a tracking
velocity a~ defining the point P the start or the weld 2.
4 w2
The manipulator during step 5, weld 2 at point P , tracXs the
point P on the workpiece at the velocity ~ to the point ~N .
Referring now to FIG. 9, the accumulated position change
in each joint axis is illustrated corresponding to the points in ~.
the velocity profile of FIG. 10. Thus, the position on the ordinate
; scale and the position profile corresponds to the integral of the
velocity profile of FIG. 10. The position profile of FIG. 9
describes the total positional-change with respect to time of any
.
joint axis as the manipulator tip moves through the first weld,
weld 1, the acceleration step 2, the constant velocity step 3,
the deceleration step 4 and the weld step 5. Referring now to the
acceleration profile of FIG. 11, the acceleration is plotted versus
time and at any point is the differential of the velocity profile
. . .
-41- `
. .
; ' ' ,'~.
Z79
.....
of FIG, 10. During the weld 1, step 1, the acceleration is
approximately zero as the manipulator is tracking the conveyor to
perform a weld at a nearly constant velocity eN to the point eN .
In step 2, the acceleration is constant from eN to eN to the point
eN . At eN , the acceleration returns to zero at the start of the
constant velocity step 3. In step 4, each joint axis decelerates
from eN to e~ to the point eN . At ~N , the acceleration returns
3 4 4 4
to approximately zero during the weld 2 step 5 to perform the
~-e;d ~rough the point eN .
` Considering now the calculation of the coc~dinates of the
points ëN and eN , the following e~uation-is- utilized to
determine the total positional change ~ eN equal to e~4 - 9N
during the steps 2, 3 and 4 for each joint axis:
N4 Nl~ .
( N3 Nl) 1 ~ N3 M ~, (eN3 ~N5) T2
~ : ~ ' ~ (13)
. ,~, ~, ~
The various quantities in equation (13) as discussed hereina~ove
are identified in FIG. 10. The quantities ~ ~ and ~ correspond
to the areas 2, 3 and 4 identified in FIG. 10 and are the positional
change in the particular axis profile during the respective steps 2,
3 and 4. For example the first area ~ on the right hand side of
equation (13) defines the area under the curve for step 2 in
accordance with the principles of analytical geometry and graphic
analysis. The composite area ~ during the step 2 interval from eN
to eN is defined by the triangular area ~ and the rectang~lar
area ~ The overall composite area relationship is illuatrated
in the following equation (setting Tl ~ T2 in the simplified
Cartesian predict analysis):
-42-
.:
Z75
~ ~ ('
,.
(e t e ) T = e T + ~ (e - e ) . T (14)
N3 Nl 1 Nl 1 . N2 Nl
The triangular area of ~ is given by the formula for the a'rea of a,tri-
angle; ~ the base times the height. The base of'the triangle is
T and the height of the triang;le : is e - e
N2 N l
Solving equation 13 for e results in the ~ollowing~
expression:
e = (e - e ) - ( e ~ e ) T
N3 N~ Nl_ Nl N5 1 ( 15 )
T 1 ~ TM 2 T + T~,~
In examining eguation 15, it can be seen that e can be calculated
~3
for each of the axes, from the above expression since the quantities
o e , e , e , ~ T and T are known quantities previously cal-
Nl N4 Nl N5, 1 . M
xulated and stored. The e and the e velocities are calculated
Nl N5
from the respective end points in step 1 and step 5 for each of the
. . .
welds knowing the time and positional change in each joint axis
. .
. .
for example e = e - e , where T is the time of the weld 2
N5 N5 N4 W
5tep 5. - T
W
To co~plete the solution for e and e , the following
N2 N3
equations are utilized to define these parameters'in terms of' the
previously known and calculated quantities:
e = e ~T (e ~ e
N2 Nl 1 N2 Nl ( 16 )
- e = e ~ ~ .T ~17)
N3 N2 N3 M
Equations 16 and 17 are derived from similar graphical analysis
and the areas discussed herein~efore.
2S Thus, in accordance with the simplified Cartesian predict
method, the velocity profile for minimum execution time to move
between the point P and P is calculated along with the welds 1
Wl W2
-43-
9279
~ t
and 2. ~or the long move analysis, the calculated, real time pro-
jected positional data for each of the manipulator axes is recorded,
e , e , e and e
N2 (1-6) N3(1-6) N4(1-6) N5(1-6)
In xesponse to the teach operator mcvir.g the manipulator
tip between the points P and P on the static workpiece, the
Wl W2
teach assist computer 34 in response to an input command to teach
the next point, calculates the above positional data for each of
the coordinate joint axes and defines a fixed path solution
repLesented by the velocity profile in ~IG. 10 corresponding to the
aceeleration step 2, the constant velocity step 3, the deceleration
step 4 and the weld step 5. The aforementioned calculated positional
data is then loaded into the main control memory 16 for use by the
on-line computation and control unit 18 to reconstruct the pre-
eomputed optimum fixed path solution during replay of the program
, . -
~ 15 in aecordance with movement of the conveyor. The corresponding
.. . .... . ...
conveyor data as discussed hereinabove is also computed andformated for recording into the main control ~emory with the positional
joint ,axis data points.
For example, considering the long move analysis example
discussed hereinbefore, the following would be reeorded into
the memory 16:
. .
STEP MODE DATAINTERP INTERVALS Kv
STEP 1 WELD 1 eN ~W~ N~ 1 2N
1(1-6), D(where 2 ~ WIX~2 ) WD
eNl
STEP 2 CP (ACC~0) eN 64
2~1-6),~ D
eN2
STEP 3 CP~ACC-0) e ~D 64 64/,76
N3 (1-6)~ ~N3
STEP 4 Cp(Accro) eN 64
4 (1-6) ;~ D
~N4
STEP S WELD 2 eN WD N
(1 6) ,~D(where 2N~WD~2N~ 2
7~
(.. (
where WD is the number of interpolation intervals assigned to a
weld step.
The teach assist computer 34 in addition to calculating .
the above quantities also checks to insure that the maximum specified
velocity in each joint axis s less than the specific maximum for
the particular manipulator apparatus such as ~ 3,000 BPS. ~urther,
a check is also made to ensure that the accelerations commanded
a3-e within the specified limits such as lessthan ~ 2500 BPS ~ /64 LSD's
or approximately 12,500 BPS .
It should be noted that all the above calculations
are made utilizing maximum conveyor line speed to insure that the
maximum velocities will not be exceeded and that the weld
time will be suitable to perform acceptable welds even at -
maximum conveyor line speed. If the conveyor line speed varies
~elow the maximum line speed, the actual execution times on-line
to perform the precomputed fixed path solution will be longer
relative to the calculated times. The precomputed dynamic profile
discussed hereinabove is synchr~nized to conveyor advancement and
also to conveyor velocity.
Therefore, the precomputations are optimized ~or maxim~m
conveyor line speed. However, it can be scen that if the line
velocity is considerably slower than the maximum line velocity,
no significant overall loss of program optimization is involved.
As the worXpiece moves more slowly past the manipulator
~5 station at less than the maximum conveyor speed, the program ' ;
is performed proportionately more slowly. However, the
program is easily accomplished during the time the worXpiece is
within the range of the manipulator. Thus, it is insured that the
manipulator will easily complete the precomputed fixed path solution
in accordance with conveyor line speed and is compensated for line
-45-
~119~7~
. ,;;.
speed variations due to the synchronization. Purther, in the on-line
playbacX, the position, velocity and acceleration commands issued
by the on-line computation and control unit 1~ (as reconstructed
from the data in the memory 16! are appropriately adjusted with
respect to the actual conveyor velocity to insure optimum dynamic
behavior of the manipulator.
In accordance with the above simplified Cartesian predict
method, it shQuld be noted that the calculations performed by the
t~a_h assist computer program maintain exact position and velocity
integrity at the beginning and end of each of the acceleration,
deceleration or constant ~elocity steps; i.e. linear algebra in the
e domain is utilized to match the defined termination parameters.
Thus, the absolute posltion accuracy between the end points of the
various steps may depart somewhat from that projected or desired.
15In accordance with the desired positional accuracy of the`
manipulator tip to be maintained between weld points, the magnitude
of the position error may be checked by the teach assist computer 34.
For example, higher positional accuracy may be required where collision
problems are more severe or when the movement between points is large.
2~ Thus, when considering a long move analysis as described hereinbefore
in connection with FIGS, 9 through 11, the positional error is
calculated at the center of the constant velocity step 3 and
- compared to the projected position to determine the magnitude of the
positional error. If the positional error is beyond a predetermined
~5 acceptable limit, such as plus or minus .5 inches in a particular
embodiment, the constant velocity step 3 is redefined by the teach
assist computer 34 into two or more constant velocity steps of
appropriate scaled velocities. For example, if the positional error
-46-
27~
calculated is in the range of 1 to 2 times the desired maximum
positional deviation, two constant velocity steps are used instead
of step 3. Similarly, if two to three times the allowable error is
detected, three steps are used as illustrated in FIG. 6. For a
range of three to four times the allowable error, four steps are
used. In considering the above checking programs for ~elocity,
acceleration and position, it should be noted that the off-line
co~lp~te time and the complexity of the computer required are not
critical. The operations are all performed off-line in the teaching
mode and the computer is not required for on-line operation and is
not dedicated to the manipulator apparatus. The off-line
teach assist apparatus 30 is detachable and portable.
The following equations define the calculations per~ormed
by the teach assist computer 34 when it is desired to define two
.- 15 constant velocity steps 3a and 3b in lieu of the single~step 3,
(the constant velocities ca~culated-are~designated as e and e
N3a N3b
for the two steps 3a and 3b respectively, e defines the position
N3a
between the steps ~a and 3b:
e = 2 (e ~ e ) - e . T (18)
N3a N3a Nl Nl
Tl t 2T
M
e = 2(e - e ) - e . T
N3bN4 N3a N4 1 (19)
T ~2TM
1 ~ 2
. The details of- the simplified Cartesian predict method
performed by the off-line teach assist computer 34 for a short move
analysis will now be considered,.i~ where the static distance on the
workpiece ~ S between two points P 1 and P is less than 5 inches.
The 5 inch maximum for a short move analysis and the t~an~ition poi~t
-47-
~9;~79
to a long move analysis is determined by calculating the maximum
distance that c.~ be traversed without exceeding the 24 inches per seconc
V of the manipulator tip and with maximum acceleration and
~R
deceleration. This time T ~ T for the maximum short move as dis-
cussed hereinbefore is approximately .208672 Y 2 = .417344 secs. at the
m~ximum conveyor speed of 6 inches per second. This time corres~onds to
a conveyor displacement of 2 x 64 conveyor LSD's at the maximum conveyor
line speed. In a specific embodiment where the lowest ~um~er of
interpolation intervals assigned to a step is 16, the long move
analysis may be utilized whenever the projected conveyor LSD's
calculated for the overall step is greater than 144 (2 x 64 ~ 16) to
thereby insure a minimum T constant velocity step of 16 LSD's.
For a step where the calculated number of LSD's is 144 or less, the
short move analysis is utilized. ~ -
The short move analysis in the s1mplified Cartesian
predict method proceeds similarly to the long move analysis
discussed hereinbefore. ~owever, since no constant vel~ ity step
is required, the calculations are simplified. The time required
for the step T equals T I T . In one arrangement, the time T for
s 1 2 s
all short move steps is fixed for simplicity at .417344 seconds,
2(.20872 seconds), at the maximum conveyor line speed of 6 inches
per second. Thus the ~ S referring to FIG. 8 is also fixed from
: equation 6 as T x V = 2(.208672 x (6 inches per second)- 2.50406
s c
inches. The ~ S total for the step is similarly calculated
according to equation (5~ and the coordinates of the point P
W2
referring to FIG. 4, the start of the next weld e are then found
N3
-48-
~9~79
in XYZ coordinates from equation [9) in terms of the previous point
data and the ~ S . The corresponding conveyor position is .
TOTAL . .
also calculated by adding 128 conveyor LSD's to the previous conveyor .
- location at eN . Further, the weld step 2 is calculated to obtain ..
.
the coordinates of the point e and the corresponding conveyor
~4
location. All the coordinate data for the overall move of step$ 1,
2, 3 and 4 are now known including eN , ~ and eN and the time of
1 3 4 .-
tlle step T . The only quantity remaining to be calculated is the
end point of.step 2 eN the transistion between the acceleration -
and deceleration steps 2.and 3,.and the.corresponding velocity e
N2
The velocity eN is derived from the following equations by defining
the areas as shown in FIG. 4 similar to that in accordance with the ..
long move analysis above in equations (13) through tl5). ..
e = eN - ~N = ~(eN2~ eNl) T ~ N2~ 3) 1 (20)
N 3
. 15 eN = t~N - eN )/T - ~N - ~8N (21)
3 1 1 1 3 t
Equation (21) is a simplified form of equation 20. After obtaining ..
eN , eN is calculated from equation (16) as discussed in the long
2 2 -
move analysis. Thus, for the short move analysis, the data ~
recorded for steps 1, 2, 3 and 4 of FIG. 4 are the same parameters
..
recorded concerning the long move analysis in steps 1, 2, 4 and
5 of FIG. S. -
In an alternate arrangement, the short move analysis for
a movement between points corresponding to 32-63 LSD's of conveyor
movement may be calculated deriving T and T and assigning 32 -`
: . interpolation intervals to each of the acceleration and deceleration
. .
steps. Those short move steps corresponding to.less than 32 LSD's
of conveyor movement are then assigned 32 interpolation intervals.
However, the increase in execution time is very slight for these very
short moves.
-49-
~lL19279
Thus, the simplified Cartesian predict or precomputation
method descri~ed hereinbefore describes one calculation or
precomputation program that may be utilized by the off-line teach
assist computer 34 to project and precompute the fixed path solution
in the off-line teaching mode from the statically entered teach
data as the operator moves the manipulator tip over the taught .
points. While the aforementioned simplified Cartesian method
prov~des accurate data for a spot welding program and has been found
s~-~is~actory for most work cycle applications of this type, it
shoùld be realized-that other predict methods utilizing ~ifferent
calculation programs to define the dynamic profiles including
welding steps, acceleration steps, constant velocity steps and
deceleration steps are also possible where more precice program
optimization is desired.
In this regard it should be~-real-ized~that even the
simplified Cartesian predict method provides a tremendous increase
of the utilization of program execution time to execute the moves.
Thus, precomputed fixed path solutions defining dynamic profiles
for movement of the manipulator apparatus are calculated wherein
the manipulator tip is accurately commanded to move in minimum execu-
tion time with minimum overshoot and settling time requirements.
This is achieved by the commanded signals corresponding to a
physically realizable command signal that the manipulator can
accurately follow in calculated minimum time limited only by the
maximum dynamics of the manipulator apparatus
Other precomputation methods differ only in that they
utilize more precise calculations to further optimize the minimum
time calculations without exceeding the maximum dynamic parameters
during real time execution.
1~19;279
For example, another precomputation method referred to
as a simplified axis predict method (entitled thusly only for
reference purposes) determines the minimum execution time based on
the approximation of the dynamic movement for each axis of the
manipulator. Next the resulting execution time for each axis is
examined to determine the critical axis; i.e. the axis that requires
the highest execution time is the critical axis and determines the
time of the step. The simplified axis predict method then performs
a check to insure that the dynamic capabilities of the manipulator
are not exceeded. If the dynamic capabilities are exceeded, the
simplified a~is predict method recalculates the data to bring the
dynamic parameter maximums within the acceptable dynamic limits.
Another predict method referred to as a modified axis
predict method proceeds similarly to the simplified axis method
but calculates the minimum execution time in a more precise.
fashion. ~ .
Referring now to FIG. 7, one example of the detailed
flow process steps and computations to implement the PASS ~1
process block 116 and the PASS ~2 process block 128 in accordance
with the simplified axis predict method is illustrated in FIGS. 13
and 14 respectively. A diagrammatic representation of the
computation points in any of the manipulator axes is illustrated
in FIG. 12.
The following definitions and relationship are useful
in considering the operations described in the flow charts FIGS.
13 and 14 and the diagra~matic representation of FIG. 12.
--51--
( 1~1927~ (-
N represents the current point for which the precomputations
(22)
of the fixed path solution are being performed, i.e. the move
fxom N - 1 to N; - !
N-l represents the previous point for which the pre-
computations have been performed to move to the point N-l; (23)
/E ~ represents the set of manipulator axis data in ,
each of the controllable axes that defines the point N and that
correspond to the projected conveyor position (CV) stored in the con-
veyor register i:e. CV is equivalent to the sy~bol ~D as discussed
hereinbefore; ............................................ . .
~T /CV represents the Cartesian transform of the data
. (25)
/E / at the point N with vector definition of the manipulator
hand of the manipulator e-.g~ the Cartesian coordinates of the point
S in:FIG. 8 and ~he direction cosines in each coordinate axis for
the vector segments RS and ST;
/E / represents the set of manipulator axis data in
: ~ CV ~26)
each of the axes that defines the velocity of each axis at the
point N corresponding to the projected conveyor position stored
in the conveyor register;
E , E , E , E represents the corresponding
~IDI MID1 MID2 MID2 (27
positions and velocities at the end points of the middle constant
velocity step for advance to the Point ~ as illustrated in
FIG. 12
.
: Considering now the basic calculations and operations
¦ 25 performed for the simplifiea axis predict method illustrated in
FIGS. 13 and 14, reference is made to FIGS. 12a and 12b. In FIG.
12a, the short move analysis is diagrammatically represented and
in FIG. 12b the long move analysis is diagrammatically represented..
In the case of the short move analysis, FIG~ 12a, the
following relationship describes the basis.for calculating the
_52-
;Z7!~ ~ (
execution time for each manipulator axis:
~ s ~ dyn ~ TOTAL (28)
where ~ e = eN . 2T and ~ eN = eN - e . Thus, the
dyn 5 1 s N-l
total positional change ~ e for each manipulator axes for
TOTAL
the total move from point N-l to point N is calc~lated by summing
:the portion A ed representing the trackinq of the point N as
tl~e con~eyor moves with projected mo~ion during the time of the move,
T l ~ = 2Tl (,assume T = T2) and the portion ~ eN representing
the movement of the manipulator between the points N-l and N with
the conveyor stopped at the position corresponding to 0 ; i.e.
N-l
e represents the s.atic positional change. The quantity ~ e
Ng
of equation (28) may be rewritten as follows:
- s s 1 (29)
The quantity ~ e is also defined from FIG. 12a by
calculating the trapezoidal areas denoted ~ and ~ :
.- ; ~ . . :
~e=~(e f e ) T ~ ~(e ~ e )l~ (30)
~ ~(~
Setting equations (29) and (30) equal to each other results in the
following after simplification:
~ eN = ~Tl ~2e ~ e - 3e ] ~31)
s PK N-l Ns
The ~uantity e is the velocity of the axis if the manipulator
Ns
were tracXing th,e point N at the start o~ the overall move at the
;
projected time that the manipulator is finishing the weld at point
N-l. As seen by the sloped dotted line between eN and e (exag-
9 NF
gerated), the velocity e is not constant and inclu'des a slight
' acceleration or deceleration component,
-53-
~g27~
Considering the peaX velocity 9 , ~he following relation-
ships define the quantity e , case I results when /e - e / = /~ -
PX PK N-l PK
e / and case II results when
Ns
/e - e /~/e - e /:
PK Ns PK N-l
S Case I, e = e I a ~ Tl (32)
. N-1 MAX
Case II, e _ e ~ a . T (33)
II l
CaceiI is illustrated in FIG. 12a. Considering the Case II situation
and su~stituting equation ~33) into equation (31):
T ~ T [1 (e ~ eN =
1 1 2 aMAX N-l a
MAX ~
Thus the guadratic equation (34) may be solved for T if the value
of ~ is ~nown since the quantities a , a and ~ e are
Ns . MAX N-l Ns
already ~nown. The velocity e is calculated by numerical
- Ns . F
differentiation techniques, i~e. the velocity ~ is calculated at
two points a smaLl distance on either side of the projected conveyor
location corresponding to the point e and the slope is determined
. N-l
to yield e . The solutions of the term T for all the manipulator
Ns
axes are then examined to determine t~e g~atest T and thus the
critical axis, i.e. the axis that determines the minimum execution `
time required for the movement from point N-l to point N. This
axis is the one that will move the fastest and acce~erate. at the
maximum rate.
After determining the time of the overall move as 2T ,
the simplified axis predict method proceeds as discussed herein-
before in connection with the simplified Cartesian predict method.
The solution for T in the Case I situation is obtained
by substituting equation (32) into equation (31):
T t T [3 (eN 1 ~ ~ Ns)] ~ s
MAX '
-54-
11~9:~79
.
I .`.
In the equation (34) and (35), the following relationships define
whether the value ~a or -a is utilized: ~$
MAX MAX
use I a , if e ~ e , Case I (36) _~.
MAX PK N-l ~:
if e `e , Case II ~
~K Ns .~.
use -a , if e ~ e , Case I (37)
M~Y. PK N-l ~.
if ~ ~ e , Case II ~-
PK Ns
Refe~ring now to the long move analysis for the simplified
axis predicz method and referring now to FIG. 12~, the following .
relationship is utilized:
e = e (2T t T ) (38)
dyn Ns 1 M ~
~ubstituting equation (38) into the basic relationship (28) yields: 1:
~\ e - ~ e + e (2T t T ) (39)
TOTAL . Ns.. . ~s l M
The quantity ~ e is again defined in terms of the areas
; TOTAL
under the velocity profile of ~G, 12b: ~:
(40)
~ 2(~ ~ e ) Tl ~ e . T ~ ~2(e t e
-~ TOTAL = MAX N-l MAX M MAX Ns
~'
where the velocity e is utilized in the long move analysis in
. .
~ lieu of the velocity e since the manipulator reaches e .
;PK MAX
Setting the equation (39) and (40) equal yields the ~
following upon simplification: ~.
~
e = T (e - . 3 e ~ ~2e ) ~ T (e - e ) (41)
~s 1 ~X 2 ~s ~ AX ~g -~
9~79
The solution of T is organized into the following for Case 1 and Case II:
Case I, T - e - e (42)
MAX
- MAX ..
.
Case II, T = e - e _ (43)
MAX Ns
MAX
The quantity ~ is solved from the following relationship obtained
M .
by rea~-2nging equation (41):
T - T ~3/2 ~ - ~e - ~ ] I ~ ~ ~44)
M 1 Ns N-l MAX Ns
e . - e e - e ~:
MAX Ns MAX Ns
,, ,
Equation (44) is then solved for.T to obtain the total movement
M
~ time T for each axis by adding the quantity 2T to T = T . As
: s 1 M s
before, the greatest value of T amonq the manipulator axes defines
s
the minimum execution time T .
s
The details of the above long and short move analyses for
the simplified joint predict method are illustrated in flow diagram
. . .
form in FIGS. 13 and 14.
. ~ :
Considering now the modified axi~ predict method, the
~ : calculations and the basic approach is sim lar to the simplified
:~ 20 . joint predict method except that the quantities T and T are not .
~; ~ set equal. The following relationships define the approach to
calculating T and T for the short move analysis:
1~ . T - X . T ~ K ~45)
: 2 1 1 2
., '.
K = [a - e ] (46)
1 MAX N
a t b')
MAX 1~ . . .
-56-
~lJ.1~279
K = 16 - e ) (~ (47
2 N-l ~s
a t ~
aTl + bTl + c = O (48j
. .
Where: .., .. - 2
(a) = [~e + e K ~ ~e ~ - ~a - a K -~ ~ K ]. (49)
N N 1 N 1 MAX ~ MAX
-- . .
(b) = [e t e Kl + e K + e K K - e
Ns Ns ~ 2 N 1 2 (N-l) F (N-l)F
+ a X K - a ~2] (50)
MAX 1 2 MAX
' 2 2
(c) - [~ e t e K t ~e x2 e K2 ~ ~a K ] (51)
S Ns 2 N (N-l)F MAX 2
; For the long move analysis, the following relationships
are utilized:
I' - [e - e
1 MAX (N-l)P _ . (S2)
MAX
... -- ~ .. ..
T -- [e - e ~ e ) - e T
2 MAX Ns ~ MAX (N-l)F N M ~53)
.. . M~X
a ~e
MAX N
....... . . . .. -
Where: .
2 Kl TM ~ ~2 (5~)
, . .
,
~ K = I-e ] (55)
.~ . 1 N
: a t e
MAX N
- . ..
K - [e - e(e e ) + (e ~ e )] - (s6)
2 MAX Ns N MAX N (N-l?F
a a
~,L~r MAX
, .
a ~ e
MPX N
T = (T ~ K2) (57)
(lX2)
-57-
279
. (
T - T (1 ~ K ) (58)
~lKl) ~ 1
(a) T t (b) T t c ~ 0 (54)
(MlKl) (MlXl)
(a) ~ 1~ ~ a X 1 (60)
N MAX
2~1~Kl)2 '~
(b) ~ [e ~ e T - e + aX K ] (61)
~s N (lK2) MAX ~X 1 2
(l~Kl) (1 1~ ,
) - i'\ e ~ ~ T ~ ~e T- - ~e ~ T (62)
S ~s (lK2) N (lK2) (N-l)F 1
0 -~e T - e K ~ ~a ~ 2 ]
MAX 1 MAX 2 ~ ~
The time of the overall move T = ~1 ~ T2 t TM may then be solved
for each axis to determine the axis requiring the greatest executio
time. The quantity T is calculated and then T is found from
(MlKi) M
equation (58). The quantity T is then calculated from eauation (5~).
In accordance with other important aspects of the present
inventlon, the teach-assist computer 34 is arranged to selecti~ely
calculate and project a predetermined twist sequence for the
welding gun carried by the manipulator arm 11. ~he twist sequence
-
in playback operation changes the orientation of the welding gun
; during the weld to reduc,e,,the prob,a,bility of,,,a ,w,eld gun stick
wherein the welding gun tips stick or remain attached to the work-
piece when the welding gun tips are programmed to open. The
, orientation change added by the twist sequence is in addition
to any orientation change of the manipulator arm in accordance with
the projected tracking of the weld point on the workpiece during
the weld step.
-58-
Z7~
(
The twist sequence in one specific embodiment programs a
continuous twisting orientation of the welding gun in a first
predetermined direction during each weld step and correspondingly
programs a continuous twisting orientation in the opposite direction
during the advance steps before and after each weld step. A pre-
determined desired twist angle is determined in accordance with.
we.~ing parameterS and practi.ce. For exam?le and referring
~o ~ . 8, a twist or change in orien.ation TW tin degrees) of the
welding gun hand se5~ent h4 (defined by points S and T) by suitable
movément of the point R and wi.h the h4 segment remaininy fixed
in position to accomplish a 10 orientation change for each one
second of welding time is suitable to reduce the probability of a
weld stick to the largest extent possible. Thus, for a typical ;4
.6econd welding step, I~l equal to 4 change in orientation or twist
15 of the h4 segment defined by the-points-.S and ~ by appropriate movement- . -
of the point R on the manipulator arm is-calculated by the teach
assist computer over the weld step. Further, a 4 change in
orientation of the h4 segment in the opposite direction is
calculated during the advance steps between weld steps. 1.
This is accom~lished by calculating a ~TW/2 twist
orientation at the start of the weld step and a -TW/2 twist
orientation at the end of the weld step. Thus, the welding gun
during the advance steps betwe.en successive weld steps twists
through a -TW/2 orientation to a ~TW/2 orientation. During each
weld step, the welding gun twists through a ~TW/2 to a -TW/2 orientation
.relative to the static taught orientation.
For example, with the twist function active and referring
to FIG. 13A, the teach assist computer-performs a modification
_59_
279
.
of the /T / transform data to add a ~TW/2 factor. To accomplish
N ST
this, a decision block is provided in the program flow after the
CONVERT ~LOCK adjacent the reference marker C. The decision block
interrogates the input data from the terminal 36 and the teach
S controls to decide IS THIS CP WELD? and IS Th'IST FV~CTION ON?
If the determination is NO, the program flow proceeds to the
TRA~SL~TE bloc~. If the determination is YES, the program flow
r-cceeds from the decision block to a CALCULATr block to modify the
/T / transform data by adding the twist orientation factor
~ ST ~TW/2
10 tl~'~2 to obtain the modified transform data /T / . Thus,
tTW/2 N ST
in effect the data /TN/ST has been substituted for /T /
N ST
The remaining program flow in FIG. 13A through the
reference marker F then proceeds to operate on the modified data
in the identical manner as discussed hereinbefore but with the
; 15 twist factor added. The calculated,- projected end point at the
end of the advance steps and the start of the next.weld then includes
the ~TW/2 twist orientation factor. The end point of the advance
- steps after a weld step N-l as disc~ssed hereinbe~ore corresponds
to the start of the weld step N.
Similarly and referring now to the blocks after the
- reference marker F, after the CP ~LD? decision block, another
decision blocX is provided intermediate the CP WELD? decision
bloc~ and the GET T~ AND GENERATE /T / block. The added
- N CV~2Tl~TW
decision block performs the determination IS TWIST FUNCTION ON?
If the determination is NO, the program flow proceeds to the adjacent
GET TW and GEN~RATE /T / block. If the determination is
N CV~2TltTW
YES, the program flow proceeds to the C~LCULATE block to modify
the /T / transform data to /T / . The program flow then
N ST N ST
--60--
7'3
f ~.
proceeds to the GET TW and GENERATE /T / block, ~owever,
now the transform data /T / T / is utilize~ to obtain the data
_TW/2 N ST
/T / in the next block and succeeding portions of
~ CVt2Tl~TW
the program. Thus, the end of the weld step N will include an
orientation twist change of -TW/2 when the twist function is active,
In playback and in accordance with the data calculated
during the teaching mode and stored in the memory 16, the welding
r~n is controlled to twist through an orientation from ~TW/2 to
~ atween the end of each weld N-l and the beginning of the next
weld N. Further, the welding gun is controlled during each weld
to twist through an orientation from -TW/2 at the beginning of each
weld step to ~TW/2 at the end of each weld step.
5n accordance with further important aspects of the present
invention, a track alarm sequence is calculated during the teaching
mode and'storea-in the memory 16 for-each weld step that is taught. : -
In playback, the trackalarm sequence-'is~ addressed for a respective
weld step if a weld stick is detected a predetermined time interval
ts after the end of a weld step. Thus, the manipulator memory 16
is jump-addressed to read out ':he track alarm sequence data
corresponding to the weld step at which the weld stick is detected,
Imme~iately after -"stick" is detected in accordance with the track
alarm sequence data calculated'in the teaching mode and stored in
the memory 16, the manipulator control apparatus outputs an e~ternal
control signal to the conveyor control equipment to shut down the
conveyor. The details of the track alarm sequence in playback will
be discussed hereinafter.
The manipulator is then controlled in accordance with
the tracX alarm sequence data rather than the normal worX operation
(` 1~ 7~ (
program to track the workpiece point at which the welding gun
is stuck. The work operation program in accordance with the data
in the memory 16 would typically command the manipulator arm to
move to the next weld point in the predetermined sequence of the
work operation program. If this occurred during a weld stick
condition, damage to the workpiece and/or the manipulator apparatus
could be possible.
In a specific em~odiment, the manipulator control memory
16 includes 512 addressed steps or program locations each of which
having associated therewith 8 data words (as further explained in
detail hereinafter in connection with TABLE I). A typical work
operation program is assigned the address locations 0 to 255;
256 program steps. Thus, a work operation program including 48
welds, three advance steps or each weld or-144 steps and various
other manipulator control steps is pr-ovided by this arrangement.
For example, a typical work operatlon program includes 30 weld steps.
The address locations 256 to 447 (192 steps) are assigned to the
track alarm steps with four track alarm steps being assigned to
each weld, 48 times 4. Thus, the steps or address locations 2S6-
259 are associated with the first weld, the steps 260-263 are
associated with the second weld and so forth.
During the teaching mode, the teach-assist computer 34
translates the projected manipulator arm position and workpiece
position of the end point of each weld to calculate the four track
alarm steps associated with each weld step. In accordance with
the number of the weld step in the overall worX program operations
including a predetermined sequence of welds, the teach-assist
computer 34 assigns the address location of the four track alarm
steps for recording into memory 16 as discussed hereinbefore~ The
-6~-
79 c
first trac~ alarm step of each four step track alarm sequence:
is calculated as a PTPC step. This is accomplishe~ by the teach-assist
computer 34 by projecting or translating the calculated manipulator
arm position and workpiece position corresponding to the end of
the weld point being taught. The manipulator arm position and the
worXpiece position zre translated in accordance with the projected
workpiece displacement during a time interval equal to the sum of
t:.- time ts, the weld stick detect time in playback, plus a pre-
determined lead time ~\ t. Thus in playbacX, when a weld stick
is detected at the time interval ts-after the end of the weld step,
the projected first track alarm step of the four step track alarm
sequence will be addressed and utilized to command the arm to move
to a point leading the arm by an amount equal to the projected
distance moved by the workpiece in the time inter~al ~ t; providing
an advance tracking position. -
The-second, third and fourthtracX alarm steps of each
track alarm sequence are programmed as CP (ACC-0) tracking steps
to translate the manipulator arm position corresponding to the
stick weld point in accordance with projected worXpiece movement.
The steps are calculated utilizing 256 interpolation intervals
and a X factor of ~ to provide the largest possible tracking
time (512 conveyor LSD step le~gth) before the conveyor i9 shut down.
This four step tracX alarm sequence provides approximately 5 seconds
of tracking time at a projected wor~piece velocity of six inches per
second. This corresponds to approximately 30 inches of conveyor
travel during the track alarm sequence.
In all the track alarm steps of each track alarm
sequence, an operate external data bit OX is programmed
r ~ 9Z79
at a predetermined control bit location ~ne of the Cl-C10 bits
in the Group Data Pormat Table 1) to control the shut down of the
conveyor control equipment in playback.
In accordance with yet further important aspects of the
present invention, a predetermined number of escape paths are taught
and projected during the teaching mode corresponding to a respective
n ~ber of designated program escape steps in the work operation pro-
gram. The taught escape paths are recorded into the control memory
16 and utilized in playback to withdraw the manipulator arm ~rom the
workpiece area upon the actuation of an escape control after the
program step is reached corresponding to the next designated es-
cape step. A withdrawal or escape of the manipulator arm may be
required in the discretion o an operator in the case of a work-
~piece conveyor malfunction or misalignment, obstruction in the work-
piece area or undesirable behavior of the manipulator arm.
For example, in a specific embodlment eight escape paths
are taught at eiqht respective program steps chosen by the teach
operator. Each of the escape paths is assigned eight program steps
or address locations in the 448-511 ranqe of address locations.
T~pically, the eight escape paths are spaced approximately equally
throughout the work operation program; for example every three to
five welds to define escape zones.
-64-
279
In playback, after the escape control is actuated, and
at the end of the next designated escape step in the program,
the memory 16 is advanced or jump-addressed to the first escape
path step in the escape path s_quence corresponding to the
designated escape step in the work operation program. The
remaining seven escape path steps are then sequentially read out
er the control of the manipulator control apparatus. The
de~di1S OL the escape path operation in playbacX will be described
in de~ail hereinafter.
~uring the teaching mode, the operator selects a
particular program step as a designated escape step by an
input command to the terminal 36. The teach-assist computer 34
then programs an E/F escape flag in the data to be recorded in the
' control memory 16 to denote an escape flag data bit E/F-when the
15; data is read-out in playback (bit position 15 of the Group 8
data in TABLE I). The teach operator at the designated es-
cape. step of the work operation program then proceeds to teach
a series of escape path step~s,~ eight if required, to teach a with-
drawal of the manipulator arm from the projected position relati~e
to the workpiece currently beinq taught in the worX operation
program.
. ' ~
-65-
Z79
As discussed hereinbefore, the teach operator may
advance the conveyor during the teaching of the escape path steps
in accordance with the normal collision and foreseeability
criteria if reouired. In a specific e~bodiment, the first escape
path step is taught and programmed as a PTPC step and the
remaining escape ~ath steps are taught as either PTPC steps
or CP steps as will be explained in more detail hereinafter.
Considering now the on-line control apparatus 14 and
re ..r-ing to ~IG. 15, the encoder apparatus for each of the cbntrol
axes of the manipulator and the conveyor encoder 32 are referred to
generally at 500. .The encoders for each of the axes and the conveyor
encoder 32 each generate an output signal representing the respective
axis or conveyor position on a multiple number of data lines referre~
to;generally at 502 as discussed in more detail in application Seri_
Nos.-721,805 and 625,932.
The encoder output data 502 is connec.ed to a scanner/
register/converter stage 504 along with a group of system multiplex
scan signals G2 through G8 referred to generally at 504.
An address and scan control stage 508 generates the
~o m~ltiplex group scan sigDal~ Gl through G8 by dscoding a basic
_ ... . _ .... _ _ ,, ,
-66-
C
system clock signal. The signals GC0-2 are also generated by the
address and scan control stage and represent the group multiplex scan
intervals as a 3 bit coded sisnal. Each of the multiplex group
scan interval signals Gn, n = 1 through 8, is active during a
respective sequential scan interval in each Oc the repetitive group
scan cycles. Reference may be made to the aforementioned application
Se~-i21 Nos. 721,805 and 625,932 for a discussion of the group
ultiplex scan signals and the general operation ofmanipulator
control apparatus of this general type.
The entlre on-line control apparatus 14 is synchronized
to the basic system clock and the group multiplex scan signals Gl
through G8. ~eferring now to FIG. 17, the timing control stage 512
divides the basic system clock frequency and thus each of the
~~- multiplex scan signals Gn into 32 program time intervals according
to the signal W~0. The signal W~0 is 32 times the=frequency of the
basic system clock. 'The signal W~ and the multiplex'group scan
signals Gn are utilized to generate the synchronous timing signals
for the overall manipulator control circuitry as will be dis-
' cussed in more detail hereinafter.
Th'e scanner/register/converter stage 504 produces a multiplexed
data output E to a data select stage 506. Thus the encoder data for
each of the axes and the conveyor are multiplexed and outputted
to the data select stage 506 during a respective multiplex scan
interval of the multiplex group scan signals G2 through G8.
The data generated by the off-line teach apparatus 30
dusing the off-line teaching mode is outputted on a data bus
referred to generally at ZE . The data bus ZE is connected to a
second input of the data select stage 506. The data select stage 506
-67-
(~
outputs either the E data or the ZE data determined by a data
n n
select input ~TT and a Request Encoder Data timing signal RBFE
onto a main system data bus referred to generally at ED . Thus,
in the off-line teaching mode, when data is to be inputted from the
off-line teach apparatus 30 to either the main control memory 16
or to other control apparatus of the manipulator via the ED bus,
the ZTT data select signal is active to select the ZE data input.
'i~ne ZE data is generated by the off-line apparatus 30 and arranged
in the s~me multiplex format as the E and the ED data. The RBFE
timing signal is generated by the timing control stage 512. The
RBFE timing signal is active during the ninth through eleventh
program time intervals of the W~ signal in each of the scan intervals
G2 through G8 to output the data from the data select stage 506 to
the EDn bus-
The memory 16 reads out or writes in data by address
location and the memory address is controlled by an address data
bus signal AC . The address data bus signal is generated by the
address and scan control stage 508. The read and write modes of
~e memory 16 are controlled by a Memory Interrogate Timing signal
WCB and a mode signal WMC generated by the timing control stage 5~.The WCB timing signal (FIG. 17) is active during the second program
time interval to read data out of the memory 16 onto a data bus D ,
The WCB timing signal also is active during the tenth program time
interval to write data into memory from the E~ data bus with the
presence of the ~IC mode signal during the off-line teaching mode.
The D data bus is connected to a data selector stage 510
that includes a buffer for transfer of the data read out of
the memory 16 during the second program time interval. The data
selector stage 510 is controlled by a Request ~emory Data timing
-68-
79
signal RBFD generated by the timing control stage during the second
and third program time intervals. Thus, the da~a read out of the
memory 16 onto the data bus D during the second and third program
time intervals is also .transferred thru the buffer to the data
S select stage 510, snd outputted to the ED data bus during the second
and third program time intervals.
Considering now the data format of the various data
b..:es and the memory 16, T~BLE I illustrates one particular data
form'::
-69-
~9;;~7~ (
_ , ~ _ _ _ ~ _ l I
_ _ _ _ I ~
C ~Z ~ S IO S O ~ C
,~t, o
_ ~ _ _ ~
~ ., ., " ~ ~3 ~3 ,~ ,
~ ~ ~ ~n I_ ~ X ~ ~n
_ . _
., ., ., ., W ~3 ~3 ~ ,
~ J I_ C:l C~ I_ ~ X X ~p
. t~ O _ ~p ~0 W l_
(-~ _ t~` t~ t~ I W tl:l ~_~ 1~_
~_ I_ ~_ ~,_ 1- I W I_ 1._ (~
_ _ __ _ ,
~ ~ PJ ~ ~ ~,
_ _ _
~ 1~3 ~ ~ ~y ~ ~ ~ l_
_ __ _ t'3
,' ~ W ~ W ~ W ~ $ 1_
_ _. _ O O O O . O . O . o _ . H
t'3 W t'~ W-- ~ .. t~ - _ ~ ~ - - ~ .. . .
_ . _ .. -' _ ....
t~ W ~ ~ t~ t~ W t~ tl:~ ,
a~ :~ ,c:l CD CD ~ CO (W)
_ __ _
~ W ~ ~ ~ ~ W
~I ~I ~I ~ ~I ~I
. _ _ _ _
W ~ ~ ~ ~ ~ ~ 0
~ C~ ~ O~ ~ ~ '~
_ _ , _
~g ~ t'3 ~ ~ ~ X U~
~n ~n Ul U~ V~ ~ ~n I_
_ _ .
~ ~ ~ ~ ~. ~.. $.. ~ ~ .
_ _ _
W W ~ W
~ W W W W ~ ~ W
_ _ . __ .
P~ ~ ~ W ~ W W Z: .~,
__
Z: ,
, , , , , , ~ ,
. "~ ~ W ~- Z ~ ~ 3 1
~ ~ ~ a ~ o l
(S . I
O O W I
~ ~ )~ I~ ~ I~ oo~
~~ )~ ~~ O ~ ol-O~n
_70_
1119Z79
The fifteen columns, referred to as bits and numbered one
through fifteen, each identify a respective data bit position
and data line. For example, the data on the buses E~n,Dn, E and
each of the encoder outputs at 502 is arranged in a binary
5 data format on fifteen data lines. The group column
identifying the eight numbered rows refers to the multiplex
scan interval sequence. Thus, during the first group
multiplex scan interval Gl, the row of data labeled CONTROL
:s presented on the fifteen line Dn data bus from the memory
i6. Similarly the second through eighth rows are present
on the data buses during the multiplex group scan intervals
G2 through G8.
The encoders for the respective manipulator control
axes in the third throush eighth rows output the indicated
positional representation data for the respective axes at
S02. The swivel,_bend, up-down,_and yaw axes each include
an encoder output having.thirteen digital bits of positional
information. The rotary axis includes a fifteen bit output
and the in-out axis includes a twelve bit output. The
conveyor encoder 32 generates a thirteen bit output
representing the conveyor position. The encoder output
bits are referred to as El through E13. For example, the
control data group readout of memory during the Gl scan
inter~al includes two mode bits Ml and M2 at locations 5 and
6. These two bits are decoded as shown in the insert table
to Table I for the various operational modes discussed
hereinbe~ore. The 1, 2 and 3 bit positions of the Control
Group 1 include the coded bi.ts Nl, N2 and N3. The bits Nl,
. N2 and N3 represent the number of interpolation intervals
assigned to the particular step. The 14 and 15 bit positions
during the Gl, G2 and G3 scan intervals include the TKl-TX6
79
! . coded data bits to define the velocity constant Y~v. The
coded interpolation interval bit N3 is also utilized when a
CP mode is decoded from the Ml and M2 bits to determine
whether the step is a CP(A,C-~=0) or a CP(ACC~0) step. A-
"one" in the ~3 bit position during a decoded CP step
denotes an acceleration step CP(ACC~0) if the Nl and N2 .
~its are not both "zero". The 4 bit position in the control
group 1 is an E/P bit that is decoded to signal an end of
~ jram step.
The on-line control apparatus 14 includes an
arithmetic computer and processor stase 514 that performs
the computations as discussed hereinbefore in connection
with the on-line computations and control unit 18. The
arithmetic computer and processor stage 514 includes a
processor program memory 516 which has stored therein a
formatted addressable series of program data words or --
control words. In-a specific preferred e~bodiment,~the
control words include 16 data bit lines to address and
control the functions of an arithmetic unit 518 of the
arithmetic computer and processor unit 514. The control
word data bus is referred to qenerally at 520. The specific
format and control arrangement of the control word outputted
on data bus 520 is discussed in more detail hereinafter in
connection with the Ta~le II and the details of the
arithmetic computer and processor unit 514 of FIG. 16.
In a specific preferred embodiment, the processor
program memory 516 includes stored therein a sequence program
of 32 control words each having 16 bits and sequentially
addressed by the Wl through W5 timing signals. Each
sequence of 32 control words defines a specific operational
mode as will be discussed in more detail in connection with
~ables V and VI.
,9~9
The processor program memory stage 516 includes
five address signals Wl through W5. The Wl through W5
address signals are controlled by the timing control signals
Wl through W5 respectively (Figure 17). The Wl through W5
timing signals are generated by the timing control stage 512.
The Wl through W5 timing signals are obtained at the
respective divide by 2, 4, 8, 16 and 32 outputs of a divide
by 32 counter. In addition to the Wl through W5 address
signals, the processor program memory stage 516 also includes
a three bit program mode address bus 522, AP5-7, to select the
specified program mode or sequence. The program address signals AP5-
7 are encoded from various coded signals as will be explained in
detail hereinafter. Thus, the processor program memory 516 in-
cludes an eight-bit address, three program mode address signals on
data bus 522 and five program address signals Wl through W5. For
a particular program sequence selected on the program mode address
bus 522, the 32 control words associated with the selected program
mode are sequentially addressed by the timing data on the lines
Wl through W5. The program mode address AP5-7 on data bus 522
remains constant during the sequential output of the 32 control
words.
In a preferred embodiment, the arithmetic unit 518
includes a nu~ber of logic elements each of which is
controlled by predetermined data bits of the control word on
bus 520.
The EDn data bus is a bi-directional data bus with
the directional state determined by the various timing
signals discussed hereinbefore. The EDn data bus is
connected to the arithmetic unit 518 and is also connected
to an interpolation timing and mode decoding stage 530.
The interpolation timing and mode decoding stage 530 in-
cludes a mode decoder/encoder stage 532. The mode decoder/encoder
- 73 -
stage 532 encodes the program address signals AP5-7 on the program
mode address bus 522. The mode decoder/encoder stage 532 also
decodes the playback mode signals PTPC, PTP, CP and CPW from the mode
bits Ml and M2 on the EDn bus during the Gl scan time interval. A
5 TEACH signal, an initialization signal, I~ITIL., an end of CP step
signal ES, and an acceleration mode signal, ACL, are utilized as
input signals by the mode decoder/encoder stage in addition to the
~ode bits Ml and M2 to senerate the APS-7 program mode address
signals. The follo~ing AP;-7 program mode acdress signals are
encoded on the data bus 522 in accordance with the inputs to the
mode decoder/encoder stage 532:
MODE . . AP 7 6 5
TEACH-INITIALIZE (TOP) 0 0 0
TEACH 0 0
PTP O 1 0
ES (End of Interpolation Step) 0
~__ lS CP (ACC=0) 1 0 0
CP (ACCrO) -. " .. . ~ -O - 1 -
The ACL signal is decoded by an in.erpolation
interval number decoder stage 534. The ACL signal is
decoded and generated when the interpolation interval coded
bits N3, N2 and Nl are a "lOl" or a "110". As discussed
` hereinbefore, these codes represent a CPtACC~0~ mode,
an acceleration step. The interpolation interval number
decoder stage 534 also decodes the information in the N3,
; N2 and Nl coded bits during the Gl scan interval to output
the number of interpolation intervals assigned and coded
for the particular program address step. In a specific
embodiment, there are five predetermined number of
interpolation intervals assigned to a particular step. The
interpolation interval number decoder stage 534 generates
a signal on one of five outputs 16, 32, 64, 128 or 256 in
accordance with the information coded in the N3, N2 and Nl
bits as shown in Table I.
.
-74-
~L119279 (
An Nt2) decoder stage 536 is provided to output
the three data bits N3, N2 and ~1 at a data bus 538 when a
D2, divide by 2, input control sisnal is a low logic state.
~hen the D2 control signal is a high logic level, the N(2)
decoder 536 ou~puts the incremented ~3, ~2 and ~1 code
by adding a "1" to the inputted code. The D2 control input
is a predetermined line or data bit of the 16 bit control
word of the data bus 520. The data bus 538 is connected to
the P.rithmetic ~nit 518. The Xv constant is decoded from the
TY~i - TK6 data bits during the Gl, G2 and G3 multiplex scan
ini~ervals by a Kv velocity constant decoder stage 540. The
Kv velocity constant decodes stage 540 generates a digital
output on a data bus 542. The velocity constant data bus
542 is connected to one input of a data select stage 550.
The second input 552 to the data select stage 550
xepresents the quantity m, the output state of an interpolation
counter 554. The operation and structure of the interpolation
- . ~
counter 554 is explained in more detail in the aforementioned
.. - ,, ~ . . .. . -
application serial Nos. 721,805 and 625,932.
The quantSty m, represents the interpolation interval current-
ly being generated in tlie series of assigned number of interpolation
intervals. The data select stage 550 is controlled by the
logic state of a data select signal DATA SEL. The data
- select signal DATA SEL is connected to a predetermined data
bit of the control word on the data bus 520. An output
enable data line E/D is connected to the data select stage
550. The data select stage 550 outputs the data ~rom data
bus 542 or data bus 552 on an output data bus EXT B
dependent upon the logic state of the DATA SEL signal and
the E/D signal. The data bus EXT B is connected to the
arithmetic unit 518. In a specific embodiment, the EXT B
bus is expanded from the 8 bit input on the buses 542 and
552 to a 15 bit output, Thus, the data select stage 550
includes a logic array to hold the number of expanded, unused
_75_ ~
79
data lines to a zero logic state when the EXT B data bus is
active to output data as determined by the E/D control line
from the control word ~us 520.
The interpolation counter 55g in a specific
embodiment is a divide by 256 counter with 9 binary state
outputs determining the nu~ber m of the current interpolation
interval on data bus 552. The output state m on the data bus 552
is also connected to an end of step detector 556. The number of
interpolation interval signals, the 16, 32, 64, 12~ and 256 outputs
of the int~rrolation interval number deco~er 53~ are connected to a
second ~ata input of the end of step detector stage 556. The er.r_
of step detector 556 includes a logic qate array as ~escribed
in more detail in the aforementioned application Serial No. 721,805
to output an end of step signal ES when the output state of the
data bus 552 representing the interpolation number m corresponds
_ . . .............. . . . . .
- to the number of decoded interpolation intervals assigned to the
current step. The interpolation counter 554 is reset a pre-
determined period of time after the end of step detector 556
detects an equality and generates an ES signal.
The interpolation counter 554 is ad~ranced in count by a
signal CVTC representing a conveyor coincidence signal. The conveyor
coincidence signal CVTC is generated by a conve~or synchronization
control stage 560. The conveyor synchroniiation control stage 560
. is implemented by a number of logic gates and memory elements
as further described in the aforementioned application Serial No.
721,805. The conveyor synchronization control stage 560 generates
a CVTC conveyor coincidence signal in accordance with the P and M
signal inputs from a comparator and D~A converter stage 564.
The comparator and D/A converter stage 564 compares the
present conveyor o~ put signal from the aritmetic unit 518 in the CP
mode on the ED bus (or as read out of the memory 16 in a PTP
-76-
11:19279
or PTPC mode) ~ith the conveyor encoder data generated by the
conveyor encoder 32 in the G2 conveyor scan interval. When coin-
cidence is detected by the comparator and D/A converter stage 564,
the P and M signal lines are both a low logic state enabling the
conveyor synchronization control stage 560 to generate a CVTC conveyor
coincide~ce signal to the interpolation cou~ er 554. The CVTC
signal advances the output 552 of the interpolation counteri554
b,~ one binary state. Thus the . quantity m is advanced by one
' .,; nary nu~ber. The conveyor synchronization control stage 560 is
ena~!ed during the S2 time interval (FIG. 17) at a predetermined
point during the G2 scan interval.
The comparator and D/A converter stage 564 includes a
buffer register stage that is loaded each scan interval Gn with the
: respective encoder data during the ninth through eleventh program
~_ 15 timing intervals and latched during the eleventh program timing
interval by an ECLK timing signal generated by the timing control
stage''S12. The position comman'd signals generated by the arith-
'metic/processor unit 51~ during each scan interval Gn are outputted
on the EDn data bus during the 23rd program timing interval by a
timing signal POSC generated by the timing control stage 512. The
comparator and D/A converter stage 564 compares the respective
positional co~nand signals and the encoder signals during a co~mand
sa~nple interval during the 24 through 32 program time intervàls
during each scan interval Gn. The comparator and D/A converter
stage 554 also includes a D/A converter operating on a multiplex
, basis. The multiplexed analog output EE~ of the D/A converter 564
represents the analog result of the digital data comparison
performed during each scan interval Gn. The multiplexed analog
-77-
7~9
output EER of the D/A converter 564 is connected to six servo
loop control stages one for each axis. For simplicity only the
rotary servo loop control stage 580 is shown in Figure 15. However,
it should be realized that there are six such control stages.
The servo loop control stage 580 includes an acceleration
command input signal ACC-4 COM and a velocity command signal
input VEL-4 COM. The ACC-4 CO~I and the VEL-4 COM signals are
generated by a velocity/acceleration command stage 582. There
are six such velocity/accelerstion commands demultiplexed and
generated by the stage 582, one for each of the axes. The velocity/
acceleration command stage 582 generates the ACC COM signals and the
VEL COM signals from the data outputted to the EDn output bus from
the arithmetic computer ~nd processor unit 514.
The EDn data bus during the 12th program timing interval
of each Gn scan interval (G4 for rotary) represents the acceleration
command signal in digital form generated by the arithmetic unit
518. The ED data bus during the 15th program timing interval
represents the velocity command generated by the arithmetic unit
518. The EDn data bus is connected to the input of an acceleration
register 584 and to the input of a velocity register 586. The
acceleration register stage 584 is controlled by an ACLK acceleration
timing signal generated during the 12th program timing interval by
the timing control stage 512. The velocity register stage 586 is
controlled by a VCLK timing signal generated during the 15th
program timing interval by the timing control stage 512.
j - 78 -
~9'~79 ~ (
The buffered output of the acceLeration register 584 is connected
to a multiplying D/A converter similar to the type described in
the aforementioned application Serial No. 721,805. The
multiplying reference input to the D/A converter 588 is connected
to the output of a scaler stage 530 that scales a conveyor tachometer
input signal CVTK The CVT~ signal is generated by a conveyor
t_chometer included in a sensor/transducer stage referred to
genera~ly at 592. The CVTK siqnal is scaled by a factor to
reprssent correct acceleration units,for example performlng
an x square function.
Similarly, the velocity register 586 is connected to a
D/A convsrter 594 including the CVTK conveyor tachometer signal
as a multiplying reference input. The D/A converters 588 and
~ _ .
594 are controlled to update the analog outputs by the Sn timing
sisnal. Thus, the D/A converters 588 and 594 include respective,
~edicated sample and hold stages for each of the six controlled
axes and output a respective analog representation ACC COM and
VEL CO~S of the digital command signals on the EDn bus in accordance
with the present conveyor speed. A timing stage 596 is connected
to the Sn timing signals to produce a delayed Sn" timing signal
for use by the rotary servo loop eontrol stags 580 and other axas
to insure the output of an unambiquous, stable ACC COM signal and
a VE~ COM signal before the EE~, ACC COM and VEL COM signals are
combined by the rotary servo loop control stage 580 and the
other qtages.
-79-
79
The rotary servo loop control stage 580, includes a
loop combiner 606 having the VEL COM signal as one input. A second
input 608 to the loop co~ibiner 606 is generated at the output of
a constant and differentiator stage 610. The input of the stage
S 610 is connected to the multiplexed and EER positional error signal.
The stage 610 includes a sample and hold circuit to de.~ultiplex
the EER-4 positional error signal as controlled by the timing
nal S4". The constant and d;fferentiator stage 610 provides
an ap~ropriate loop scaling constant and a differentiator function.
A third input 612 to the loop combiner 606 is generated at the
output of a constant and differentiator stage 614. The input to
the constant differentiator stage 614 is a velocity feedback
signal FELF-4 from the rotary axis. An appropriate respective
velocity feedback signal VELF-n is provided for each of the other
five controlled axes. The output 616 of the combiner 606 is
connected through a loop constant and scaling staqe 618 to the
input 620 of a second loop combiner 622.
The acceieration command signal ACC COM is connected
through an inertia scaling stage 624 where required as determined
.
. .
; .
-80-
g ~,
by the acceleration feedbac~ signal. The output of the inertia
scaling sta~e 624 is connected to a second input 626 of the second
loop combiner 622. An acceleration feedback signa! ACC-4 is
connected to a third input 628 of the servo loop combiner 622.
The output 629 of the second loop combiner 622 re?resents the
composite acceleration, velocity, and position servo loop command
si~nal connected to the servo valve sta~e 600.
The acceleration feedback signal ACLF may be obtained
either bv an a~elerometer or by differentiating the VE~F feedback
signal as further discussed in copending application Serial
~o. 732,977.
To detect a weld gun sticX during playbacX, the sensor/
transducer stage 592 provides a detector signal output ST~. The
~- - detector signal STK is generated by a sensor device a microswitch
for example, connected to sense the'posl~i'bn of the'welding gun
tips. For exaJmple if only one' o'f'the~tips of the welding gun, as
diagrammatically illustrated in FIG. 8, is movable to accomplish a
weld at the point T and the other weld tip is fixed, then the
sensor device is arranged to be actuated by the movable tip.
~0 If both tips of the welding gun are movable to accomplish a weld,
then a sensor is provided on one or both of the tips.
When a weld is to be performed as determined by the data
read out of the memory 16, the mode signal CPW and a predetermined
number of the control bits Cl-C10 are utilized as external control
- 25 data bits OX to control the welding equipment and to close
the welding tips of the welding gun. The CPW signal is active or
a "high" data level during the weld step and returns to a
"low" data level at the end of the weld.
-81-
79
The STK sensor signal is utilized to detect the weld tips
sticking (not opening) after the end o' a weld step when the welding
tips h~ve been com~anded to open and the CPW signal is a "low"
level. Typically, at this time in the work operation program, the
manipulator arm in accordance with the stored data is co~anded
to move to the next weld point in the predetermined program
sequence, steps 0-255, to accomplish the next programmed weld step.
Ho~ever, if a weld gun sticX is detected by interrogation of the
'~ s~gn~l at a predetermined time interval ts after the end of the
10 CP~ weld step, the track alarm sequence in the memory 16 as dis-
cussed hereinbefore will be addressed. The manipulator control
apparatus in accordance with the track alarm sequence data controls
the manipulator arm 11 to continuously track the weld point at
~_ which the weld was just completed rather than attempting to move
to the next programmed weld point thus avoiding damage to the work-
piece and/or the manipulator arm. In-alternate arrangements,
various sensor devices are arranged to detect a weld stick
; condition other than by the position of the weld tips; e.g. by
the continuity of the welding tips.
The weld stick detecting signal STK and the C~W welding
mode signal are utilized by a track alarm/escape address control
stage 630 to control the addressing of the memory 16 to read out
the predetermined track alarm sequence corresponding to the
weld point at which a weld stick is detected.
The track alarm/escape address control stage 630 includes
a track aiarm latch 631 that utilizes the STK signal and an
interrogate timing slgnal C~K to generate a weld stick latched
signal STKL at 632. The interrogate timing signal C~K is generated
-82-
7~ (
.
at the output of a timer 633 a predetermined time interval ts after
the ~alling edge of the CPW signal (high to low transistion).
Thus, the timing signal CHK is generated a time inte~val ts after
the end of the current weld step. The track alarm latch 631 is
set to output a stick latched signal STKL at 632 if a weld gun
sti'ck is detected (denoted by the STK signal) a time interval ts
~r the end of the current weld step.
A time interval of approximately 100 msec. for ts has
been ~ound suitable to allow adequate time for the welding gun
tips to properly open after the end of the weld step if a stick
condition is not present. The ts time interval provides adequate
time for the manipulator arm to attempt to break the weld stick
condition during the first 100 msec. interval of the advance step
- after the weld step.
The CHK interrogate-timing signal is also connected to
- a CHK control stage-634 to generate a C~KP control pulse during the
S8 timing signal interval. The CHKP timing signal is connected
to advance the state of a tracX alarm sequence counter 635 on the
~alling edge of the CHKP signal. The tracX ala-m sequence counter 635
is initialized at the start of the work program operation to a
zero state and counts up to a digital state of 47 in accordance
with the completion of~the ~eld steps;
. For example, after the completion of the first weld
step in the work operation program and the time interval ts, the
track alarm sequence counter 634 is advanced to a one state on
the falling edge of the CHKP signaL The track alarm sequence
counter 634 provides a digital output signal T~n that is connected
as an address signal to an external address preset stage 636.
-83-
11.1~79
The ST~JL signal is also connected to the external address preset
~tage 636 as a data select signal. The external address preset
stage 636 outputs a digital address counter signal An on a preaetermined
number of data address control lines, ten in a specific embodiment
to control 2 or 512 address locations. The An address counter
data is utilized to preset the presetable address counter in the
aA~ress/scan control stage 508. The preseta~le address counter
as discussed hereinbefore and as described in more detail in the
aforementioned application Serial ~os. 721,~05 and 625,932 generates
the address data bus signal ACn that addresses the program step
address location of the memory 16. -
In accordance with the specific address location and
program step assignment discussed hereinbefore, the track alarm
sequence steps are arranged at the address locations 256 to 447 in
~_.
sequences of four.steps for each weld step of the program. Tne -
first track alarm sequence corresponds to the first weld step and
is programmed in the 256 to 259 address location. Accordingly,
the external address preset stage 636 is arranged to output a
digital An address signal representing step 256 when the track
alarm counter output TAn is a zero corresponding to the first weld.
Similarly, as the trac~ alarm counter 635 is advanced
after the completion of the first weld step to increment the outp~t
TAn by one digital state to a one, the output An of the external
address preset stage 636 outputs a digital signal corresponding
to 260. The program step 260 is the address location of the first
track alarm step of the track alarm sequence for the second weld
step. Similarly, as the track alarm counter advances to the second,
-84-
third and fourth states after the second, third and fourth weld
steps respectively, the An output is set to digital states
corresponding to 264, 268 and 272 respectively.
The memory 16 is reset by a CVAR reset signal generated
on the rising edge of the CHKP signal when a weld stick is detected.
The CVAR sisnal is generated at the output of a 2 input ~AND.gate
637. The inputs to the ~AND gate 637 are connected to the CHKP
sign21 of the CHK control stage 634 and t~e STKL sisnal of the
tra~ alarm latch 631. For example, if a weld stick is detected
at the end of the first.weld step, after the time interval ts and
before the track alarm counter 635 is advanced to the one state,
the CVAR signal resets the memory 16 thro~gh memory control logic
in the address/scan control stage 508 and the An signal presets the
_ 15 presettable address counter to 256. After the teach alarm counter
635 is advanced to the one state, the presettable address counter
does not respond to the -An data;- ~
The second, third and fourth track alarm sequence steps,
for example steps 257, 25~.and 259 for a weld stick after the first
weld step, are read out of the memory 16 in accordance with the
manipulator control apparatus discussed hereinbefore. A WSP
step advance signal is generated in accordance with the completion
of a program step. The-~lSP signal is generated by the address~
scan control stage 508 in response to a TC signal from the TC
: 25 latch stage 604 for a PTP step or an ES signal from the end of step
detector 556 for the PTPC, CP and CPW steps.
All track alarm steps as discussed hereinbefore include
-85-
~1~9;~7~ i
an operate external control data bit that is read out of the
me~ory 16 and utilized by the conveyor control e~uipment to
-terminate operation of the conveyor.
The track alarm/escape address control stage 630 also
includes the control arrangements to address the escape path
sequences discussed hereinbefore in connection with the teaching
~ode.
An escape control stage.638 is pxovided to generate an
output 639 ~hen an operator personnel or supervisor actuates a
manual escape cont-ol-provided on the control panel OL the
manip~l4toir 3p~aratus.- The escape control output signal at 639
is connected to the input of an escape control latch 640. The
escape control latch 640 is set upon generation of the escape control
signal at 639 and generates an escape control latched signal at 641
to one input of an escape latch 642. The escape latch 642 includes
a second input at 643 from-an escape advance stage 644. The escape
advance stage 644 includes the S8 timing sisnal and the D15 data
bit line of the ED data bus as inputs. The D15 ~see TABLE I)
N
data bit position includes the E/F escape flag control bit to
denote or marX an escape step as discussed hereinbefore.
The escape advance stage 644 generates an output at 64~
to the escape latch 642 during the S8 ti~ing interval upon detection
of the E/F escape flag data bit. The escape latch 642 generates
an ECPL escape latch signal upon the inputs at 643 and 641 being
active. This condition corresponds to an escape flag step being
detected and the escape control being actuated. The ECPL signal is
connected to the external address preset stage 636 as an escape
address data control signal. The output 643 of the escape advance
-86-
279
stage 644 is also connected t~ the count or clock input of an
escape counter 645.
The escape counter 645 is arranged to generate a digital
output EAn representing the number of the escape ste?. In the
specific embodiment discussed hereinbefore, there are eight escape
steps arranged in the normal program steps ~255 and thus the
csc2~e counter 645 is an eight state counter. The escape counter
6~S is advanced on the falling eage of the escape advance signal
at 643. The falling edge of the signal at 643 occurs at the end of
the designated escape step being detected. Thus, the escape
counter output EAn is a zero during .he first designated escape
step and advances to a one at the end of the first escape step.
The external address preset stage 636 is arranged
to output an An signal representing the program step 448 when the
ECPL signal is active and when the EAn output is a zero correspond-
ing to the first designated or progra~med escape step. When the
EAn output is a one, the An signal represents the program step 456.
Similarly, for the third through eight designated (E/P) escape
steps, the An output is incremented by a factor of eight steps
to address the appropriate first escape path step of the
respective escape path sequences taught and recorded into the
memory 16 during the teaching mode.
The ECP~ signal is connected to one input of a two
input NA~Dgate 647. The second input of the gate 647 is connected
to the WSP step advance signal. The output of the gate 647 is
connected to the CVAR memory reset signal. Thus, the memory 16
is reset at the end of the designated escape path step being
-87-
detected assumming that the manual escape control has been actuated.
The An signal presets the address counter of the address/scan control
stage 508 to the first escape path step of the escape path sequence
corresponding to the designated escape step Shat is currently
being detected.
Briefly, and as discussed hereinbefore, if the
manual escape control has been actuated, the memory 16 is preset
~ advanced to the first step of the appropriate escape path sequence
when the next designated escape step in the normal work
operation program including an E/F data bit is detected.
Considering a specific example, assume that the first
designated escape step in the worX operation program is step 25
for example and the second designated esca?e step is 50. ~rf the
manual escape control in the escape control stage 638 is
actuated at any work operation program time during the playback
of the steps 26 to 50, the memory 16 will be preset or jump-
addressed to the first escape path step 456 of the second
escape path sequence at the end of step 50, the second designated
escape step. Once the escape path sequence is commenced,
88-
? ~ .
the taught eseape path will be performed in accordance with the
manipulator control apparatus and sequentially advanced step by
step throughout the eight eseape path steps as taught to with-
draw the ~anipulator arm.
Considering now the details of the timing control stage
S12, the arithmetie unit 518 and the processor program memory
stage 516 and referring to FIG. 16, the clock stage 650 generates
t:he ~ elock signal. The W~ signal is connected to drive a
prOgf~m address counter 652 of the timing control stage 512.
10 The counter 652 is arranged to divide the W~o signal by 32. The
Wl through W5 program address timing signals are connected to the
divide by 2, 4, 8, 16 and 32 outputs of the program address counter
652. A phase generator 654 of the timing control stage 512 is
--- eonneeted to the W0' output of the clock 650 and generates a ~SO
15 phase elock signal and a 0'1 phase clock signal. The ~ and 0'1
phase signals are each generated once each period of the W0~o
elock signal and in alternating phase relationships. The ~0 and
signals are connected to the proeessor program memory stage
516 as timing signals to allow the proeessor program memory stage
516 to output two different 16 bit eontxol words to the aritmetie
un~t .S18 within the time duration of each of the 32 program steps~
--89--
79 , I
The processor pxogram memory stage 516 includes a program
¦ memory 660 addressed by the mode address bus 522 and the program
interval timing signals ~1 through W5 as explained hereinbefore.
The progra~n memory 660 in a prsferred embodiment is a programmable
read only memory (PROM) of the type for example including 512 address
locations each of which h~s associated therewith 16 bits of data
representing a 16 bit control word. Thus the 8 bit prosram memory
~d~ ss, including the three bit mode address bus 522 and the 5
Di~ through W5 address bus defines a particular 16-bit
control word location of the 512 address locations in the
program memory 660. The particular 16-bit control word that is
addressed is outputted on the data bus 662 on 16 respective
data lines. The data output bus 662 of the program memory 660
is connected to an instruction dPcoder stage 664. The instruction
_.
decoder stage 664 -includes the ~ and ~ phase clocX signals to
modify the data state of a predetermined number of the 16 data
lines at 662 or the pass the 16 data lines at 662 unchanged Thus,
the instruction decoder stage 664 provides two control words at data
bus 520 under the selective control of the ~ and ~0 phase clock
; 20 signals when two operations are to be performed by the arithmetic
unit for a particular address location.
~n a specific embodiment, the instruction decoder
stage 664 is implemented by a number of iogic gates connected
to predetermined data lines of the 16 bit output 662 to invert the
loqic states on the predetermined data lines during the ~0 proqram
interval versus the ~1 proqram intervals.
--90--
9~79
The arithmetic unit 518 is programmed by the 16 bit
control word on the data control bus 520 and the data on the
bus 538 to perform a particular arithmetic operation. Thè data
format of the arithmetic unit 518 includes a random access data
S memory 666 that is utiliz ed for the storage of the data utilized
during the calculations performed by the arithmetic unit 518.
~eferring to TABLE II, the 16 bit control word data for-
n~t controls the mode of operation of the random access data memory
in the control word bit positions 4 and 5. Thus the 4 and 5
d~a Lines of the control word hus 520 are connected to the
control inputs of the random access memory. The digital state of
the control word in bit position 4 is an enable control and the
bit position 5 controls the read/write mode of the random access
memory 666. The memory locations of the random access data memory
666 are addressed by the 1, 2 and 3 bit positions of the control
wora on the data bus 520 as indicated in TABLE II. The random-
access data memory 666 is capable o stor ing at least 16 bits of
data (16 bit wide format) at 64 separate address locations.
Additional addressing of the memory loca~ions of the random access
data memory 666 is provided by the GC0-GC2. multiplex scan coded
lines to address a specific memory location for each of the
multiplex scan intervals G2 through G8. Thus, a total of six
address bits are used for addressing 64 address locations of the
random access data memory 666. Each of the 64 address locations
of the random access data memory 666 includes 16 bits of data
de~ining a total 64 x 16 data format.
Thus, while calculations are performed ~y the arithmetic
unit 518 for each axis during each respective scan interval,
-91--
79
TABLB II
CONTROL WORD DATA FORMAT
PROM 1 ~1 < PROM 2 ~ l
I ~ 1st Digit~ 2nd Digitl~-lst Digit- 1 2nd Digitl
INPUT ¦ RAM LOCATION
DISABLE OO~ ¦ )01 M1
DISABLE 01 J ~ l 10 M2
EX1 10 ~ 011 M3
EX2 llJ : 10l MM5
MPY CLOCK 110 M6
111 M7
DISABLE 00~~
Y 10 ~ , RAM MODE
Z 11 J ~ 0 ,RAM DISABLE
~1 RAM SELBCT
POSITION SCALAR _ ~ O RAM READ
l/N O } _ 1 ~ 1 RAM WRITE
~LU OPERATION
~OO F=ZERO
~01 F= A PLUS B
10 F= A MINUS B
= A
REGISTER 2 OUTPUT
~OO 3 STATE
Ol 3 STATE
~~ - ~ 10 DATA LATCH
~11 DATA IN
REGISTER 1 CLOCK
. ~O DISABLE
1 ENABLE
MULTIPLEXER
_ _ _ C0 DATA B
~1 DATA A
- 92 -
27~
the random access data memory 666 writes in and reads out data
under the control of the six address bits.
Ihe arithmetic unit 518 includes a 16 bit by l6 bit
digital multiplier 668. A 16 bit X data input 670 of the multiplier
668 is connected to the output of an arithmetic logic unit (ALU)
672. The arithmetic logic unit (~LU) 672 performs digital addition
and subtraction functions as well as other combinational arithmetic
functions. A 16 bit Y data input of the multiplier 668 is connected
to a digital data output bus 667 of the random access data memory
stage 666. The data output of the multiplier 668 referred to at Z,
the result of the XY digital multiplication of the X and Y inputs,
is connected to a position scaler or divider stage 674.
The multiplier 668, referring to TABLE II, is controlled
by the two data bit positions 13 and 14 of the control word for~at
as shown to xelectively disable the multiplier and to control the
X, Y and Z input/output functions.
The external data bus EXT B, representing the interpolation
number m or the Kv constant, is connected to the data output bus
667 of the random access data memory 666. The EDn bi-directional,
three state data bus is connected to the data input of the random
access dasa memory 666. The data output bus 667 of the random
access data memory 666 is also connected to an A data input of the
arithmetic logic unit tALU) 672 and to the data input of a data
register #1 675. The output 677 of the data register #1 675 is
connected to a B data input of the arithmetic logic unit ~ALU) 672.
The data output 670 of the arithmetic logic unit is also connected
to an A data input of a data multiplexer stage 676. A B data
93
, .
input of the data multiplexer stage 676 is connected to the data
output 678 of the position scaler stage 674. The data eutput 680
of the data multipl0xer stage 676 is connected to the data input
of a register #2 stage 682. The output of the register #2
stage 682 is connected to the bi-directional, three state
data bus ED .
The bi-directional nature of the EDn bus, as discussed
hereinbefore, is utilized to select data either from the EDn output
of the data selector stage S10 or the data selector stage 506 (Fig-
ure 15). The main des of the EDn data bus includes: 1) the
transfer of data into the arithmetic unit 518 and the comparator
564 as one state; 2) the transfer of data (position, velocity and
acceleration commands) from the arithmetic unit 518 out to the
comparator 564 and the velocity/acceleration command stage 582
as the second state; and 3~ internal data transmission in the arith-
metic unit 518. In addition and as discussed hereinbefore, the
various timing signals as shown in Figure 17 multiplex the data on
the EDn bus in all modes and directions. Referring again to TABLE II
and the data format of the 16 bit control word, the operation of the
arithmetic logic unit (ALU) 672 is controlled by the two data bit
positions 7 and 6. For example, a "01" command in the 7 and 6 posi-
tions respectively controls the ALU 67~ to add the A and B data in-
puts. A "1 0" command controls the ALU 672 to subtract the B data
input from the A data input. A "1 1" command controls the ALU 672 to
transfer the A data input to the ALU data output. Further, a "0 0"
command forces a zero data output of the ALU.
The multiplexer 676 is controlled by the data bit position
; 11 of the control word. A "1" in the 11 data bit position
~7 .
~i~9;;~79
controls the multiplexer 676 to ~upply the data at the data input
A and a "o~ controls the multiplexer 676 to supply the data at the
data input B. The register #2 682 is controlled by the data bit
positions 8 and 9. Data is latched upon a "01" command or a "11"
command. Data is outputted to the bi-directional, three state data
bus ED when the data bit position 9 is a "1". Thus, previously
lat~hed data is outputted to the data bus EDn with a "10" command.
In one specific embodiment, the program memory stage 660
is implemented by two PROM logic devices arranged in parallel
both as to data output and as to address control. The two PROM
devices are referred to as PROM 1 and PROM 2, TAs~E II. The PROM
1 outputs the data bit positions ~ through 16 or the control word
and the PROM 2 outputs the 1 through 8 data bit p~ itions. For
the ease of programming and documentation purposes, the 1-4 data
bit positions of the control word are referred to as the 2nd
digit of the PXOM 2 and the 5-9 data bit positions are referred to
as ~he 1st digit of the PROM 2. Similarly, the 9-12 data bit
p~sitions of the control word are referred to as the 2nd digit of
the PROM 1 and the 13-16 data bit positions are referred to as
the 1st digit of the PROM 1.
Considering now the on-line operation of the arithmetic
com~uter and processor unit 514 in more detail and referring to
TAXLE III, the symbology or abbreviations listed therein are
utilized to define the operations performed by the arithmetic ~mputer
and processor unit 514 in response to the various control words.
~he symbols in TABLE III represent the operational logic elements
of the arithmetic unit 518, the inputs and outputs of the operational
logic elements, the data inputted to and out~utted by the operational
_95_
1~19;~7~
logic elements, and the arithmetiC operationS performed. For
example, the Register ~1 674 is identified by the symbol R and the
Register ~2 682 is identified by the symbol T.
The symbology of TABLE III is then utilized to represent
the arithmetic operations performed by the arithmetic unit 518 in
response to a particular 16 bit control word as an instruction
set. Samples of various instruction set~ and the corresponding
tions per~ormed by the arithmetic unit 518 are illustrated in
~A~L lV. The column in TAB~E IV labeled "Description" represents
the operation per~ormed in terms OL the symbols of-TABLE III.
The column of TAB~E IV labeled "Operation" is an e~planation of the
corresponding operation represented by the symbols in the "Descriptic ~'
column. The column in TAs~E IV labeled l'Mneumonic'l is a program
language representation of the corresponding symbols in the
IDescription 1I c olumn. - -~
. .
The information in the TABLES III and IV is useful to
explain the various operations which the arithmetic unit 518 is
; capable of performing and are also utilized to generate the control
word programming to be stored in the program memory 660. The
mneumonlc program language representations are useful as a short-
hand notation or code to aid a programmer or design engineer to
write t~e 16 bit control words corresponding to the operation
described in the mneumonic language and the symbolic description.
For example, referring now to TABLE ~, typical arithmetic
and data handling operations and the corresponding 16 bit control
words are listed. The corresponding IlMneumonicl' representation and
"Description" representation as defined in TAB~ES III and IV
are also listed alongside each corresponding control word. The
16 bit control word for each of the typical operations is fully
-96-
~ ~19~:79
listed in the "CONTROL WORD" portion of TABLE V. Further, a
"CoDED C.W." column lists a cont~ol word code for each correspond-
ing 16 bit control word. The c i~:ol word code is formed by listing
a hexdecimal code digit for each of the 4 bit groups in the 16 bit
S control word; PROM l-DIGIT 1, PROM l-DIGIT 2, PROM 2-DIGIT 1,
PROM 2-DIGIT 2 ~TABLE II). ~or example the first control word
in TABLE V MOV M, R, represents the transfer to the Register *l of the
data in the RU~M (random access memory 666) location being addressed
~d is coded as 02 OM. The 02 OM 4 digit code represents the full
16 31t control word 0000 0010 0000 lM~1. The M code designation is
an identifier to denote the address bits of the memory location
of the random access data memory 666 corresponding to the M
bits in the 1, 2 and 3 data bit positions. These 3 address
location data bits define the particular data to be read
out or written i,n. T~-e M designation merely represents any of the
eight data locations to be defined by the particular 3 bits.
,Referring now to TABLE VI, there are listed therein six
sequence programs or operation groups to be performed by the
arithmetic unit 518. Each of the six seauence programs includes
32 control words listed sequentially. The 32 control words in
each sequence programs are listed in the code control word ~CODED
C.W.) format. The 32 control words are identified in sequence by
a hexdecimal coded address corresponding to the 32 sequential
address locationS in the program memory 660 for the particular
program sequence selected. As discussed hereinbefore, the program
sequence is addressed by the 3 bi,t mode address bus 522. The 32
sequential control word locations at the particular mode address
are addressed by the W1-~5 program interval timing signals. 'The
-97-
9;~7~ (
six sequence programs illustrated correspond to operational modes
of the manipulator control spparatus: a teach i.nitalize mode,
TOP; a teach mode TEACH; a point-to-point or point-to-point controlled
. mode, PTP or PTPC; an end of interpolation step mode during the
last interpolation interval, m - n case; a continuous path-constant
velocity mode, CP(ACC=0); and a continuous path-constant
acceleration mode, CP(ACC~0).
The operations and coded control words listed in the
~e~ence programs control the arithmetic unit 518 'o perform the
appropriate on-line computations to reconstruct the fixed path
solution as precomputed in the off-line teaching mode by the off-
line teach assist com~uter 34. The cverall computations
represented by the control words in TAB~E II for the
various sequence programs and corresponding operational modes
15 implement the equations discussed hereinbefore and listed below .
for convenience. .
MODE
. PTP: . POS = e
VE~ = On
ACC.-.0
" CP:
ACC = O: POS - en-l + en-en-l x m
N
VEL ~ ~ ~ x Kv x 64
~CC - o
n n-l
,
.
~ 98
.
~9Z79 (
CP: . . !
ACC ~ 0: ~; POS - en-l ~ e m ~ e n-l x m x 1 x N
2 N KV 64 .
e ; VEL = 2 ~\ eK 64 - e
' " 'NEW v OLD ,
e; VEL = e n~ en - en - 1) x m = em
~. , N
e; ACC = ~ e x KvX 64
'
n ~ en - 1
where . m = interp. count . ¦
N ~ ,the nu~ber of interpolation interv5alepin the,
~ /64 LSD conveyor change
Xv ~ nu~ber of inter~olation intervals/ step T:
- . nu~ber of conveyor LSD's/step jt
: . en = next position (ne~t data Dn, the end
of step n) , .
" - en-l= previous position (previous data ' ~
Dn-l, the end of step n-l) ': I -
- , eNEW= en = next'velocity (end of step r.)
~LD= ~n-l = previous velocity ~end of
.' .. ' step n-l) ,
Om = present ve,locity (commanded) , ~.
n ~ present step identification',
,
~he symbol en-l in on-line operation is al~ays utilized to refer
to the previouS position at the end of the last step data Dn 1 The ,
.
- s~ ~ol en is utilized to refer to the precomputed position at the
end of the present step data Dn to which the manipulator arm is to ',
be moved during the step n. This convention is utilized within the '
i ~
'on-line computation and control unit 18 regardless of whether the ; ¦`
'step is a CP (ACC - 0) or CP (ACC ~ 0) mode step.
:
- . . ' '''' ~ .
::
_99_
(' ~119Z79 i' I
TABI,E III - INSTRUCTION SET
(Symbology)
. . I
SYI~'~BOLS
R Register ~l
Register ~2 (Temporary Reg.) OUTPUT enable
T* ~egister ~2 (Temporary Reg.) ouTPuT~disable
~n RAI~ Address COO ;n~w position data (l, 2, 3)
~n-l ~01 ;previous position data
~n OlO ;new velocity command ~ end point
~n-I Oll ;preYioUs velocity command @ end poin.
~m _ - - lOO ;updated position command
~m lOl ;updated Yelocity command
. llO ;position difference
SCRATCH lll ;scratch pad use
N ~ of Inter~olation intervals per current step ~externa
. 'progra~led)
~* Interp. count (Input data3
~v!~l/Tr) Velocity constant (externally programmed) in binary 128 form
~c ~ of ConYeyor LSD change in the step
--~ X Multiplier X input
Y ~ultiplier Y ;nput
Z M~ltiplier Z output
D Data on DataBUS, EDn
.( ) content of memory location, RAM, or Registers enclose~ -~
. parentheses . .
"Is transferred to"
f Addition
~ .
i.
- 100--
Z79 (-
. . , I
_ 2's comple~ent subtractidn .
* 11ultiplication
., Di~iSion
. . _
RAM Addr. in HEX. -. Decimal Form
.' . .
1~ (4 3 2 1) 4 is ~M select bit
. ~ n ~ D Q
~n-l 9 1 0 0 1
- ~n A 1 0 1 0
n - l B ~ 0-1 1
~m C 1 1 0 0
~m D 1 1 0 1
. . ~--
. ~ E 1 1 1 0
. SCRATCIl F 1 1 1 1
.. . ' -~ ' ;' '; . . '
, , . ~
.
: ' . ,,. . , ' .
' ,'
' ~. .
,::
.
.
-~01-
Z79
TABLE IV - SAMPLE INSTR~CTION AND
CORRESPONDING OPERA~ION
Data Transfer Group Operation
Mnemonic Descriptlon
~Y ~,R (R ~,tMn) .. data in RM location n is transfered to Reg. ~1.
~V ~,X (X) ~ tMnj data in RAM location n is transfered to X inpct
- of ~PY.
MOY ~, T ~T ]~.(Mn) data in RhM location n is transfered to Reg. ~'
with output disable mode
MOV T,M (Mn)~ (T) data in Reg. ~2 is transfered to RAM location n.
Arith~st;.c GrouP
ZER0 X (X}~~0 set ZERO X input of multiplier
ZERO T (T )~-0 , set ZERO in Reg. l2 with output disable mode.
ADD M,X tX)4-(~ ~ (R) Add R~M location to Reg, tl and store the result
to X input of multiplier
ADD M,T (T~-(M~ I (R) Add RAM location to Reg. ~l and store the result
to Reg. ~2.
ADD M,T (T )~(M~-~ (R) Same as above but Reg. ~2 i5 in output disable mode
SUB M,X (X)~-(M~ - (R) -. Subtract content of Reg. ~l from RAM location and
-store the results into X input of multiplier.
SUB M,T (T)~-~M~ - ~R) Subtract content of Reg. ~l from R~ location and
-. ~ ~ , store results into Reg. ~2.
SUB M,T (T )~ R) Same as ~bove but Reg. ~2 is in output disable mode.
DIV N (T~ ~ ~X1 * (Y) N Output from the multiplier is divided by N and
. . storcd in Reg. ~2.
DIY 2~ ~T )~(X) ~ (Y) t 2N Output from the multiplier is divided by 2N an~
stored in Reg. l2
'
,, . . . : .
Il0 Control~~roup
IN M , (I.~ D data on d,ata bus is inputed to RA~ location n.
YIN EXl (Y)~-EXl data from External Device EXl on External ~us is in-
, puted to Y input of multiplier.
YIN EX2 ~Y)~-EX2 data from External Device EX2 on External Bus is in-
. puted to Y inp,ut of multiplier.
OUT M D~ 'n) data m RAM location n is outputed to Data Bus
-102-
7~
TABLE IV
OUT ZERO D~O ZERO i5 outputed to Data Bus
.. NOP ' NO Operation
NOPT . No Operation but Reg ~2 output is enable'
Double Operation Instructions
IADD M,X Combination of Input instruction and~
' . arithmetic instruction
' t ~ -
IADD M,T
ISUB M,X . '
.,T
I~ERO M,X
IZERO M,T
IPASS M,X
IPASS M,T
TADD M,X Combination of moYe instructions and
arithmetic instructions
TADD M,X . . - :
TSUB M,T
TSUB M,X ; ; . . _
TSUB M,T
TZERO M,X
TZERO M,T
TPASS M,X
~: : . ' .
.
. ~
, ~ ,, .. ' . . .- ' '
.,
.
',
. . .
--103-
79
(
O = le C e 1~ ~ ;~ O C C ~ C I 3
3 3 I D ~ 3 2 2 3* 3 3 3l ~ 3 ~ X ~ 3 3 3 !
I,............................................ I
t t It t t t t I ~ x t t t t t t t t t o
. . . ~ * ~ + + _ .-s
. . .' ,~ ,c ~ .~ . ~ o
I ' ~ n ~
l X _ .
~ o I o -' _ o o o o" o o c~ o o o 1~ ~3
O O I ~ -- o O O O O O O O O o O O O O O I-- r
i O O _ _ _ _ `_ o O O O O C: O- O O O 0 ' 0 _
~ O O O O O _.'~ O 0 _ O O _ ~ 1 Q ~ ~-X~ ~
_ _ _ _ - 3`
o o o o o o o o o- o ~ o o 1 o o o
o o o o -- _ o o o o o o o o o o o -- i o rO
o o o o o o o o o o o o o o o o o o _ -o :t~ t~
_ O O O O O O O - O, O - O O O _ O O O ~D~
_ _ _, .__ _ ~ ~3
. o o o o _ _ _ _ o _ _ o _ o o _ o o O~x! o
_ o _ _ _ o_o _ _ _ o o o o o o ~ ~ ~1~!
~ o _ _ _ o o o o o _ _ _ o o o _ _ o o~x3
o _ o o o o o o o o o o o o o -' o .o o X~
_ _. ~ ~
, _ _ o o o o _ _ _ _ _ _ _ _ _ - - - xla~.
- 3 3 _ O O O O 3 5 3 3 3 3 O O 3 3 3 3 XlP O
:~ 3 3 _ O O ~ O 3 3 ~ 3 3 3 O O 3 3 3 3 x r~ o
: 3 3 O O O O O 3 3 3 2 3 - O O 3 3 3 3 ~~ 1-
.. , .. _. _ ~ . ~ t~ I
o ~ 5 1~ ~ o ~ o. o 0~ ~ c~'
. ~ ~ I _ ~_ . ~o
~ 1~ ~3 ' 1~ 13 13 ,3I~3;I~ 13 ~ l-3l3'3!3 ~
.. ,. ..... .
- 10~-
3~79
z 2 1 -t I I _t ~ ~- - -t -t ~-t -t ~ ~ I 1 3
O O ~ ~ ~ 'D 'O r~l ~ ~ ~ ~ Vl ~ ~ t- C
~ ~ :~ rr~ ~ ~ r-~ c C O O C C O O _t ~ ..
_t ~ 2. ~ v~ ~ ~ w w o v ~ c~ o o 3
~ -o--o - ~vr ~ O O 3 3 3 3 3 _ 3 3 ~ a
3 3 3 3 3 3.... ~. , __~, . ~ ~ . .~ . . _
x _~ x ~ x _I x t x ~ x _~ ~ _~ x o n
_I l _ l l ._
~ 2 ~ ~ ~ ~ ~_ ~_ ~- ~ O
o o~ 3 3 3 3 3 :3: 3 3 3 3 ~ 3 3 3 t
,_ _ _ _, _ _ _ _ _ _ _ _ _ _ ~:, _ I o
~o o t t t. t t t t t t t t I t t t t .
_ o o o v ~' ~ ~ ~ 1 0 o o o o
., ~ ~ ~ .
., _ _ - _ . _ _ ~ i~ _ ~,_ .
x ~ x ~ _ ~ x ~ x
_, _~ _ ~ _ ~ ~ ~ * _ * _
DO O ~ X ~ X _ ~ * t -~ x -( x ~-- t ~- t
~2 2 _ ~ _ t --_ o _ _ _ ._ t ^ t ^ ~
., t t t ^ 3 f t t t t ~ 3 ~ . _
o o 3 --o ~. ~ ~ ~ 3 --3 -- o
w 3 _ 3 3 3 3 _ .~. _ + . a
c ~~_,. .___., _ . ~ _ _ _ ~ _ + ~ ..
1 ' ;" - ^~ ;7 ;" , ;2~ _, ..
., l ,- .~ x ~3
o o o o o o o o o j o o o o o . o o o o _ I t~t
o o o o o o c~ O ol,o,o o o o ulx t
o o o o o o o o o ~ o o o o o o o o O `x
o o _ o ~ o ~ o - I O _ o ~ o ~ o ~- o-- w ' .
1- . x 'g
o o o o l ~ - ' ~ o o o ~x ~
o o o o o I'`-- 1 - o o ~x t~
o ~o o o o o o o o l.o o o o l o o o o o -o ~-
_ o _ _ _ o o o' ol- _ _ -lo o o o _ xl~
l ~ J
o o o _ o ~ ~ 1- - I - - o _ CD
o o _ o o. _, ,_, ,o o_l~ 1 ~ ~ ~ o o x
o o _ o o _ _ o olo ~ -`1 - _ o I x
o o _ _ _ ~ ~ ~ ~ 1- - - - ' - - - _ o I x
_ l l l l
O O _ _ _ _ _ _ I _ _ ~ _ _ j _ _ I _ ~ I D I
o o ~, 3 3 3 3 3 -;3'313 313 ~13. 3 o I x
. O 13 3 3 3 3 3 313 313 313 313 3 O I x
o 0 13 3 3 3 3 - 3 13 `3 13 313 3 13 3 o I x
I ~ : I I ~v;
o o I-- o ~ o _ I o _ I o _ Io _ I o ~ I o ~ lo 1~
- I- - - 1 ~ 1 1 ~
3 l3 11~3 ~3J ~ 3D 1~ 1~3. 13 !l3' 13W'II3 I~n 13 ~3 ~ 5 ~ ~
- lOS-
79
TABLE VI
TOP MODE - TEACH - I~ITIALIZE
_ I .. .
ADDRES5 ¦¦ PIR~ 1 PR~/ ~ INSTRUCTIOII COI~I~,ENT5
00I 00 i 00 NOP _ .
0100 00 ~IOP , .
02I 00 00 IIOP ~ .
03! ~P
04 ', 00 00 ~OP . .
0~ 00 00 NOP .
06 00 00 NOP
07 , 00 00 NOP .
_ _ .
08 00 - 00 NOP
09 . 00 ~ .18 111, On write Encoder into RAM
OA¦ 00 88 ZERO, T~ Set ZERO in Temp. (dis~le)
OB! ol oo NOP T SEND OUT (ACCL = O)
OCi 01 . 00 IIOP T - .
OD . ~ 01 00 NOP T ~
OE ; 1. 01 00 NOP T SEND OUT (~EL = O)
OFI 01 00 NOP T
. . _ ..
lo! oo oo NOP
)1 ¦ 00 00 - NOP .
12 00 00 NOP . .
13 00 00 NOP
14 00 00 NOP .
1501 E8 OUT, On One~l into Te~p.
1601 00 i~OP T
17. 01 00 NOP ~ S~ND OUT (POS ENCODER)
;
- 106-
7~ (
(, .
TABLE VI (cont )
_ ., . . : ,
TOP .
I! I _
ADDRESS ¦ PROII 1 PROM 2 1 INSTRUCTION COllMEllTS
_ _. ~. .
1~ , 00 00 ~IOP .
1 9 ' 00 00 t~OP ~ ~,
lA 1 00 OO NOP .
13 I O0 OO NOP . ..
lC 1 00 OO NOP . .
lD ¦¦ 00OO NOP .
lE ¦1 O0' OO NOP . .
lF ¦1 00OO NOP .
_ . .,
T EbC Jt
ADDRESS ,¦ PROM 1 ¦ PROM 2 ~ sTRucTIoN COMMENTS
. 20 1 O0 . O0 . NOP
. . 21 . O0 OO NOP .
. 22 O0 OO NOP . ..
23 00 OO NOP . .
24 00 OO NOP . . . . ...... .
. 25 OO OO NOP . .
: , 26 O0 OO NOP . .
27 O0 OO. NOP _
. 28 ¦ O0 OO NOP . .
. 29 00 OO NOP .
2A. 00 88 ZERO, T~ Set ZdRisail TemP~ (outpu~
2B 01 : OO NOP, T SEND OUT (ACCL = 0)
--107--
~9Z79
TABLE VI (cont )
TEAC~I MODE
_ ~ . '~,
ADDRESS li PROM 1 PROM 2 INSTRUCTlON COMMENTS
_ __ ! __ ___ . .
2C I Ol OO .I~OP T _
2D 00 OO NOP
2E Ol OO NOP T SEND OUT (VEL = ~)
2F ¦ 01 OO N OP T _
30 OO OO ~IOP
31 l~ OO OO . NOP . `
32 -¦1 OO OO NOP
33. I~i OO OO . ~iOP
34 '¦ N0.P
i Ol . E8 O~T en ~ransfer e to Temp.
36 ~ 01 . . 00 , NOP T SEND OUT ( P0S - enew)
37 1 Ol OO NOP T
_ ~
38 1~ ~P .
39.- 11 OO OO ~IOP. .
3A . - OO 00 . NOP . .
3B OO OO .. NOP . .. .-
3C- OO OONOP .-
3D OO OONOP . .
3E OO OONOP . .
3 F OO OONOP
',~, '' __ _ _____ _
--108-
~1~9279
TABLE VI ~cont )
PTP or ~TPc MODE
. , . bDDRESS .¦ PROM 1 PROIl 2 ¦ IIISTRUCTI NL COMMENTS .
40OO Oo NOP ¦ _ ,
41I OO OO NOP ¦ .
42I OO 18 IN, ~n ~ write data into ~neW
43i OO OO I NOP
44 1 ! NOP ~
4 5¦ OO OO NOP ¦ .
46, OO OO NOP
47, OO OO NOP ¦
48j~ OO OO NQP
49jl OO , OO NOP .
4A¦' 88ZERO, T* Set ZERO in Temp. ( disable)
4Bji Ol OO NOP T SEND OUT (ACCL = O) .
4Ci' 01 . OO NOP T . . .
4D¦i OO NOP ~ .
4E~¦. Ol Oo NOP T SEND OUT (VEL = O)
4Fl~j Ol I . OO NOP T . .
.
50~¦ Ol ¦ 18. MC~,T,~n-1 Store O into ~ old
51.~ OO OONOP .
52~ 00 OONOP . ' ~ :
53j OO~ OoNOP
54I OO OoNOP . .
S~¦ Ol E8OUT, ~n ~new into Temp.
56Ol OONOP T SEND OUT (POS = ~ne~)
57L Ol I OONOP T .
--109--,
1~9~79
('
TA~LE VI (cont )
_ _
., .
P~P o- PTPC .
.1 ~ I --1-ADDRESS PR01~ 1 PROM 2 I NSTRUCT I ON I COllMENTS
l .
58 00 OO . l~OP
~9 00 00 .~OP
5A . OO OO NOP
SB ¦¦ O1 OO NOp T . .
. . 5C ! oi ,9 . MOY,T.~n-1 Store ~new into ~old
. SD j~ 00 . OO NOP
5E OO OO NOP .
5F 00 OO NOP
. . _ __
' In = n CASE
1l 00 ~OO I~OP
61 l O0 OO ~Oi
62 . OO OO NOP . . .
63 00 OO - ~lOP
64 00 OO NOP . .
.00 OO . NOP _ . ~ . .
66 00 OO NOP
67 OO OO NOP __
68 O0 OO NOP .
69 OO .OO NOP
6A 00 OO - NOP
6B j OO OO . NOP.
6C ¦ 00 OO ¦ NOP _ . -
- 110- . '
~927~ (
TA~3LE VI tcont)
__
-~~ n case !
~1 l . ... .
ADURESS ¦~ PP~OM 1 ¦ ~ROM 2 INSTRUCTION ~ COMMENTS
6D OO OO NOP . .
6E OO OO ~ NOP .
6F OO OO NOP ~ ..
_ _ .,
OO OO NOP I .
71 OO , OO NOP .
72 OO OO t~OP .
73 OO OO ~OP
74 OO OO NOP .
76 ¦ OO OO NOP . ;
76¦¦ OO ~ OO NOP .
77 ! oo ~oP
78 ¦ OO OO NOP .
. 7~ OO . OO NOP . .
7A OO OO NOP . . I.
- 7B. .Ot E8 OUT 9n ~new ;nto Temp. .
: 7C .Ol 19 MOY,T,~n-l Transfer to RAM ~ old
. 7D Ol EA OUT, ~ 9new into Temp. .
7E Ol lB MOV,T,~n-l Transfer to RAM ~ old .
7F OO OO NOP . .
, = =_ .
,., . .' .. , .
. . . .. ' . .
. . ,. ' ' . .
__ , _
-111-- ,
279
TABLE VI (cont)
CP (ACC=O ) M~de
ADDRESS l PROt~ 1 I PROI~ 2 INSTRUCTION COMMENTS
. ~. . . I ~
02 09 MOY,~-l,R read 901d from RAM to Rt~ ~1
81 EO 60 YlN, Xv Set K v into MPY
82 00 18 IN. 9n ~Irite data into RAM 9ne~
83 j 01 C8sue ,~,T Get ~9 into Temp.
84 i 01 lEMOV T, ~ Temp ~9 (RAM)
¦ 10 6E.MOV ~9,X I ba into X
86 3C 80DIV 2 tl
87 . 01 lA ! MOV,T,~n Transfer Temp to ~new
88 I oo oo ~ICP
89 I 00 ' 00 ~IOP
8A ¦ 00 , 88ZERO,T*
8B 01 00 NOP T SEND OUT (ACCL = O)
8c ol oo NOP T -- .
8D 01 EAOUT,~n 6et ~new on BUS
8 01 OQ NOP T SEND YEL ~ ~new
8F 00 00 NOP _
A4 60YIN, m* 6et m* into llultiplier
91 34 80DIV, N ~x11/N into Temp = 9m
92 01 CfTADD,Scratch,T (~9xM/Il) t Bold ~ T .
93 Oi lCMOY T, ~m T}9m = (~9 x m/n) t ~old
94 00 00 t~OP .
g5 Dl 00 NOP T Enable Temp.
96 01 . 00IIOP ~ SEND POS = om
97 00.' 00 ~lOP . _
--112--
~ 9~7~ (
TABLE VI (cont )
_ .
'' '' ', ~. ,,
' ~ _ ..
ADD2ESS !¦ PROM 1 PROM 2 INSTRUCTION COMMENTS
98 ~ 00 00 NOP . ..
99 ¦ 00 00 .. NOP
9A I 00 . 00 ,. NOP
: se ~; oc oo t~OP :
9C " 00 00 NOP .9D jl 00 . 00 NOP . .
-9E il NOP ..
9F ',! t~oP
_ ' __ _ _ __ ~ :.
. ~ CP (ACC~O). Mode .
l . ' ~ _ .,
.ADDRESS l PROM 1 PROM 2 INSTRUCTION COllMENTS
i _
AO 02 09MOY,en-1,R Read Bo1d from RAM into .
Al . EO 60 YIN, Xv Set Xv into MPY
A2 00 18 IN,~n ~lrite ~new into RAM
A3 10 48SU8,~n,X Get ~9 into X
A4 34. :. 80 DIV N ~9x ~KV/N into Te~p~ .
AS 02 OB-MOY,9n-1,R Move 901d into Reg ~1 .
A6 . Ol DF TSUB,Scratch,T _xene~l/N - eo1d into Te~p
A7 1J SA -TSUB,e~,X llrite into ~new,-~n1d~Q91ntoX .
. _ . _ . - . .
A8 . ¦ 00 00 NOP . . .
A9 EO 60 YIN,-~ ~ Set ~v into l~PY .
AA 3C . 80 DIY, 2N Tem~ ~new = ~x Rv .
AS . A5 60 YlN,mt,T Set m*,SEND ACCL = Bnew
, . ;
-~13- 1
, lll9Z79
TABLE VI (cont?
_ ' .
. , ' . .~'
~ _
. ADDRESS PROM 1 ¦ PROM 2 , ItlSTRUCTlON ¦ COMIlENTS _
AC 34 80 I DIV, H Get ~6 x m*/N to Temp.
. AO . 01 8F ¦TADD ,Scratch,T ~9xm/tJ)+~old into Temp.
AE ¦ 11 3D TADD ,bm,x Store bm into RAM, ~m ~- 15
. 901d~ x SEtlD VEL = bm
AF A4 60 YIN m* Set m* )
BO 34 80 DlV N(Hardware) (~m+bold)xm*/64~Temp;
Bl 20 6E YIN, ~9c ~c into Y
.. B2 11 7F TPASS ,ScratchX Temp ~ X
B3 02 09 MOV,~n-l,R MoYe 901d to Reg rl :~
B4!3C 80 DIY 2tl (em+bOld) x m~/64 x ~ec/2~
B5 01 BF TADD ,Scratch,T i(em+bold) x m/64 x ~9c/2~ +
1 9old ~ Temp
B6 01 lCMOY, T, 9m SEND POS and Store in 9m
B7 00 00 NOP ~ _ _~
B8 00 00 NOP ; ~.
B9 00 00 NOP . .
- . BA 00 00.tlOP . ..
. BB 00 00 NOP . . . .
BC 00 00 tlOP :'
BD 00 00 NOP . :
BE 00 00 NOP
BF 00 00 ¦ NOP
. - - -- ~ :
.. _ , .. -
.....
.-'.
: ..
. .
. . .
-114-
.
27~
f
~ `he following integrated circuit devices have been found
suitable in a specific implementation of the Arithmetic Unit 518 and
the Processor Program Memory 516 and are given by way of example
only and should nct be interpreted in a limi~ing sense:
DEVICE TYPE No. of Devices MANUFACTURER
AL~ 672 74181 Ifour) Texas Instruments
Register ~1 675 7475 ~four) Texas Instruments
Multiplier 668 MPY-16 (one) TRW
Position Scalar
674 8243 (five) Signetics
iplcxer 676 74157 (four) Texas Instruments
Reqister ,,-2 682 8212 (two) Intel
Random Access
Data Memory 666 N~2S09 (two) Signetics
Program Memory 660 1702A (two) Intel
While there has been illustrated and described several
embodiments of the present invention, it will be apparent that
various changes and modifications thereof will occur to those
- skilled in the art. It is intended in the appended claims to
_ _
:. cover all such changes and modifications as fall within the true
spirit and scope of the present in~.ention.
What is claimed as new and desired to be secured by
Iettexs Pa~ent of the United Stat~s is:
'
'
.. ~
-115-