MYDATA's Industrial Robots

At MYDATA automation AB (a Swedish
robotics company) we have chosen Linux 2.0 as the new operating
system for our pick-and-place machines. The Linux version of our
control software is currently running on in-house test machines.
Linux will completely replace the older “real-time Unix” on
customers' machines in the third quarter of 1997.

The Pick and Place Machine

A pick-and-place machine is a special-purpose industrial
robot. It is designed to pick electronic (surface mountable)
components and place them in the correct position on a printed
circuit board (PCB). PCBs are boards found inside electronic
equipment, such as motherboard and plug-in cards found in any
personal computer.

The design of a pick-and-place robot is built around a
split-axis concept. We have a high speed X “wagon” (yes, we call
it a wagon, despite the fact that it isn't pulled by horses) moving
from left to right (the X axis) on top of the machine. On the X
wagon we have a mount head, moving vertically on the Z axis and
rotating on the phi axis. We also have a Y wagon, called a
“table”, moving on the Y axis. (See Figure 1.)

Figure 1. A MYDATA pick-and-place machine model TP11.

The components are supplied in tape reels, component sticks,
or on trays which are loaded into “smart” magazines that position
the component in a pick position directly under the path of the X
wagon.

Let us follow a single mount cycle. First, the magazine
positions a component in the pick position. Next, the X wagon moves
to the position above the magazine. The mount head is lowered, and
the tool tip touches the component. Vacuum is applied, and the
component is sucked to the tool, much like drinking through a
straw. (See Figure 2.) The mount head moves up, lifting the
component, and the X wagon moves to the Y wagon.

Figure 2. A mount tool applies suction to a large component. Mount
tools come in different sizes for various components, which are
used as needed.

As each component must be placed with a much higher precision
than the carriers in which it was delivered, some means of
centering the component on the tool is needed. Thus, two centering
jaws push the component to the middle of the tool tip, while the
dimensions of the component are measured. Then the tool and
component turn 90 degrees and the centering and measuring is done
in this direction, too. Finally, the electrical properties of the
component are measured. (See Figure 3.)

Figure 3. The centering jaws are pressed against a small component
and the electrical properties of the component are measured with
electrodes.

During this X movement towards the place position, the Y
wagon carrying the PCB positions itself at the correct Y coordinate
for the component to be placed. Finally, the mount tool lowers and
places the component in the correct position. The entire mount
cycle is completed in approximately half a second.

To speed up mounting many small components there is also a
Hydra head on the X wagon which picks eight components
simultaneously and places them individually. This device cannot use
mechanical centering, and it uses optical centering instead. During
optical centering the position of the component on the tool is
measured optically and adjusted for when placing the component.
(See Figure 4.) In addition, the Y wagon can “dock” to a conveyor
to load or unload PCBs. (See Figure 5.)

Figure 4. The Hydra head includes 8 tools.

Figure 5. The Y wagon has docked to the panel conveyer VPC to load
PCBs.

Hard and Soft Real-Time

Long ago MYDATA made the smart design decision to separate
the hard real-time requirements from the complex algorithms of
optimization, user interface and database management. In a typical
MYDATA machine, there is a computer box containing one Pentium PC
motherboard and several servo computers. (See Figure 6.) We call
the servo system “hard real-time” and the Un*x system “soft
real-time”.

Figure 6. A MYDATA machine with the front cover removed. The
computer box is in the left, revealing several servo computers. The
Pentium motherboard is hidden in front. The box on the right
contains battery backup and other electronic components.

The servo computers are programmed in Z80 assembler and take
such commands as “move to position 2500 with acceleration
parameters XA XB XC”. The positions given are in ticks on the
sensors.

The PC motherboard currently runs Un*x—a true multitasking
system running several programs written in C++. One of the programs
is a mounter process that generates the commands sent to the servo
computers specifying where to mount each component, and also
handles coordinate system transformations and conversion to sensor
“ticks”. The optimizer process optimizes the mount order for
maximum throughput. The data server daemon stores information about
packages, components, PCBs and component locations. There is also a
Man-Machine-Interface process to communicate with the user.

In the servo programs accurate timing is a must. However, in
the Un*x system a short delay will not break anything, but will
result in poor overall mounting speed. Thus, what is needed for the
Un*x system is not a guaranteed response time, but a very fast
average response time.