|
Main developer of this project : Olivier Taché
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.
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 |
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.
-X-ray detectors :
- Motors :
- DAQ :
- Other :
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
|
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.