Software Development Case Studies
Previous bespoke systems we have developed for our clients include:-
Multi Axis Motion Controller
After an unsuccessful attempt to reliably synchronise two proprietary wafer handling robots with external handling equipment a world leader in the production of semi conductor capital equipment called upon the services of Loop Technology to redesign the control software. The system was used to firstly establish correct process conditions and then to precisely manipulate the wafers during the implant. In total there were nine axes to control, the control hardware being based around Baldor's Nextmove PCI Motion Controller and Drives. A hierarchy of Microsoft COM classes was developed to represent the Baldor Motion Controller, Discrete Axes, Robots and a Sequencer. The Sequencer provided the COM interface to the customers own system and synchronised the activities of the two robots. The system was designed using the Unified Modelling Language (UML). The host PC code was implemented using Microsoft Visual C++ and ATL. Time critical code was embedded in the Baldor controller and implemented in C.
Embedded Motion Controller
For world beating throughput a local manufacturer of solder printing machines used two Baldor Nextmove motion controllers to synchronise and control seven servo and four stepper motors. CAN bus io cards were used to control the PCB feed conveyors and ancillary equipment. A multi-tasking scheduler was developed to simplify the software architecture and allow the system to be developed in a modular fashion. The stack swapping part of the scheduler was written in assembler with the remainder of the system written in C. A Windows based commissioning tool was developed using Visual C++ to allow the control system to be exercised independently from the main system GUI.
A leading semi conductor equipment manufacturer found wafers were becoming misaligned when moving between atmospheric and vacuum areas of the machine. A Cognex vision system formed the basis of an alignment correction module to be integrated with the customers existing control software. A COM interface to the alignment module meant it could easily be hosted by any one of the three control PCs on the customers machine. The module located the wafer, determined its present position and calculated any correction factor required to bring the wafer back into alignment. Design of the module was performed using the Unified Modelling Language. Implementation was achieved using Microsoft Visual C++ and ATL.
PCB Alignment System
In order to ensure accurate alignment between electrical printed circuit boards and stencil a local manufacturer of solder printing equipment used a Cognex vision system to locate fiducials on the PCB and stencil. Once the fiducials were located it was possible to calculate the misalignment between the PCB and stencil. Correction factors were then applied to the motion control system in order to move the stencil to the correct location. Communication to other modules in the system was via a Windows Socket interface using the SECS-II protocol. The module used multi threading techniques to ensure fiducial location and camera control could reliably take place in parallel. The system was designed using the Unified Modelling Language (UML) and implemented using Microsoft Visual C++.
Bar Code Reader
A batch tracking and machine configuration module utilised a Keyence Bar Code Reader to establish the identity of wafer cassettes placed in the receiving pods of an Ion Implanter. A custom software module read bar code data via an RS-232 serial interface. Once the cassette ID had been established it was possible to look up individual "recipes" for each wafer to be implanted and configure machine parameters accordingly.
RF Tag Reader
An evolution of the bar code reader for identifying wafer cassettes was the development of a similar system using Radio Frequency (RF) Tags. In addition to containing the ID of the cassette the RF Tag can also contain the recipe data for each wafer. Interfaces were developed for Tag readers from Asyst, Hermos and Omron. The module was designed in such a way as to make it very simple to cater for additional makes of Tag Reader. System design was performed using the Unified Modelling Language (UML) and implemented using Microsoft Visual C++.
A complex system to precisely control and monitor the vacuum within a number of separate process chambers on an Ion Implanter called for very detailed design to ensure the correct sequencing and error recovery of numerous multi port valves. With pressures less than millionth of a Bar safety is of prime concern, it was vital right from the outset that all interlocks were correctly designed in and careful test and verification procedures followed. UML is an ideal technique to expose all the nuances of a system permitting clear communications between all the disciplines involved in the system. By putting in so much effort up front it was possible to gain time later on in the form of reusable classes, clear hierarchies and documented test procedures. The system was implemented in Visual C++, using ATL to provide DCOM functionality.
SEMI Factory Automation Interface
Remote control and monitoring of semiconductor manufacturing equipment is becoming an important feature at many Fabs. Loop Technology developed a SEMI compliant interface for use on an Ion Implant tool supporting both 200 and 300mm command structures. SEMI standards supported include:
- E30 GEM
- E40 Standard For Processing management
- E94 Specification For Control Job Management
- E84 Specification For Enhanced Carrier Handoff
- E87 Specification For Carrier Management
- E90 Substrate Tracking
- E39 Object Services
Windows Socket Interface
"Evolution not Revolution" – a saying often wisely applied in the field of machine development. A recent customer wanted to preserve their process controller but update the materials handling and User Interface areas of a very successful machine. Loop Technology designed and implemented a Socket interface to allow bi-directional communications between the VME based process controller and the customer's advanced control and GUI technologies. One module written in C was added to the VME controller and another written in C++ was made available to the host PC. Both applications contained client and server sockets to send/receive command requests and parameter updates. The incorporation of a system watchdog and automatic reconnection in the event of link failure made for a very robust channel.
Serial Communications Monitor
The architecture of a customer's motion control system was causing them a head ache. Despite good visibility of events taking place in the controller, events occurring in remote drives were often impossible to detect. In some cases the motion controller was still trying to control the drive even though the drive had gone off line. Loop Technology implemented a multi drop serial link capable of monitoring all eight of the remote drives in the system. Using the link the customer could download configuration and calibration information without resorting to the use of individual drive manufacturer's utility programs. In addition the drives could be monitored for numerous error events including over current, over voltage and over temperature. The system provided a COM interface to allow easy integration with the existing motion control system.
Ion Beam Sequencer
An Ion Implanter is an extremely complicated machine. In basic terms it consists of a long evacuated tube along which ions are steered to ultimately impact and penetrate a silicon wafer. Successive implanting of different ions into the wafer results in the production of an integrated circuit. Through a good working relationship generated by many successfully implemented projects Loop Technology were asked if we would design and implement a sequencer to control and monitor the path of the ion beam along the tube. Although outside of our core skill sets of motion control and machine vision we were so intrigued by the implant process we jumped at the chance of providing assistance. After lengthy liaison with the customer we produced a specification detailing the responsibilities and actions of the sequencer. The sequencer interacted with nearly every other system in the machine so it was vital to have a good understanding of the entire process before software development began. We delivered a fully tested and documented sequencer on time and to budget. System design was performed using the Unified Modelling Language (UML) and implemented using Microsoft Visual C++.
Cryogenic Pump Controller
Also for the semi conductor industry we have developed a system for controlling and monitoring a user configurable number of Cryogenic pumps. Using our software the client is able to keep check of pump stage temperatures, valve status and periodic maintenance requirements. Automatic regeneration sequences can be created for single or multiple pumps and logs written for all system activity.
Distributed Sea Bed Acoustic Monitor
A local manufacturer of specialist marine systems asked us to contribute to the implementation of a distributed underwater acoustic monitoring system. The system comprised of a number of hydrophones attached to the sea bed and a remote monitoring station. A vessel was piloted over the hydrophones and the resultant acoustic data is collected and analysed. If desired the acoustic signature can be stored for later use. The system was distributed across four PCs, communications between PCs being direct via remote procedure calls (RPC). The system was implemented using Microsoft Visual C++, with the PC interfaces written using the Microsoft Interface Definition Language (IDL).