Project Tango-Python at LIONS

List of TANGO Devices Servers developped at LIONS
List of Python Script developped at LIONS
Graphic User Interface developped at LIONS
Complete report of the engineer project of Olivier Taché (pdf in french 5 Mo)
Slides of the presentation for the engineer project (pdf in french 2 Mo)
Présentation Rapide du projet à Soleil (21juin 2006)(pdf french)

Main developer of this project : Olivier Taché

What is TANGO ?

The objectives at LIONS is to develop a control system which can adapt to the varoius material (experiments) and human environment (users).

To reach this flexibility, it is necessary to separate the hardware control and the user interface. TANGO makes it possible to represent in a data-processing way each material element of the experiment. With the use of CORBA, they can be on different machines, with different operating systems, and using different protocols. The development tools of TANGO facilitate the development of the "drivers" (devices servers).

In a certain way, TANGO is making the glue between different software elements wich controls the experiment's hardware.

To give again the control of each experiment's parameters to the scientists, we chose to interface the Tango elements with the Python language.

Architecture developed :

An Hardware-Material Abstraction layer with TANGO TANGO device servers for existing material.

An User Interface developed in Python to interface easily Tango to allow the creation of scans (sequences of actions and measures). This tools should be adapted to experimented users or begginers users.

 

Shematic view of the desired system using Tango and Python

What is Tango ?

TANGO is an object oriented distributed control system using CORBA. The devices that controling the experiments can be on the same computer or distributed over a number of computers interconnected by a network.

TANGO is being actively developed as a collaborative effort between the ESRF, Soleil, Alba and Elettra institutes.

Each Device Server control a specific hardware, and can be used by different types of applications.

Example of Device Servers developped and interfaced hardware :

-X-ray detectors :

- Motors :

- DAQ :

- Other :

 

 

 

Some of applications that can access Tango devices servers

 

Astor (for launching devices servers)

Each 'Square" is a running device server

Jive for configuring Devices Servers.

This Java Swing application can send command or read/write attributes to device server

SynopticViewer and Jdraw to create and view synoptic of experiment, without writing a line of Java code

Command line with Python,

to let the user freely interact with the system

 

 

What is Python ?

Python is a powerfull, oriented langage. The syntax is very simple and easy to learn. A lot of Scientific modules exist.

Why use Python to interact with the system ? As many X-ray experiments (see ESRF or Soleil), a lot of hardware should be used for one experience. In fact, experiment logic is not always the same, then it is hard to develop an ergonomic Graphic User Interface. It is easier for scientists to type commands. Synchrotron users or Diffractometers users usualy uses SPEC Langage. Python comes with a command line object oriented, and wich can connect to Tango Devices.

 

 

Retour en haut