A METHOD FOR CONTROLLING THE MOVEMENT OF AN APPARATUS, IN PARTICULAR A PLACE TOOL OF A DIE BONDER
Field of the Invention
[0001] The present invention pertains to the field of automation technology. It relates to a method for controlling the movement of an apparatus, in particular a place tool of a die bonder, in accordance with the preamble of the independent patent claims.
Background of the Invention
[0002] Motion control systems regularly implement axis movements as concatenated cubic splines, i.e. a concatenation of third order polynomials in time defining individual motion segments. Resulting trajectories x(£) = (xi(t)/ --,XtA 0) - where N denotes a number of degrees of freedom of the motion to be controlled - have a finite, limited jerk everywhere and limit a high frequency energy input into the controlled system when compared to lower-order polynomials. The term jerk refers to a derivative of acceleration with respect to time. The individual motion segments are easy to compute with limited computational resources. In general, N < 6 and X1, ...,xN correspond to a subset of linear coordinates x, y, z, and angular coordinates θx, By, Q2. In what follows, degrees of freedom are also referred to as axes for shortness.
[0003] Advanced motion control systems have been implemented that allow to program motions that do not necessarily start from a rest state, but from a current moving state of one or more axes. This is known as motion blending. In a rest state of an axis n, a first derivative vπ(t) with respect to time, i.e. vn(t) = x ' n(t), equals 0, whereas a moving state is characterized by x ' n(t) ≠ 0. Details on advanced motion control systems may be found in Rexroth NYCe4000, Software User Manual for Product release 1.3, released Oct 06, and Hardware User Manual for Product release 1.4, released May 07; both published by Bosch Rexroth AG, Luchthavenweg 20, 5657 EB Eindhoven, The Netherlands, which are hereby included in their entirety.
[0004] Motion blending has been used to change the final position of single and multi axis motions in response to information that only becomes available after a motion targeting an initial end point has already started . If the change in the final position is small compared to the overall motion, this strategy allows for shorter overall motion times compared to sequentially moving the axis to the initial end point and then performing a correction move. This is known as end-point correction and is of particular interest for die bonders. Die bonders pick a single die from a supply station, e.g . a wafer table, and place and subsequently attach the picked die onto a substrate or onto another die. An overall process carried out by a die bonder is thus generally referred to as die bonding. This is, e.g . described in detail in WO 07118511 Al, which is hereby included by reference in its entirety.
[0005] Multi-axis motions frequently require synch ronization between the individual axis motions. The synchronization requirements are often stated as geometrical keep-out zones for collision avoidance, tangential velocity constraints, or boundary cond itions.
Summary of the invention
[0006] According to an exemplary embodiment of the present invention, a method for controlling the movement of an apparatus with /V ≥ 2 degrees of freedom X1,..., X/v- 1, z, in particular a place tool of a die bonder, is presented . The method comprises the steps of: determining an approximate target x-position xenda pp = Cxi,endapp,- " ,-X7v-i,endapp) ; computing a first z-trajectory zup(t) ; computing an approximate x-trajectory x^Cf) = (xiapp(£),... ,XN-! 3"^)) for a movement of the apparatus from a start x-position xstart to the approximate target x- position xenda pp; starting a movement of the apparatus from a sta rting point gapp(0) = (xstart, zup(0)) along a first trajectory gapp(t) = (xapp(f), zup(t)) by means of a control system; upon obtaining a corrected target x-position xend = (xi,eπd, ...,x/v-i,end) at a time tcorr, determining a corrected x-trajectory X00^t) = (X1 00^t),... ,Xn/-icorr(t)) to xend satisfying xcorr(fbiend) = -^""(tbiend), where fCorr ≤ tbiend a nd moving the apparatus along a second trajectory qcorr(f) = (x™rr(t), zup(t)) for t > tb\end by means of the control system; determining an earliest time t2 : = min{t|xcorr(t) = xend} at which X001^f2) = Xenύ,'
computing a second z-trajectory zdown(t) from a maximum z-position zmaxto a target z-position zend such that for t < t2, zdown(O > Z2 for a given safe height z2 with zmax > z2 > zer]ά, and zάom(tdown)
= z
up(t
down) = Zmax for some time £
dOwn > fbiend; and moving the apparatus along a third trajectory g
fιnai(0 =
f°
r f >
fdown by means of the control system.
[0007] The methods of the present invention may also be embodied as an apparatus (e.g., as part of the intelligence of a die bonding machine), or as computer program instructions on a computer readable carrier (e.g., a computer readable carrier used in connection with a die bonding machine) .
Brief Description of the Drawings
[0008] The invention is best understood from the following detailed description when read in connection with the accompanying drawing. It is emphasized that, according to common practice, the various features of the drawing are not to scale. On the contrary, the dimensions of the various features are arbitrarily expanded or reduced for clarity. Included in the drawing are the following figures:
Fig. 1 shows a schematic representation of a trajectory of a place tool.
Fig. 2 shows another schematic representation of trajectories in a /z-plane.
Fig. 3 shows a schematic representation of various x(t)-, y(t)- and z(t)-trajectories.
Detailed Description of the Invention
[0009] According to an exemplary embodiment of the present invention, a method for controlling the movement of a place tool of a die bonder is presented.
[0010] A place tool is a component of the die bonder that picks individual dies from a wafer, tray, or another tool and places them on a substrate, onto which said dies are to be bonded, or onto another die. In a typical implementation, the place
tool has three linear and one rotational degree of freedom x, y, z, and θz. Movement with respect to said degrees of freedom is controlled by means of a control system.
[0011] The place tool is configured to move along an x-trajectory x(t) = (x(t), y(t), θz(t)) between a pick or transfer position where a die is to be picked from a wafer table, die tray, or transfer tool and the place position. In what follows, it is assumed that the exact transfer position is known in advance, whereas the place position is calculated from an offset or an approximate target x-position xend app that is known in advance and a correction that typically becomes available after the place tool has picked a die at a pick position xstart and has started moving towards the approximate target x-position xendapp- However, the invention can also be used under other circumstances, in particular for picking dies by means of a place, pick or intermediate tool when a pick position needs to be corrected after a movement of the tool towards a pick position has started before a correction value becomes available. In order to incorporate the correction, the die bonder may either wait before the motion starts, or make a correction movement ending at a corrected target x-position xend following the motion to the precomputed offset x-position xendapp- Preferably, however, the motion will be changed on the fly, using principles of motion blending mentioned above.
[0012] In addition, the place tool is configured to move along a z-trajectory z(t)
• from a maximal height e at a maximum z-position zmax during travel to a pre- transfer height c + / and back from the transfer height c to the maximal height e
• from the maximal height e to a pre-place height a + g or a place height a and back from the place height a to the maximal height e
• between a safe height Z1 at a distance k above the transfer height c and the maximal height e
• between a safe height z2 at a distance h above the place height a and the maximal height e.
[0013] The maximal height e is given by an upper end of stroke of the z axis or a smaller height that is sufficient to minimize a motion time between pick or place and a corresponding safe height at both sites for a z-motion that traverses one of the safe heights at maximum z-velocity z '(f) and only stops at the maximal height zmax.
Preferably, e is chosen to equal approximately twice the safe height, i.e. 1.5 < e/h < 2.5 or preferably 1.5 < e/k < 2.5, or 1.5 < (e-t-BLT)fh < 2.5 or 1.5 < (e-t-BLT)fk < 2.5 if a thickness t of the die 1 and/or a thickness BLT of the dispense 41 are taken into account. All z-positions are known in advance. However, it is not always known in advance whether a motion has to stop at the safe height or at the pick or place height. Typically, this will be known after a synchronized movement along an x- trajectory has started but before the z movement itself has started. Both conditions, however, cannot be guaranteed.
[0014] The movements in z and x, y, θz must be synchronized. The synchronization requirements are not expressed as path constraints. Rather, the synchronization is determined by the behavior at the start and end of the x, y, θz motion, which overlaps in time with a upwards z motion at the start and a downwards z motion at the end: In general, the x, y, θz axes must not start moving before the z axis has reached a minimum vertical travel height k corresponding to the safe height Z1 as defined above. They must have stopped moving before the place tool has reached the safe height z2 during the downwards motion. These synchronization requirements must be met in any case, irrespective of whether the x, y, θz motion is corrected on the fly; the z motion ends at the safe height, the pick or place height; or has been changed to end at the safe height while originally targetting the pick or place height.
[0015] If the correction movement follows the movement to the offset position xendapp in x, y, Q2, the place tool must stop at or above the safe height z2 = h at the place position. The place tool must also stop at or above the safe height at either transfer or place position if the die has not been cleared for transferring or placing at the latest time at which it is still possible to guarantee that the z movement will be stopped at that height. If the x, y, θz correction is performed after the axes have come to a standstill the motions may either be performed sequentially or the z motion must be delayed, with the delay chosen such that the above conditions are met.
[0016] All trajectories are preferably implemented as concatenated cubic splines. For each axis, time-optimal trajectories of this shape are calculated from given individual maximal values for velocity, acceleration and jerk. Preferably, the trajectories are calculated by allowing up to seven segments in each of which position takes the form of a third order polynomial in time, f, and solving the resulting
equations. A function is determined that calculates a remaining motion time if a time-optimal cubic motion profile defined by a motion distance and speed, acceleration, and jerk limits is modified at a known time tbiend by initiating a new time-optimal motion starting at the instantaneous non-zero velocity and acceleration. The new motion can be specified by an endpoint offset relative to the original motion, where the offset can be positive or negative, and a set of speed, acceleration, and jerk limits, and/or other constraints. Speed, acceleration, and jerk limits for the new motion may be different from those of the previous version. Preferably, however, they should be identical. Similarly, another function is determined that provides the position of the axis at a specified time if it follows the full corrected trajectory.
[0017] The z axis will be started as soon as the pick process is completed at z = Zstart- A marker X corresponding to the requirement of a minimum initial vertical movement distance k will be set on the z axis position . On passing the marker X, the x, y, θz axes will be started towards their respective endpoints E calculated from the nominal place position and past correction values. The axes are started as quickly as possible, but need not necessarily be started exactly at the same point in time. A start time at which each axis has actually started moving is stored . In a preferred implementation of the method in accordance with the invention, the control system comprises a process logic, which controls the overall die bonding process and a motion control. The motion control comprises one or more motion control subunits which solely control the motion of individual components of the die bonder, in particular the place tool, with respect to one or more degrees of freedom. Process logic and motion control run on two independent processing units connected via a network that typically has a low latency, but does not guarantee a maximum communication delay that is never exceeded. Preferably, the processing unit which runs the process logic acts as a host. The position of the marker X is transmitted from the process logic to the motion control in advance of the motion. The motion control system autonomously starts the x, y, θz axes and records the corresponding start times. The start times are reported back to the process logic.
[0018] As soon as the x, /, θz correction values are known, new motions, starting with the instantaneous values of velocity and acceleration, are initiated for the respective axes. The same remarks regarding synchronization requirements - or rather the lack thereof - as for the start of the individual x, y, θz motions apply.
Again, the time at which the motions have been modified is stored . In the preferred implementation, the correction values are known by the process logic, which communicates them to the motion control system. The motion control executes the commanded changes to the motion and reports the actual time of the change back to the process control. Any unavoidable communication delays, while causing the system to react more slowly, are reflected by the stored time stamps and do not affect an accuracy of the calculation. Using the times for both the start of the original motion and the correction motion, the aforementioned algorithm is employed to calculate times tx, ty, tβz at which the corrected movement stops for each of the x, y, θz axes. In the preferred implementation, this calculation is performed by the process logic. As the times are the times of the actual motion starts and changes as reported by the motion control system, the result accurately represents the behaviour of the place tool even if there are substantial communication delays between the process logic and the motion control system. The latest value C, i.e. the maximum value of tx, tγ, tθz is taken, and the time it takes the z axis to move from its highest position e to the height h at which purely vertical downwards travel should start is subtracted. If the resulting value is earlier than the expected end of the upwards z motion the time at which the upwards z motion ends is substituted. At a time tdown corresponding to the final result of this calculation B, which determines the earliest possible time for beginning to move down while keeping the vertical movement constraints, the downwards z motion is started. This may be done by setting an equivalent marker on the slowest axis that corresponds to this time. In the preferred implementation, the time or the equivalent marker is transmitted from the process logic to the motion control. A software of the motion control reacts to it autonomously. The time tdown is specified on the same time axis used by the motion control system as the times stored for the start and the change of the motions, respectively. Similarly, a position marker will correspond to the correct time fdown as the motion control knows the position of the mechanical system at every instance even if the process logic does not.
[0019] In a distributed system with non-deterministic communication times it is then checked whether the marker has been passed and whether the downwards z stroke has started. If the marker has been passed and the z stroke has not started, the marker has been set in the past and the z axis is started immediately without any further need for synchronization . This is done to prevent a deadlock if the
marker has already been passed when being set because as a consequence of the communication delays. In this situation, the communication delay does alter the motion of the place tool; however, since the downwards z motion is delayed, the vertical travel distance is increased so that the constraint of a minimum vertical travel distance is never violated . The resulting motion is no longer time-optimal from the point of the motion constraints, but it is still the optimal solution in view of the communication delays.
[0020] If the correction result is delayed substantially, the place tool will end up at the approximate target x-position xend app with the z axis still at maximal height e. Further optimization is possible for some processes by calculating the time at which it becomes faster to move to the safe height first, stopping, doing the correction, and moving down. In this case a new marker is preferably set triggering a move to the safe height if the correction was not received by this time.
[0021] Fig. 1 shows a schematic representation of a trajectory of a place tool (not shown in the figure) of a die bonder in a yz-plane together with typical dimensions. The place tool picks a die 1 from a transfer arm 2 of a transfer tool at a start x-position xstart ■ The die 1 is then moved along a trajectory 3 towards a place position on a substrate 4 onto which an adhesive layer 41 has been dispensed. The substrate is being held on a vacuum chuck 5. A mechanism for transporting the substrate 4, in particular an indexer, comprises an indexer rail 6 which extends above the substrate in z-direction. The synchronization of the movements along z and x, y, θz axes must ensure that neither place tool nor die 1 hit the indexer rail 6 or any other machine part of the die bonder.
[0022] Fig. 2 shows another schematic representation of trajectories in a yz- plane. After picking the die 1, the place tool starts moving along a first trajectory gapp(f) = (X3P^t), zup(t)). Without any end point correction, the place tool would ultimately move along a hypothetical trajectory ending at D'. After having obtained a corrected target x-position xend and having executed the necessary computations, the place tool is moved along a second trajectory qcorr(t) = (x°orr(f), zup{t)) between points A and B. Finally, the place tool is moved along a third trajectory gfinaι(O = (xcorr(t), zdown(t)) between points B and D.
[0023] Fig. 3 shows a schematic representation of various x(t)-, y(t)- and z(t)- trajectories.
[0024] The techniques of the present invention may be implemented in a number of alternative mediums. For example, the techniques can be installed on an existing computer system/server as software (a computer system used in connection with, or integrated with, a die bonding machine). Further, the techniques may operate from a computer readable carrier (e.g., solid state memory, optical disc, magnetic disc, radio frequency carrier medium, audio frequency carrier medium, etc.) that includes computer instructions (e.g., computer program instructions) related to the techniques.
[0025] Although the invention is illustrated and described herein with reference to specific embodiments, the invention is not intended to be limited to the details shown. Rather, various modifications may be made in the details within the scope and range of equivalents of the claims and without departing from the invention.