TANGO – Control System Open Source Collaboration
What is it?
The TAco Next Generation Objects (TANGO) control system is a free open source object oriented control system for controlling accelerators, experiments and any kind of hardware or software being actively developed by a consortium of synchrotron radiation institutes.
TANGO is a distributed control system. It runs on a single machine as well as hundreds of machine. TANGO uses the omniorb implementation of CORBA as its network protocol. The client-server model is the basic communication model. Communication between clients and servers can be synchronous, asynchronous or event driven.
TANGO is based on the concepts of object oriented and service oriented. The object model in TANGO supports methods, attributes and properties. In TANGO all objects are representations of devices.
TANGO projects developed and supported by CELLS – ALBA Synchrotron:
- PyTango is a Python version of TANGO open source control system
- TAURUS is a Python GUI library for PyTango and PyQt.
- SARDANA is a TANGO based control system designed for instrument control and data acquisition. Controllers, Macros and TAURUSWidgets. Device pool, Macroserver, Spock. Sardana IDE
Contact: Jose Tiago Macara Coutinho, tcoutinho@cells.es, 4392
Device Servers
TANGO is primarily used to provide network access to hardware. Hardware can range from single bits of digital input/output up to sophisticated detector systems or entire plant control systems. Hardware access is programmed in a process called a Device Server. The device server implements device classes which implement the hardware access. At runtime the device server creates devices which represent logical instances of hardware. Clients "import" the devices and send requests to the devices using the TANGO protocol.
Bindings
TANGO supports bindings to the following languages :
- C
- C++
- Java
- Python
- Matlab
- Labview
Licencing
TANGO is distributed under 2 licenses. The libraries are licensed under the GNU Lesser General Public License (LGPL). Tools and device servers are (unless otherwise stated) under the GNU General Public License (GPL).
Open Source
TANGO is an open source project. Anyone can download and use TANGO. Source code is stored in two CVS repositories on SourceForge :
- kernel source code
- device server source code
Local modifications or bug fixes can be made to the source code but committing changes to the repository requires authorization.
Consortium
The consortium is a group of institutes who are actively developing TANGO. To join the consortium an institute has to sign the Memorandum of Understanding and actively commit resources to the development of TANGO. The consortium currently consists of the following institutes :
The aim of the consortium is to guarantee the development of TANGO.
TANGO Development Toolbox
Development tools:
- Pogo helps you to create and manage Tango device classes in C++, Python or Java.
- Jive is a Tango database browser and device testing tool
- LogViewer helps you to display log messages sent by your devices
- JDraw is a synoptic editor to be used with ATK to draw your synoptic table to control Tango devices
Control system administration:
- Astor and Starter help you to administrate your control system: starting or stopping a device server, checking it…Astor is the graphical application and Starter the device server used by this application.
Instrumentation and data acquisition:
- SARDANA is a Tango based control system designed for instrument control and data acquisition.
Archiving system:
- Tango also has an archiving system using MySQL or Oracle database to store the data coming from your device that you want to archive. You can have a look at the description of this tool or at its documentation.
Generic graphical applications used to display devices data:
- ATKPanel is a generic application which displays panels allowing you to execute any device commands or to read/write any device attributes
- DeviceTree is a generic application that you configure to display attributes value or to execute commands on any set of devices
- Mango is an online designer to easily create C++ QTango graphical interfaces.
- ATK is a client framework for building applications based on Java Swing in a Tango control system.
- QTango is a set of C++ widgets based on QtControls and a completely rewritten QTangoCore aimed at easing and automating the development of graphical Tango multi-threaded applications.
- TAURUS is a Python GUI library for PyTango and PyQt.
WEB interface
- E-Giga displays the data stored by the Tango archiving system within your favorite WEB browser
- Canone will allow you to create your own WEB panels to interface Tango device(s)
TANGO is an open source project hosted by SourceForge.net

