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.
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.)
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.
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.)
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.)
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”.
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.