Tango Controls is the collaborative effort of many people. It is a Free Open Source Software (FOSS) project. The source code is available free of charge under GPL and LGPL open source licenses. The source code are on GitHub organised in core libraries in tango-controls, archiver tools and libraries in tango-controls-hdbpp, and a large number of device servers in tango-ds on SourceForge. The source code can downloaded and modified by anybody. Development happens on GitHub. Everyone is welcome to fork the git repositories and fix or improve them. Pull request with bug fixes or new features are reviewed and integrated in the official source code by authorized developers.

Tango Controls started at the ESRF in 1999 and has since then been adopted by many sites. The following sites have committed to the sustainable development of Tango Controls by signing a Collaboration Contract and committing to financing the development of Tango for the next 5 years (at least):

ALBA ELETTRA INAF SKAO SOLARIS ELI beamlines
DESY ESRF MAX-IV SKA-ZA SOLEIL

Many other sites use Tango Controls. Refer to the Partners to see some of the users of Tango Controls.


 

Mission

The mission of the Tango Controls software community is to:

Develop an open source tool kit called Tango Controls for building high performance and high quality distributed control systems for small and large installations. The toolkit design is based on the concept of distributed objects called devices and provides native support for multiple programming languages. The toolkit must implement a full set of tools for developing, managing and monitoring small and large control systems. Build a sustainable community dedicated to ensuring that the Tango Controls toolkit continually improves and remains modern to serve the needs of the community for at least the next 20 years. The goal of Tango Controls is to become a de facto industrial standard for industrial distributed control systems.


 

Licence

Tango Controls is an Open Source solution for Supervisory Control and Data Acquisition (SCADA) and Distributed Control Systems (DCS).

Tango Controls system libraries are made available under LGPL licence. This means that Tango Controls can be used and modified without constraints on the derived system built on Tango Controls.

The graphical tools and some of device servers are made available under GPL licence. This means modifications to them need to be shared with the community.


 

Roadmap

The Roadmap described below is being implemented thanks to the Tango Controls Collaboration and the community efforts. The Roadmap addresses the general evolution of Tango and associated tools. Input is usually gathered via email and presented in the form of Feature Requests. The Feature requests are then discussed in the interactive session.

The Executive Committee is working on identifying and investing resources in implementing these features. The Community is invited to contribute to implementing the above topics. A call for comments for the next major release of Tango (V10) has been made on the forum in RFC #4.

The most requested features:

  • Improve documentation;
  • Move source code to GIT;
  • Replace CORBA with ZMQ (or other protocol);
  • Improve code sharing of device servers;
  • Continue to improve code quality (as always).

The Tango project can be divided into 3 parts in terms of the source code: C++, Java, Python. All of these parts are planned to be updated without minimum changes to the end users. Progress of Tango source code can be followed on the git repositories: C++, Java, Python, REST API.

The Tango Web platform is being developed and a first release of the project has been made.

Information about the Major Tango V9 release can be found in the Major Releases page.

Visit the Feature Requests page to follow the latest progress. New feature requests should be submitted to the forum.


 

History

The original proposal for Tango was made in a paper written in 31/7/1998 by W-D. Klotz, A. Götz, E. Taurel and J. Meyer :

Tango - object oriented device control implemented in CORBA and DCOM.

It was built on the ideas of a previous control system developed at the ESRF called TACO which was based on RPCs. The concept of Devices in a Device Server as the key concept was developed in TACO and then refined and improved in Tango. The first international presentation of Tango was at the ICALEPCS conference in 1999 in Trieste (Italy) in a paper written by J-M. Chaize, A. Götz, W-D. Klotz, J. Meyer, M. Perez and E. Taurel and entitled:

Icon Tango an Object Oriented Control System based on CORBA (33.9 KB)  

Developing Tango started in 1999 at the ESRF. Very soon after that they were joined in 2000 by the control's team from the Soleil Synchrotron. The two institutes co-developed the first releases of Tango. They were then later on joined by Elettra, ALBA, and DESY. The community quickly grew and today counts over 50 sites.

tango core 3min course from Tango Controls on Vimeo.

Releases

The latest major release of Tango V9 was made in September 2015. The latest release is V9.2.3. The Device implementation version, major features and previous releases are in the Major Releases web page.

Awards

At ICALEPCS 2011 the ICALEPCS Lifetime Achievement Award was given to Emmanuel Taurel (ESRF), Nicolas Leclerq (SOLEIL), Pascal Verdier (ESRF) for their contribution to the Tango core development over the last 10 years.

ICALEPCS 2011 Lifetime Achievement Award


 

Steering committee

The Tango Controls executive body is the Steering Committee. It makes strategic decisions about core developments in the Tango collaboration. There is one representative from each institute who has signed the Tango Controls Collaboration Contract. The representative is the person who is highest in each institutes’s hierarchy and has sufficient technical knowledge about Tango. This representative should have enough power to decide on allocating resources to developing software for Tango. To ensure that the right decisions are made and match those of the user community, advice must be sought by the committee from their respective users and developers on a regular basis.

There are 2 types of members of the Tango Controls Steering Committee Members:

  1. Core members - contribute financially to the maintenance of Tango and commit at least 6 months of an engineer annually to develop and commit source to the Tango Controls core projects
  2. Contributing members - contribute to the financing of the maintenance of Tango.

Both members normally use Tango and write and share Tango device classes with the community.

The current Tango Controls Steering Committee member representatives are:

Chairman: Andy Götz (ESRF)
Coordinator: Lorenzo Pivetta (ELETTRA)
ALBA (core) Guifre Cuni​
ELETTRA (core) Lorenzo Pivetta ( deputy Claudio Scafuri )
ESRF (core) Andy Götz, (deputy Nicolas Leclercq)
SOLEIL (core) Gwenaëlle Abeille, (deputy Sandra Pierre-Joseph)
DESY (contributing) Thorsten Kracht, (deputy Teresa Nunez)
INAF (contributing) Matteo Canzari
MAX-IV (contributing) Vincent Hardion
SKAO (contributing) Nick Rees
SKA-ZA (contributing) Anton Joubert
SOLARIS (contributing)  Ireneusz Zadworny, (deputy Grzegorz Kowalski)
ELI-Beamlines (Contributing) Birgit Plotzeneder

The last meeting of the Steering Committee was organized by Desy on the 5th of June 2019 (before the Tango Meeting). The next one will take place in June 2020 in St Petersburg (Russia)

Minutes of the latest Steering Committee meetings: