# TANGO

El sistema de control TANGO (en anglès TAco Next Generation Objects) és un sistema lliure i obert de control, orientat a objectes, que ofereix eines per al control de qualsevol tipus de maquinari o programari, que constitueix un sistema SCADA. És utilitzat principalment en el control d'acceleradors de partícules tipus sincrotró, però també en altres experiments científics i, en general, pot ser utilitzat en qualsevol mena de programari i/o maquinari, ja que es troba activament desenvolupat pel consorci, compost per diversos instituts de recerca.
TANGO és un sistema distribuït de control. Funciona en una màquina aïllada igual que entre centenars. TANGO utilitza dos protocols de comunicació: ominorb com a implementació de CORBA com a protocol de xarxa i també Zeromq. La comunicació bàsica segueix el model client-servidor. Així com la comunicació entre clients i servidors pot ser síncrona, asíncrona o conduïda per esdeveniments. CORBA es fa servir per a la comunicació síncrona i asíncrona, mentre que Zeromq es fa servir per a la comunicació d'esdeveniments (des de la versió 8 de TANGO).
TANGO està basant en els conceptes d'orientació a objectes i orientació a serveis. L'objecte model a TANGO suporta mètodes, atributs i propietats. Dins de TANGO tots els objectes venen representats per dispositius (devices).

## Servidors de Dispositius

TANGO és utilitzat com a Programari intermediari per proporcionar accés remot al maquinari. La resposta d'aquest maquinari pot resultar senzilla con uns bits digitals d'entrada/sortida fins a sofisticats sistemes de detecció o sistemes de control complets. L'accés a la maquinària és programat en un procés anomenat Servidors de dispositius. El servidor de dispositius implementa classes de dispositius que a la vegada implementen l'accés real al maquinari. En temps d'execució el servidor de dispositius genera els dispositius que en són la representació lògica de les instàncies hardware. El client importa els dispositius, per via d'una base de dades, i els envia peticions utilitzant el protocol TANGO. Aquest dispositius poden emmagatzemar valor de configuració en una base de dades MySQL de forma permanent.

## Emmarcats

TANGO suporta els següents llenguatges:
* C
* C++
* Java
* Python
* Matlab
* Labview
* Igorpro

## Llicència

TANGO es distribueix sota dos llicències. Les llibreries es troben llicenciades sobre la Gnu Llicència pública general menor o LGPL. Les eines i servidors de dispositius (llevat de manifestació expressa) llicenciats sota la Gnu Llicència Pública General o GPL.

## Codi Obert

TANGO és un projecte de codi obert. Qualsevol que ho vulgui pot descarregar-se i utilitzar TANGO. El codi font es troba guardat en dos repositoris de subversion a SourceForge:
* codi font del núcli
* codi font de servidors
Es poden fer canvis locals o correccions d'errades sobre els fitxers font, però l'enviament dels canvis al repositori requereix autorització.

## Projectes que utilitzen TANGO

Una breu llista de projectes que utilitzen Tango (a més dels que formen part del Consorci):
* C3 Prototype Arxivat 2014-02-02 a Wayback Machine. de la European Mars Analog Station
* Els diagnostics del Laser_Mégajoule Arxivat 2013-07-30 a Wayback Machine.
* L'equipament laser CILEX_APOLLON Arxivat 2015-10-02 a Wayback Machine.
* La font compacta de llum ThomX Arxivat 2013-06-24 a Wayback Machine.

## Consorci

El consorci és el grup d'institucions que participen activament en el desenvolupament de TANGO. Per entrar-hi a formar part, una institució hauria de signar el Memoràndum de Comprensió i activament enviar contribucions al desenvolupament de TANGO. Actualment els consorci el formen els següents institucions:
* ESRF - European Synchrotron Radiation Facility, Grenoble, França
* SOLEIL - Sincrotró Soleil, París, França
* ELETTRA - Sincrotró Elettra, Trieste, Itàlia
* ALBA Arxivat 2006-03-28 a Wayback Machine. - Sincrotró Alba, Barcelona, Espanya
* DESY Arxivat 2008-11-11 a Wayback Machine. - Sincrotró Petra III, Hamburg, Alemanya
* MAX-lab Arxivat 2013-09-04 a Wayback Machine. - Sincrotró MAX-lab, Lund, Suècia
* FRMII Arxivat 2008-09-20 a Wayback Machine. - Font de neutrons FRMII, Múnic, Alemanya
* Solaris - Sincrotró Solaris, Cracòvia, Polònia
* ANKA Arxivat 2013-07-04 a Wayback Machine. - Sincrotró ANKA, Karlsruhe, Alemanya
El propòsit del consorci és garantir el desenvolupament de TANGO.

## Referències

Es refereix a les següents publicacions sobre TANGO per a més informació:
* TANGO - an object oriented control system based on CORBA Arxivat 2008-10-30 a Wayback Machine., ICALEPCS 1999, Trieste (Italy)
* TANGO a CORBA based Control System Arxivat 2008-10-30 a Wayback Machine., ICALEPCS 2003 Arxivat 2008-10-30 a Wayback Machine., Gyeongju (Korea)
* Ubiquitous TANGO Arxivat 2008-10-30 a Wayback Machine., ICALEPCS 2007, Knoxville (USA)
* Future of TANGO Arxivat 2008-10-30 a Wayback Machine., ICALEPCS 2007, Knoxville (USA)
* TANGO papers presented at ICALEPCS 2009 Arxivat 2013-12-19 a Wayback Machine., Kobe (Japan)
* TANGO papers presented at ICALEPCS 2011 Arxivat 2013-12-19 a Wayback Machine.. Grenoble (France)

## Vegeu també

* EPICS—en anglès Experimental Physics and Industrial Control System (Sistema de control industrial i d'experimentació física),
* SCADA—en anglès Supervisory Control And Data Acquisition (Control supervisor i adquisició de dades),
* openSCADA Arxivat 2013-08-25 a Wayback Machine. - implementació en Java de codi obert.

## Enllaços externs

* TANGO - Lloc web oficial