March 2005JM Chaize PCaPac20051 TANGO A control system framework for accelerator and beamlines Design principles Basic concepts Status and projects Jean-Michel Chaize On behalf of TANGO teams ESRF, SOLEIL,ELETTRA, ALBA
March 2005JM Chaize PCaPac20052 TANGO design principles Da Vinci Innovation –services e.g. web services, administration, monitoring… –automation e.g. Sequencing, scanning… Budda We Change –RPC -> CORBA –OS9 -> Windows and Linux –C,TCL -> C++, Java, Python Darwin We keep (Natural Selection) –distributed objects –Network –Unix Control system running since 1991 Improvement became difficult => We decided to refurbish Control system running since 1991 Improvement became difficult => We decided to refurbish
March 2005JM Chaize PCaPac20053 Data Analysis Config Archiver What is TANGO? TANGO Software Bus Generic Services Hardware Device Scan server Sequencer User environment Matlab,Labview Igor, Python Device Hardware Device Hardware Device Hardware Device Hardware Catalog of device servers development tools Interface Generator API Library logging Java Application Tool-Kit
March 2005JM Chaize PCaPac20054 Standardize the communication between distributed objects Many advantages –Vendor independent: Sponsored by many companies –Language independent: Interface Definition Language –Platform independent: Supports heterogeneity –Object oriented: Code re-use, encapsulation … –Very fast CORBA Common Object Request Broker Architecture BUT… –Not trivial to use… –Does not address specific needs of control.
March 2005JM Chaize PCaPac20055 What is TANGO ? A CORBA framework for doing control –A toolbox to implement the system –A specialization of CORBA adapted to Control –Hide the complexity of Corba to the programmer CORBA TANGO Control System
March 2005JM Chaize PCaPac20056 TANGO software Bus Device class Interface HW(motor…) The device is a remote object Standard interface for hardware equipment or service The fundamental brick of TANGO is the Device network
March 2005JM Chaize PCaPac20057 Example: motor interface: MOTOR: Commands: On(), Off(), … Attributes: Speed, Position State: On, Off, Alarm, Fault Round robin buffer, polling thread, event triggering… Interface Hardware control code Automatic code generator To be written By the programer TANGO devices
March 2005JM Chaize PCaPac20058 Pogo code generator C++ or Java Attributes properties For genericity
March 2005JM Chaize PCaPac20059 TANGO devices 1 Device can also interface complex systems –Bridge to other protocols TANGO Software Bus Device LINAC other Control system e.g. TACO RPC Interface
March 2005JM Chaize PCaPac TANGO devices 1 Device can also interface complex systems –Bridge to other protocols TANGO Software Bus Device ID Channel Access Interface Build a TANGO object from a set of channels
March 2005JM Chaize PCaPac TANGO devices 1 Device can also interface complex systems –Bridge to other protocols TANGO Software Bus Device Air Conditioning Infrastructure server OPC Interface Build TANGO device from a set of OPC TAGs
March 2005JM Chaize PCaPac TANGO devices 1 Device can also interface complex systems –Bridge to other protocols TANGO Software Bus Device I/O Modbus TCP/IP Interface Embedded system
March 2005JM Chaize PCaPac TANGO devices 1 Device can also interface complex systems –Bridge to other protocols TANGO Software Bus Device I/O DataSocket Interface Build a TANGO device from DataSocket urls
March 2005JM Chaize PCaPac TANGO Communication Synchronous TANGO Software Bus server Client Send request WaitGet Answer Do the job ~0.2 ms
March 2005JM Chaize PCaPac TANGO Communication Asynchronous TANGO Software Bus server Client Send request Do other job Get Answer When needed Do the job
March 2005JM Chaize PCaPac TANGO Communication Event Driven TANGO Software Bus server Client Subscribe once Do other job Do its job Signal event When occurs (state change) Callback State change event On change event Periodic event Archive event …. Corba Notification service
March 2005JM Chaize PCaPac TANGO software Bus Standardise interfaces of equipment of the same types Interface Implem Concrete Abstract motor Implem Concrete Implem Concrete Implem Concrete Different types of motors Interface Implem Concrete Abstract powersupply Implem Concrete Implem Concrete Implem Concrete Different types of powersupplies Abstract interface classes
March 2005JM Chaize PCaPac Abstract interface classes Standardize interface to families of equipments –Powersupply, motors, function generators, bpm, orbit, correctors…. Decouple high level clients from hardware choices Ease code reuse and interoperability between sites –Multiples beamlines, inter institutes exchange… –Sharing of accelerator physics, data analysis, matlab macros etc… Allow using different hardware for similar functions Allow to build a catalog of compliant device servers –Sharing hardware solutions over multiple institutes, beamlines…
March 2005JM Chaize PCaPac TANGO: Many clients available Dev SPEC TANGO Software Bus OPC Dev TANGO JAVA ATK (Swing) QT Scan Service Java, C++,Python Linux, Windows, Solaris Labview RT
Astor: Administration tool
Jive: Database browsing
March 2005JM Chaize PCaPac ATKpanel a generic client
March 2005JM Chaize PCaPac Jdraw: Generic Synoptic animation
March 2005JM Chaize PCaPac meetings per year Planning follow-up Decision making TANGO Collaboration
March 2005JM Chaize PCaPac Grenoble (France) Light source 6 GeV (844m) 40 beamlines Light for users since 1992 Control system modernization 150 control computers (accel) Linux, Windows, Solaris VME, PC, CompactPCI, SUN Tango used for accelerator control modernization 150 servers running, 546 devices on 54 hosts (RF, Fast feedback, vacuum, tune etc…) Several beamlines use it (progressive migration)
March 2005JM Chaize PCaPac Gif sur Yvette (France) Light Source 2.75 GeV (345m) 23 beamlines Linac control, transfer line ready, Booster in construction Storage ring and 11 beamlines for 2006 Light for users: 2006 PC, CompactPCI, PLCs Windows, Linux, Labview… Tango used for accelerator and beamlines control Lucia beamline operational at SLS (epics interface) Servers for a collection of Cpci boards ready Control of Linac, transfer line OK, Global Screen SCADA, Archiving… Matlab middle layer for prototyping…
March 2005JM Chaize PCaPac Booster Injector Tango used for accelerator control system upgrade: 14 servers running (RF Master Oscillator Plant, Digital BPM, Fast Local Orbit Feedback…) Tango is the control system of the new projects: - Booster injector (construction started beg. 2005) - Free Electron Laser (FEL) Trieste (Italy) Light source GeV (260m) 1Gev Linac, no booster Light for users since beamlines, 1000 users annually Control system modernization: PC with Linux VME, PowerPC, Linux+RTAI
March 2005JM Chaize PCaPac Barcelona (Spain) Light source 3 GeV (268.8 m) 23 straight sections Emittance = 4.3 nmrad Starting construction soon Light for the users: 2009 Tango will be used for accelerator and beamlines control
March 2005JM Chaize PCaPac Status TANGO is mature and well tested –150 servers and 25 applications installed at ESRF –Control of the first elements of Soleil –A beamline at SLS (managed by Soleil team) –14 servers and 7 applications running at ELETTRA The development continues: –On abstract classes code generation, device servers… –Redundancy –Synoptic applications, Application Tool Kit… –New beans ATKviewers –TANGO box soon available pre-installed (via Cosylab) –Training of new users… –Eclipse plugins…
March 2005JM Chaize PCaPac WWW sites for TANGO – Main page – Download tango – Share source – – (All about CORBA) Thanks to TANGO team of ESRF, SOLEIL, ELETTRA and ALBA