Download presentation
Presentation is loading. Please wait.
Published byBrandon Ryan Modified over 9 years ago
1
5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)
2
ICALEPCS 2005 2 5-Oct-05 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
ICALEPCS 2005 3 5-Oct-05 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
ICALEPCS 2005 4 5-Oct-05 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
ICALEPCS 2005 5 5-Oct-05 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
ICALEPCS 2005 6 5-Oct-05 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
ICALEPCS 2005 7 5-Oct-05 What is Tango ? Tango has a API supporting three kinds of communication between client and server Synchronously Asynchronously Using event
8
ICALEPCS 2005 8 5-Oct-05 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
ICALEPCS 2005 9 5-Oct-05 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
ICALEPCS 2005 10 5-Oct-05 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
ICALEPCS 2005 11 5-Oct-05 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
ICALEPCS 2005 12 5-Oct-05 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
ICALEPCS 2005 13 5-Oct-05 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
ICALEPCS 2005 14 5-Oct-05 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
ICALEPCS 2005 15 5-Oct-05 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
ICALEPCS 2005 16 5-Oct-05 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
ICALEPCS 2005 17 5-Oct-05 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 (tango@esrf.fr)
18
ICALEPCS 2005 18 5-Oct-05 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
ICALEPCS 2005 19 5-Oct-05 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
ICALEPCS 2005 20 5-Oct-05 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
ICALEPCS 2005 21 5-Oct-05 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
ICALEPCS 2005 22 5-Oct-05 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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.