The ESRF accelerators are currently running a distributed control system called TACO, which was designed at the ESRF in the early 90s. It is used to run the accelerators and beamlines. TACO is based on the concept of distributed objects written in the C language and has a client/server architecture. The control hardware was based on VME computers with a real-time operating system called OS9, as well as UNIX computers running HP-UX. TACO has been upgraded over the years to keep up with the emerging needs. At the end of 1999, the machine control system included 92 VME crates and 25 Unix servers controlling more than 8000 pieces of equipment. During the same period of time, the computing world evolved dramatically. The CPU power and disk size were multiplied by more than 100. This triggered a decision in 2000 to launch an ambitious refurbishment program of the accelerator control system. The re-design of our control software has been carried out with the goal of being as independent as possible from the hardware platform and operating systems and maintaining compatibility with the TACO system. The new system called TANGO [5] makes use of international standards such as CORBA and modern object-oriented patterns and languages (Java, C++). The development is in line with open-source strategy and TANGO is available for free download from the Web [6]. In the mean time, several other laboratories have expressed the interest in using TANGO and an international collaboration has been formally established with SOLEIL and ELETTRA.

Simultaneously to the implementation of the TANGO control system, a process to modernise the hardware was set under way. As OS9 was frozen with no support available and no access to the source code; it was essential to replace it. Moreover the 10 year old VME CPUs all required an upgrade. Whenever economically possible, parts of the control system were moved from VME to PC technology. The PC hardware makes use of PCI and Compact PCI acquisition cards, and operates preferably under Linux but sometimes under Windows when Windows-based software solutions are provided by the card vendor. Whenever the control of certain pieces of equipment could not be easily migrated to PC technology, VMEs were kept but refurbished. In such cases, the obsolete 680x0 CPU type processors operating under OS9 were replaced by recent Intel type processors operating under Linux. The TACO type servers operating in the VMEs where correspondingly recompiled. Now, after many years of strict standardisation limited to one single hardware platform (VME), given the pressure from the market the control system has been opened up to several platforms. Fortunately, the TANGO system is designed to deal with this sort of hardware heterogeneity.

While the core of TANGO was developed in 2000-2001 and prototyping took place in 2002 together with the porting to Linux, it was only in 2003 that the full-scale migration process was really launched. Priority was given to the ring vacuum system, beamline front-end, radiation measurement, and personal safety system which could be easily migrated to industrial PCs running Linux. In 2004, the image acquisition system in the transfer lines, booster and ring was moved to windows based PCs, while the whole RF system control of the booster and ring was ported to Linux keeping the same VME hardware. Work is progressing with the insertion devices and beamline front-ends as well as beam diagnostic systems. Out of the 92 VME creates operated under OS9 in 2002, only 22 remain in December 2004. Full migration is scheduled for 2005. This large scale and somewhat frightening migration was made in a fully transparent manner to the ESRF user program and is now well under way. It has been made possible thanks to the modularity of the system as well as the excellent coordination between the staff responsible for the equipment and the staff of the computing service.

[5] Icaleps 2001 The ESRF TANGO control system status by J.M. Chaize et al.; Icaleps 2003 TANGO a CORBA Based Control System by A. Goetz et al. (MP705).
[6] Homepage:;