5-oct-051 tango collaboration status icalepcs 2005 geneva (october 2005)

22
5-Oct-05 1 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

Upload: brandon-ryan

Post on 14-Jan-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

5-Oct-05 1

Tango collaboration status

ICALEPCS 2005

Geneva (October 2005)

Page 2: 5-Oct-051 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

Page 3: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 4: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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)

Page 5: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 6: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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.

Page 7: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 8: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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)

Page 9: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 10: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 11: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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….)

Page 12: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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)

Page 13: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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…..

Page 14: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 15: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 16: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 17: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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])

Page 18: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 19: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 20: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 21: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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

Page 22: 5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)

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