Introduction

Download Report

Transcript Introduction

Tango
in a Nutshell
17/07/2015
1
Tango in a Nutshell
 What is Tango?
 Who dances the Tango?
 How to dance the Tango?
17/07/2015
2
What is Tango?
A toolbox to implement control systems
using CORBA as the transport layer
– A specialization of CORBA adapted to Control
– Hides the complexity of Corba to the programmer
– Adds specific control system features
Control System
TANGO
CORBA
17/07/2015
3
CORBA
 Common Object Request Broker Architecture
 CORBA defines the ORB: a way to call an
object “method” wherever the object is
– In the same process
– In another process
– In a process running somewhere on the network
 CORBA also defines services available for all
objects (naming, notification, event)
17/07/2015
4
CORBA
 CORBA allows mixing languages:
– a client is not necessarily written in the same
language as the server
 CORBA uses an Interface Definition
Language (IDL)
 CORBA defines bindings between IDL and
the computing languages (C++, Java, Python,
Ada, ….)
17/07/2015
5
Tango and CORBA
 Tango encapsulates the CORBA
communication protocol
– Allows the use of other communiction protocols
 Tango uses a narrow CORBA interface
– All objects on the network have the same interface
– Allows the use of generic applications
– Avoids recompilation when new objects are added
17/07/2015
6
What is Tango?
 A software bus for distributed objects
Java, C++,Python
Linux, Windows, Solaris
Scan
Service
TANGO ATK
Java
Qtango
C++
Archiving
Service
TANGO Software Bus
Dev
Dev
Dev
Dev
Dev
Dev
Dev
OPC
Linux, Windows, Solaris
17/07/2015
Labview RT
7
What is Tango?
 Provides an unified interface to devices
(objects) on the network
– hiding how they are connected to a computer
(serial line, USB, sockets, …)
– Hides the network
– Location transparency
– Genericity
 APIs for C++, Python and Java
– For the server and the client side
17/07/2015
8
What is Tango?
 More than only a software bus
– Database for persistancy
– Code generator to implement networked devices
– Central services (Archive, snapshots, logging,
alarms, scans, security, …)
– Application Toolkits (Java, C++ and Python)
– Comercial bindings (Labview, Matlab, IgorPro)
– Control system administration (Starter, Astor)
– Hundrets of available classes
– Web interfaces (PHP, Java)
17/07/2015
9
Who dances the Tango?
2007
2002
2000
17/07/2015
2005
2004
10
Who dances the Tango?
 Tango@Elettra
– Used for accelerator control
– Development of
•
•
•
•
The Python interface (Release 2.x)
An alarm service
Canone: A WEB interface using PHP
E-Giga: A WEB interface above the Tango archiving
service
• QTango: C++ application toolkit using Qt
17/07/2015
11
Who dances the Tango?
 Tango @ Soleil
– Used for accelerator and experiment control
– Development of
• Logging service
• Archiving service (Tango HDB) using ORACLE or
MySQL
• Snapshot service also using ORACLE or MySQL
• Comercial bindings (Labview, Matlab, …)
• WEB protocol for the java application toolkit (ATK)
17/07/2015
12
Who dances the Tango?
 Tango @ Alba
– Used for accelerator and experiment control
– Development of
- Python device servers (PyTango release 3.x)
- Sardana: Control software for experiments
- Python application toolkit using Qt
 Tango@DESY
– Used for experiment control at the new PETRAIII
synchrotron
17/07/2015
13
Who dances the Tango?
 Tango @ ESRF
– Used for accelerator and experiment control
– Development of
•
•
•
•
•
17/07/2015
The Tango core libraries (C++ and Java)
Pogo : Code generator
Jive : Configuration tool
Astor / Starter : administration service
Java application toolkit
14
How to dance the Tango?
 Lets dance together:
–
–
–
–
Two collaboration meetings per year
A mailing list ([email protected])
One Tango coordinator per site
WEB site to download code, get documentation,
search the mailing list history, read collaboration
meeting minutes, …
http://www.tango-controls.org
– Collaborative development using SourceForge
17/07/2015
15
How to dance the Tango?
 You can download Tango from
http://www.tango-controls.org/download
– As a source package for UNIX like OS
– As a Windows binary distribution
 For Unix (and co), do not forget to first download,
compile and install
– omniORB
– omniNotify
 For Windows all libraries and binaries for omniORB
and omniNotify are included in the distribution.
17/07/2015
16
How to dance the Tango?
 A list of all Tango classes is available with their
documentation under
http://www.tango-controls.org/device-servers
 Common interest class sources are stored on a CVS
server hosted by SourceForge
– Project name = tango-ds
– http://sourceforge.net/projects/tango-ds/
 Local class sources are stored in a local CVS
repository at each institute
17/07/2015
17