TANGO
A CORBA based Control system for SOLEIL
and ESRF accelerators and beamlines
IBA presentation : February 2004
Agenda
•
•
•
•
•
•
ESRF: Upgrading control system after 10 years
SOLEIL: presentation
Our control systems requirements
Tango : main concepts
Tango history and state of development
Strengths of TANGO
– On the Controls point of view
– On the Software engineering point of view
• Conclusion
IBA presentation : February 2004
modernizing ESRF control system
• 6GeV synchrotron radiation
source
• Continuous operation since
1993
• 40 beamlines
• 5500 hours of user beam
time per year
• 96.8% of beam availability
for users
IBA presentation : February 2004
modernizing ESRF control system
• Design in the early 1990s
• VME technology running OS/9 and UNIX
workstations
• TACO : Distributed Objects (C + RPC)
• GUIs with X11 and Motif toolkit
• Independent sub-systems around the control
system kernel (data cache, archiving, etc.)
IBA presentation : February 2004
Motivation
• PC hardware dominates the market and
industrial control systems
• New operating systems dominate the market
• New programming languages have appeared
• Internet is becoming a driving force.
Innovation
Everything is subject to change
- Leonardo da Vinci
- Buddha
IBA presentation : February 2004
Motivation
• VME overtaken by PC technology on the
industrial market
• OS/9 frozen in 1996 -> replacement needed
• Java and Web technologies did not integrate
easily into our C programming framework.
• Avoid an uncontrolled modernization process
• Be modern for another 10 years
IBA presentation : February 2004
The Front End Layer
1993
2003
E thernet 10M bps-shared
VME
E thernet 100M bps-sw itched
cP C I and P C I
D edicated C ontroller
L inux and W indow s
O S /9
• Replacement of 70 % of our VME front ends
• Upgrade of the remaining 30% from OS/9 to Linux
• Increasing number of intelligent controllers on the
network.
IBA presentation : February 2004
TANGO
TA C O
RPC
C
C ore co ntains:
S erver A P I
C lient A P I
D atabase S ervice
Test A pplication s
IBA presentation : February 2004
TA N G O
CORBA
C + + , Jav a an d P ytho n
C ore co ntains:
S erver A P I (m ulti lan gu ag e)
C lient A P I (m ulti lan gu ag e)
D atabase S ervice + A p plicatio n
A d m inistratio n S ervice + A pplica tion
L og ging S erv ice + A pplication
E vent S ervice
A p plicatio n Toolkit
C o de G en erator + A pplication
G en eric A p plicatio ns
SOLEIL
IBA presentation : February 2004
Soleil’s objectives
SOLEIL : a 3rd
generation Synchrotron
• An extremely brilliant Light Source:
– A 2.75 GeV (machine) device,
stable beam, long periods of time : 30 hours.
– light wavelengths from infrared to X-rays
micrometric X and VUV beams coherent on tens of µm.
• An multidisciplinary research tool with many applications in
fundamental and applied research :
– physics, chemistry, new materials, nanotechnologies,
environmental science, biology, medicine.
• But also … a tool for industry and its applications
IBA presentation : February 2004
SOLEIL: Provisional schedule
•
Phase 1 (2002 to 2005) :
construction of the device and of the first 10 beamlines ( 5 of
which transferred from LURE)
•
Phase 2 (2006 to 2009) :
operation of the first 10 beamlines and construction of 14
additional lines with progressive start of operation
•
Phase 3 (from the end of 2009) :
operation of 24 beamlines with one or two experimental
devices per beamline
2500 users per year (25 % foreigners)
WHAT IS SOLEIL ? Organization
IBA presentation : February 2004
SOL/DIR/COM/IS/TR/REP/1120/37
control system
requirements
IBA presentation : February 2004
Control/command problematics at SOLEIL
• Implement:
– 1 control system for accelerators: LINAC, ring, Booster
– 1 control system for every beamline
– Need to exchange information between those different
systems, using a common language
As a whole, at least
25 different control
systems
IBA presentation : February 2004
Distributed systems: SOLEIL example for
Machine Control
The system components are geographically distributed on machines
interconnected by a computing network:
–More than 100 Compact PCI frontend
–More than 100 PLC
–Dozens of operator stations
IBA presentation : February 2004
Heterogeneous systems on hardware and
software levels
• Slow industrial systems: PLC
• Fast acquisition systems : CPCI, …
• Ready to use systems:
–
–
LINAC control/command
Control software sold with equipments (Residual gas analyzers,
SCIENTA analyzers, …)
• Heterogeneous operating systems
–
–
Scientific applications under Linux
Drivers/libraries under WIN32 or under Linux
• Of course, the list of equipments is not known at the
beginning of the project
–
So we need to keep things opened
How to obtain a coherent whole from heterogeneous
hardware and software?
IBA presentation : February 2004
Technical functions
Control System framework
• Distributed communications between software entities
– Commands
– Messages: errors, alarms, exchange of data
• Communications
– Synchronous, asynchronous
– Event driven
• A relational database containing the static description of
the whole system
• An historical database holding Machine measurements
• Tools:
– Administration of the CS itself (startup, config, acces control, …)
– Operator interfaces, Alarm handler, archive data displayer,…
IBA presentation : February 2004
Requirements on operation side
• No logical barriers
– An access to all machine parameters from a set of supported software
environments: Labview, MATLAB, C++, java, scripting languages,…
• No material barriers
– The CS must be not dependent of underlying hardware, networks or
Operating Systems
• glue between all software components of SOLEIL
– Integration of software written by Machine and operation staffs
– Integration of sub-systems (personnel safety system,building management
system, COTS (Commercial-Off-The-Shelf) components …)
– It implies a standardization of the writing of software applications
• The ease of use is a key factor
– The CS must hide technical complexity of a distributed system
• As parts of software will be written by Machine people
IBA presentation : February 2004
Our vision of a Control System
• « A control system is a sea of networked
objects; every part of the control system
should be a network object whatever it is a
low-level, high-level or application-oriented
function »
• How to make all these objects communicate ?
Beginning of 1980’s
TCP sockets
End of 1980’s
Remote Procedure Calls
Mid 1990
CORBA
IBA presentation : February 2004
Control system: first choices
Control system
• CORBA technology : as software cornerstone
TANGO
to ensure communications between distributed
objects in a transparent way
CORBA
• TANGO: as control-oriented CORBA framework
–
an evolution of TACO, the ESRF original control system
Device
Device Device Device
Device
Device
Control System
Device
Device
IBA presentation : February 2004
Device
Device
Device Device
Tango :
main concepts
IBA presentation : February 2004
Tango : A software bus
•
Analogy with an electronical bus because:
–
–
–
Each card plugged on the bus has a wellidentified function
Each card is not or hardly coupled to the
others
Development of each card can be decoupled
•
But each card must respect a strict
and well-defined interface in order to
connect to the bus
TANGO software Bus
Device
interface
Hardware
Board
IBA presentation : February 2004
(motor…)
An example of a Device Interface
: A motor
• The Interface :
–
–
describes what the Device is
supposed to do
It’s only a promise of the
services you may expect from
the Device
• But there isn’t any magic !!!
–
Code has to be written to fullfill
the promised services
MOTOR:
Commands:
- GoForward()…
Attributes:
- Speed (R/W)…
Hardware
control code
Hardware
IBA presentation : February 2004
Interface
Tango provides much more than just the bus !!!
High level « ready to
use » applications
Configuration Monitoring
Logging
Archiving
User applications
Synoptic
applications
Bus bus
Logiciel
TANGO
Software
TANGO
TANGO Devices
Device
Hardware
IBA presentation : February 2004
Device
Hardware
User’s development
environments
MATLAB, IGOR,
python, Labview
Ready to use
jive : configure TANGO
control system
Pogo : define TANGO Interface a
Device and generate html
documentation
IBA presentation : February 2004
DeviceTree/ATK Panel : interact
and monitor Devices
•LogViewer : Visualise, filter and
analyse messages emitted by
Devices
TANGO Application ToolKit
ATK Applications
ATK Widget
ATK Core
JLoox
Java Swing &
Graphics2D
Tango Client API
CORBA (jacorb)
Network
ATK Architecture
IBA presentation : February 2004
Scalar Viewers / Editors
IBA presentation : February 2004
Spectrum Viewers / Editors
•
fr.esrf.tangoatk.widget.attribute. Trend (override JLChart)
- Tango attributes can be set by addAtrribute()
- A configuration file can be loaded directly by loadSetting()
- A configuration string can be passed by setSetting()
IBA presentation : February 2004
Number Image Viewers
•
fr.esrf.tangoatk.widget.attribute. NumberImageViewer
- Tango attribute is set by setModel()
- Supports: Line profile , Histogram , Best Fit , Additional marker , Colormap ,
Table view , zoom and 16Bits EDF file format.
IBA presentation : February 2004
Synoptic Viewers
•
fr.esrf.tangoatk.widget.jloox. SynopticFileViewer
- Vector synoptic viewer based on JLoox (Commercial software)
- Integrated in ATK
Synoptic already used at ESRF by ID14
IBA presentation : February 2004
Sample Applications
• Meteor Panel
tangopanels.jar: fr.tango.tangopanels.classpanels.ccd.Meteor (source can be found on sourceforge)
IBA presentation : February 2004
Tango state of development
IBA presentation : February 2004
TANGO : APIs and platforms
• APIs/Programming languages
– C++
– Java
– Python
Clients AND
Servers
• User environments (only client):
– Matlab
– Igor Pro
– LabView
Clients
• Operating systems
•
– Linux
– Windows NT/2000/XP
– Sun-Solaris, HP UX
GNU Project on sourceforge
–
•
http://sourceforge.net/projects/tango-cs
The ESRF site reference
– http://www.esrf.fr/computing/cs/tango/index.html
•
The SOLEIL site reference
– http://www-controle.synchrotron-soleil.fr:8001/
IBA presentation : February 2004
ESRF-SOLEIL-Elletra Collaboration
•
First Software Development Plan defined in April 2002
•
New Software development plan wrote in January 2004
•
Cooperation Agreement in the Field of Control-Software for
Accelerators and Beamlines:
–
–
–
–
Technical coordinators and regular meetings
Equal contributions from all parties
Intellectual properties and licensing policy (GNU)
Software plan:
• Short-term developments to add essential missing
features
• Middle-term ones
officially firmed the 20th of June 2002
• 10 meetings have been held between both institutes to
enhance TANGO
• Elettra has joined the collaboration till end of 2003
IBA presentation : February 2004
Strengths of
TANGO
IBA presentation : February 2004
Tango a solution for new Controls
issues
• Controls trends
–
–
Less and less direct connection to HW (Digital or Analog I/O)
Link to Hardware is very often done through Software links
• API & libraries
• Third parties systems
Tango is a very good Software glue to
face these new integration challenges
IBA presentation : February 2004
Tango is simple
• Tango is a simple system
•
•
•
•
Because concepts are easy to understand
A tool to generate DeviceServers helps developpers
CORBA subtilities are completely hidden
For people coming from « C –programming » world :
• Short learning curve
• They can focus on their application, as TANGO adds very few
complexity
• Elletra’s feedback is interesting as they are newcomers in the
project
IBA presentation : February 2004
Tango : a software component philosophy
•
•
Allowing to share developments between Controls systems
–
–
Decouples High level applications and HW Controls
 the software can therefore be developed by different people
