TANGO & Taco
TANGO is an object oriented control system based on CORBA being developed in colaboration between three institutes: Elettra, Soleil and ESRF. In TANGO all the control points are implemented as methods or attributes of CORBA objects (servants). Control actions are executed by invoking methods on objects. Objects are created and served by device servers. Device servers can be written in C++ or Java. TANGO runs on Linux, Windows/NT and Solaris. TANGO is fully compatible with TACO, the ONC RPC based control system also developed at the ESRF. On this web site you will find the TANGO interface definition (IDL) file, and all documents related to TANGO. TANGO is being developed as an Open Source project and all code will be made available free of charge and warranty.
TACO is a toolkit for building distributed control systems or any other distributed system. It is based on a C/C++ core. It is based on the client-server model. It supports writing clients and server on Unix+Windows.
- TACO is being used at the following places :
- at the ESRF to control accelerators and beamlines and data acquisition systems
- at FRM-II for instrument control for experiments
- at HartRAO for telescope control at the 26m radio telescope
TACO is very scalable and can be used for simple single device laboratory like setups with only a few devices or for a big installation comprising thousands of devices. It is a cheap and simple solution for doing distributed home automation. TACO is object oriented because it treats ALL (physical and logical) control points in a control system as objects in a distributed environment. All actions are implement in classes. New classes can be constructed out of existing classes in a hierarchical manner thereby ensuring a high-level of software reuse. Classes can be written in C++, in C (using a methodology called Objects in C), in Python or in LabView (using G). It has been designed to be portable and runs on a large number of platforms (e.g. Linux, FreeBSD, MacOSX, Solaris, HP-UX, Windows 32, OS9).