Upload
brandon-ryan
View
217
Download
1
Tags:
Embed Size (px)
Citation preview
5-Oct-05 1
Tango collaboration status
ICALEPCS 2005
Geneva (October 2005)
2 5-Oct-05
ICALEPCS 2005
Tango collaboration status
Introduction What is Tango ? What is new since ICALEPCS 2003 ? Some words on the Tango event system Day to day life within the Tango collaboration
3 5-Oct-05
ICALEPCS 2005
Introduction
Control system user needs always increase Writing a full featured control system is a huge
task How one institute can develop a control system?
With limited man power and budget In a reasonable time frame
The answer is Create or join a multi institutes collaboration
4 5-Oct-05
ICALEPCS 2005
Introduction Tango is an example of such a collaboration
including 4 institutes ALBA
New Spanish synchrotron in Barcelona (Talk on Tuesday)
ELETTRA Italian synchrotron in Trieste (Talk on Monday)
ESRF European synchrotron in Grenoble (France)
SOLEIL New French synchrotron in Paris (Talk on Thursday)
5 5-Oct-05
ICALEPCS 2005
What is Tango ?
It is a distributed object oriented control system It supports two languages (C++ and Java) and 3
OS (Linux, Solaris and Windows) It uses CORBA for network communication
omniORB in C++ and JacORB in Java
It is a free software available from ESRF web site as Source distribution (For UNIX like OS) Windows binaries package
6 5-Oct-05
ICALEPCS 2005
What is Tango ?
Every controlled equipment is a device belonging to a class and supporting commands (action) and attributes (data)
Tango classes are merged within process called “device server”
Each device server process has a thread and a data cache to speed-up response time in case of a slow device.
7 5-Oct-05
ICALEPCS 2005
What is Tango ?
Tango has a API supporting three kinds of communication between client and server Synchronously Asynchronously Using event
8 5-Oct-05
ICALEPCS 2005
What is Tango ?
It comes with a set of graphical tools to : Generate code (Pogo) Viewing, filtering Tango device log messages
(LogViewer) Administrating a complete control system (Astor) Viewing/Updating its database and low level device
testing (Jive)
9 5-Oct-05
ICALEPCS 2005
What is Tango ?
Tango has a Java GUI called ATK (Talk on Friday)
It supports bindings to commonly used commercial products Matlab, LabView and Igor
Another binding allows client code to be written using Python language
10 5-Oct-05
ICALEPCS 2005
Developments since 2003
Tango kernel (ESRF / SOLEIL / ELETTRA) Windows binary distribution Events system Group interface Better way to code Tango device attribute
Tango archiving service (SOLEIL) based on MySQL or ORACLE
11 5-Oct-05
ICALEPCS 2005
Developments since 2003
To support new kernel features and to add their own new features, major updates of : The Java graphical toolkit (ATK) supporting events
(ESRF) The Python binding also supporting events
(ELETTRA) The LabView and Matlab bindings which were
updated recently (SOLEIL) But also improvements of the other tools (Pogo,
Jive, Astor….)
12 5-Oct-05
ICALEPCS 2005
Projects started since 2003
A WEB access to Tango device and to the Tango history database (ELETTRA)
A C++ Graphical User Interface based on Qt (ELETTRA)
A Tango alarm system (ELETTRA) A talk this afternoon
Tango device server using Python language (ALBA)
13 5-Oct-05
ICALEPCS 2005
Projects started since 2003
Many, many new Tango classes to interface new hardware (All institutes) Instrumentation Technology Libera beam position
monitor, EPICS link, LabView data socket interface, Fire Wire camera, ADLink boards interface, GPIB interface, miscellaneous power supply or vacuum equipment interface…..
14 5-Oct-05
ICALEPCS 2005
The Tango event system
A device server process thread dedicated to polling detects the event and inform clients which have subscribed to this specific event
Event propagation between device server and clients as well as filtering features are implemented using CORBA notification service omniNotify implementation
Heartbeats detect device server or client death
15 5-Oct-05
ICALEPCS 2005
The Tango event system
Tango supports events only on attributes Five types of events
Change event The “change” definition is defined at the device attribute level
Attribute quality factor change event Periodic event
The period is also defined at the device attribute level
Archive event A mix of periodic and change event
User event
16 5-Oct-05
ICALEPCS 2005
Tango collaboration
In 2002, SOLEIL joined the ESRF to develop Tango
In January 2004, machine control team of ELETTRA decided to use and develop Tango
In December 2004, ALBA also joins us An official collaboration agreement is signed by
institutes management
17 5-Oct-05
ICALEPCS 2005
Tango collaboration
Two or three Tango collaboration meetings organized every year To take design decisions To follow-up action plan Hosted by each institute in a round-robin manner
One Tango coordinator in each institute A mailing list dedicated to Tango problems,
question and sharing ([email protected])
18 5-Oct-05
ICALEPCS 2005
Tango collaboration
Developing software within the collaboration A complete sub-system is assigned to one institute
(Archiving service developed by SOLEIL) Sub-system developed by one institute is taken
charge by another one (Python binding from SOLEIL to ELETTRA)
Sub-system development shared by two institutes at the same time (some kernel feature added by ESRF/ELETTRA)
Need CVS server
19 5-Oct-05
ICALEPCS 2005
Tango collaboration
Sharing software and information Two projects have been created on SourceForge to
share sources using their CVS servers Tango-cs dedicated to Tango kernel source Tango-ds dedicated to Tango classes source
As soon as a new Tango class is registered in CVS repositories, a mail is sent on the mailing list
More than 200 Tango classes are now publicly available from collaborating institutes WEB pages
20 5-Oct-05
ICALEPCS 2005
Tango collaboration
Increasing collaboration using software pattern Tango uses computing language supporting the
interface notion (C++ abstract class or Java interface) Tango supports device abstract classes to define a
common interface for a family of devices (All Power Supplies have ON, OFF, RESET commands….)
One application developed using interface defined via abstract classes can be shared between institutes whatever the concrete classes are
A poster (first session) was dedicated to this issue
21 5-Oct-05
ICALEPCS 2005
Tango collaboration
What we share Tango kernel Tango classes (for similar hardware) Bindings
What we don’t completely share Graphical User Interface
ESRF uses pure ATK (Java), SOLEIL uses a scada system above ATK (Java), Elettra uses C++ graphical user interface. ALBA has not chosen yet
22 5-Oct-05
ICALEPCS 2005
Conclusion
Thanks to the collaboration, Tango is now a mature control system Most of the basic features for modern control system
are now implemented 200 Tango classes available
Even if collaboration is sometimes heavy (fixing meeting dates….), it is the only way to have this level of features and a large classes catalog within reasonable delay and limited man power