–
–
Can be reused in different Controls System
Can be used by another Device
A device is a « Software Component » per se
T ra n s fe rt L in e 1 C o n tro ls s y s te m
T A N G O C o n tro l S y s te m
D evice
H a rd w a re
T A N G O M o tio n
D e v ic e
L U C IA C o n tro ls s y s te m
T A N G O C o n tro l S y s te m
PROXIMA Controls Systems
D evice
H a rd w a re
TANGO Control System
T A N G O M o tio n
D e v ic e
Monochromator
Device
Device
Device
Hardware
IBA presentation : February 2004
Conclusion on
TANGO
IBA presentation : February 2004
Tango in one picture
Ready-to-use
High-level Applications
ConfigurationMonitoring
Logging
environments
Users
environments:
Utilisateurs:
MATLAB, IGOR,
python, Labview
Archivage
Archiving
Bindings
TANGO
Bus Logiciel
Software
TANGO
Bus
The bus and Devices
development tools
Device
Device
Hardware
Hardware
(E/S…)
IBA presentation : February 2004
(motor…)
An open source solution for distributed control
• TANGO is a modern control system based on CORBA
• Tango is a good base for facing new Controls issues
–
because it is based on modern technologies : C++, java, python
• A Strong commitment of the funding institutes
–
Because TANGO is their software tool for developing all their
Controls and Acquisitions applications
• TANGO has a roadmap for :
–
–
the immediate future
Mid term future
–
IBA ? , CEA institute
–
Efforts are done to organise this parallel activities between
institutes (SourceForge projects)
And to share feedback between TANGO’s users
• The TANGO collaboration is expanding:
• We are working on a Collaborative development model
–
IBA presentation : February 2004
Annexe : To
know more on
TANGO
IBA presentation : February 2004
What is a Device ?
IBA presentation : February 2004
TANGO: device: definition
• device = 1 <entity> to control
– Hardware or software
– «physical» device / «logical» device
• device = 1 polymorphous object
– 1 equipement (ex: 1 power supply)
– 1 collection of equipment (ex: 1 motor + 1 coder)
– 1 cluster of devices :
• a monochromator
• a complete subsystem (a LINAC !)
– A pure software component : A scan server for instance
IBA presentation : February 2004
Commands
•Generics commands
•Specifics commands
IBA presentation : February 2004
TANGO: device: interface: command
• Has a communication interface
– interface = commands + attributes
• commands  actions
• attributes  physical units
TANGO Software Bus
Interface
Commands
Attributes
Generics
Specifics
Generics
Specifics
Init
State
Status
PowerOn
PowerOff
-
current
Hardware control code
IBA presentation : February 2004
TANGO: device: interface: command
• Generic commands exist for EVERY Device
– Ping, Init, State, etc …
• Specific commands
– Are defined by the Device developer
– have : 0 or 1 in argument (argin)
– give : 0 or 1 out argument (argout)
• argin & argout = 1 of the 20 TANGO types
• Execution :
– launch the command_inout function with the following arguments :
• command name
• In parameter of the command
• Output:
– result of command execution
–
Exemple Python :
>> motor_phi.command_inout(“AxisBackward")
>> motor_phi.command_inout(“GoToPosition“,100)
IBA presentation : February 2004
Attributes
IBA presentation : February 2004
TANGO: device: interface
• Has a communication interface
– interface = commands + attributes
• commands  actions
• attributes  physical units
TANGO Software Bus
Interface
Attributes
Commands
Generics
Specifics
Generics
Specifics
Init
State
Status
PowerOn
PowerOff
-
current
Hardware control code
IBA presentation : February 2004
TANGO: device
interface: attribute
• Definition
– Physical unit produced or administrated by the device
– ex: motor position, power emitted by a power supply, …
•
•
Format : from 0 to 2 dimensions
•
•
•
SCALAR
SPECTRUM (i.e. vector)
IMAGE (i.e. matrix)
•
DEV_SHORT, DEV_LONG, DEV_DOUBLE
Type
scalar, spectrum or image
–
scalar only
DEV_STRING
•
•
–
Accessibility
–
–
–
READ
•
read-only access
•
write-only access
•
•
Read-and-write only access
set values vs actual value
WRITE
READ_WRITE
IBA presentation : February 2004
TANGO: device: interface: attribute
• Obtain/modify the current value of an attribute?
– Prog. Env. OO (C++, Java, Python)
• dev.read_attribute(s) (attr_name_list)
• dev.write_attribute(s) (attr_name_list)
• Python Example:
>>
>>
>>
>>
x = mouse.read_attribute ("positionX")
print x.value
x.value=100
mouse.write_attribute (x)
IBA presentation : February 2004
State
IBA presentation : February 2004
TANGO: device: state
• Tango internally manages a state
Machine
• Each Device has an associated state
– Device behavior = fonction (internal state)
• query -> internal state-> execute or error
• internal status generated by the device
developer
– 14 predefined status
•
•
•
•
ON, OFF, CLOSE, OPEN,
INSERT, EXTRACT, MOVING,
STANDBY, FAULT, INIT, RUNNING,
ALARM, DISABLE, UNKNOWN
• a color code defined by Tango is associated to
each status
IBA presentation : February 2004
- Part III High-level
applications
IBA presentation : February 2004
Configuration: needs
ID Unique
ens-[seg]/dom/elem.1
myDevice
Commands
Attributes
Statuses
ens-[seg]/dom/elem.3
•
Properties
Needs
–
–
IBA presentation : February 2004
ens-[seg]/dom/elem.2
several of them
Define equipments present in the experiment
Control/Command system
Parameterize equipments
•
Parameters linked to the Hardware (GPIB
address, etc.. )
•
Min and max attributes values
•
Alarm thresholds
•
Etc
Configuration: database (static)
• Configuration database
– Critical element of the system
– unique source of information for devices and clients
• Implementation
– 1 dedicated device = TANGO interface of a SGBD
– The TANGO_HOST environment variable = host_name:host_port (ex:
localhost:20000) defines the static database that is used
TANGO Software Bus
1 dedicated TANGO device = TANGO interface
of a SGBD
Configuration
1 information storage medium: 1 computing
database
IBA presentation : February 2004
Configuration: tool
Jive
Graphical Application
for TANGO control
system
IBA presentation : February 2004
Supervision: needs
• Needs
–
–
–
Interact with equipments directly
Have an overview of the status of each equipment
Monitor the evolution of any Device attribute
• DeviceTree/ATK Panel
• Generic applications to
design and customize your
graphical interfaces,
displaying, for a set of
equipments
IBA presentation : February 2004
Supervision: tool
– Custom Java Applications :
• Using TANGO ATK library which provides Java
GUI widgets which manage refresh of values,
errors, connexion issues
IBA presentation : February 2004
Logging: tool
•
LogViewer
Visualise, filter and
analyse errors and
informations, emitted in
« real time » by the
different Devices of the
control system
IBA presentation : February 2004
ARCHIVING
Attribut Voltage
Device PoweSupply
:
Archiving
TimeStamp
Valeur
22-04-2003 : 15h 23mn 12 s
22-04-2003 : 15h 23mn 22 s
22-04-2003 : 15h 23mn 32 s
22-04-2003 : 15h 23mn 42 s
236
354
374
374
Historical database
Archiving
TANGO Software Bus
• Record attributes values:
–
Device
Following specific criteria (frequency or other), the archiving
system is supposed to memorize the values of any attribute of
any Device of the control system.
• Extract values
•
–
From client applications like a MATLAB application
From “ready-to-use” MAMBO application
IBA presentation : February 2004
Developper tool
E2 : POGO : Code generation
• Define TANGO Interface
a Device with a graphical
tool
• Generate html
documentation of the
Device
IBA presentation : February 2004
Descargar

Formation TANGO