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.
Each Device Server control a specific hardware, and can be used by different types of applications.
-X-ray detectors :
- Fast Com Tech card for gas detector
- Marresearch Mar 300 image plate detector
- Picasso camera from Photonic Science
- CiberStar X200 scintillator and controler
- DanPhysik Ionisation chamber
- Motors :
- Microcontrôle MM4005, ESP300, IT6CA
- Trinamics SixPack Controler and MonoPack Controler
- DAQ :
- NI-DAQ from National Instrument
- Other :
- OceanOptics UV spectrometer
- Rigaku generator RU300
- Siemens Powder diffractomer D5000
- Thorlabs Filter wheel FW102
- Harvard Syringe Pump
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.