1.17k likes | 1.35k Views
TANGO TRAINING User Session organised by SOLEIL Control/Command and Acquisition Group April 2003. Goals. Present basic concepts share a common vocabulary Understand what a TANGO interface is to get correct interfaces specifications Show current applications
E N D
TANGO TRAINING User Session organised by SOLEIL Control/Command and Acquisition Group April 2003
Goals • Present basic concepts • share a common vocabulary • Understand what a TANGO interface is • to get correct interfaces specifications • Show current applications • to show what the control system will actually be like
Audience • Users of control systems have to: • Share common concepts and vocabulary with the Computing Services. • Be trained to software tools proposed by the Control/Command group • Applications developers linked to the Control/Command Group : • Scientists, who collect, use, process data obtained by the Control/Command group • Engineers/Technicians from Equipment pools, who have to understand/monitor the behavior of their systems • Engineers from other institutes • Who wish to have a first glance at the TANGO tool developed by the ESRF/SOLEIL collaboration
Contributors • Alain Buteau • Majid Ounsy • Jean Chinkumo
Today’s Programme • Part I – what is TANGO ? • A software bus • A «computing tool» dedicated to the implementation of systems which are heterogeneous, distributed and control/command oriented • Chronology • Part II – Basic Concepts • Device • Interface • Commands • Attributes • Statuses • Device Server • Part III – Current high-level applications • Control system configuration • Properties • Monitoring • Logging • Archiving
- Part I - What is TANGO ?
TANGO system: Asoftware bus
A software bus • Analogy with an electronical bus because: • Each card plugged on the bus has a well-identified 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
The device: a bus element TANGO software Bus interface Device HW (motor…)
Example: motor interface: MOTOR: Commands: - GoForward()… Attributes: - Speed (R/W)… Interface Hardware control code
Configuration Device And high-level modular applications Archiving Users Environments : MATLAB, IGOR, python, Labview Logging Monitoring Bindings TANGO Software Bus Device Hardware Hardware (E/S…) (motor…)
interface Device Mouse Exercise Attributes: • PositionX (R/W) • PositionY(R/W) Commands: - Center() TANGO Software Bus Hardware control code
Exercise • Connect your Device to the bus • Start-db.bat (explanations will come later) • Start-mouse.bat • Start an application to see your Device • Start-mousepanel.bat
TANGO system A «computing tool» dedicated to the implementation of distributed, heterogeneous and control/command oriented systems
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
Which computing tool do we need? • Distributed systems • Heterogeneous systems? • A computing tool, ctrl/command oriented
Distributed systems • The system components are geographically distributed on machines interconnected by a computing network: • More than 100 Compact PCI frontend • More than 100 robots • Dozens of operator stations Process Management Supervision / Control : TANGO General Services: Archiving, Configuration, TANGO . ETHERNET CPCI board PLCs Profibus Profibus ETHERNET Motor board GALIL/midi engineering equipments equipments
Heterogeneous systems on hardware and software levels • Slow industrial systems: robots • Fast acquisition systems • Ready for 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 • How to obtain a coherent whole from heterogeneous hardware and software?
A ctrl/command oriented computing tool • Beyond computing technologies to exchange information between systems Need for services specific to a control system (archiving, logging, warnings, …)
TANGO: introduction How does TANGO solve the constraints of activity distribution and of interoperability of the heterogeneous components?
Machine B Machine A Application 3 Application 1 L ? L Application 2 Application 4 ? L ? L SE1 SE2 TANGO: introduction
TANGO: introduction Machine B Machine A Application 3 Application 1 L L Application 2 Application 4 L L SE1 SE2
TANGO: introduction Machine B Machine A Application 3 Application 1 L L Application 2 Application 4 L L SE1 SE2
TANGO: introduction Machine B Machine A Application 3 Application 1 L L Application 2 Application 4 L L SE1 SE2
TANGO: introduction Machine B Machine A Application3 Application1 L L Application2 Application 4 L L SE1 SE2
Distributed Application TANGO: introduction
TANGO: introduction • An abstract concept: the «device» • Central element of the architecture • Tango is based on CORBA • a standard for the administration of communications between software components making up distributed and heterogeneous applications) Dev Dev Dev Dev Dev Dev TANGO software Bus Dev Dev Dev Dev Dev Dev
Device TANGO: device • 1 Device : • Is the software representative for an equipment in the control system • Represents absolutely different equipments under a common software structure Dev Dev Dev Dev Dev Dev TANGO Software Bus Dev Dev Dev Dev Dev Dev Hardware
TANGO Chronology
TANGO at the ESRF • Birth at the ESRF in 1999 • TANGO is an evolution of TACO • As a concept, TANGO is not an absolutely new system • However, TANGO et TACO are 2 source codes, which are totally disconnected • Put into production on the ESRF Machine and used for a brand new development • Synch. booster sextupole control, SR current transformer, vacuum equipment, fluid equipment, alarm system, image acquisition, global feedback • ID14 biocrystallo beamline
ESRF-SOLEIL Collaboration TANGO a strategical choice • First Software Development Plan defined in April 2002 • Cooperation Agreement in the Field of Control-Software for Accelerators and Beamlines: • Technical coordinators and regular meetings • Equal contributions from both 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
ESRF-SOLEIL Collaboration • First realizations milestone : Q3 2002 • User environments bindings: MATLAB, IGOR , Python • Configuration tool: jive • Supervision tool : devicetree • Milestone : Q1 2003 • Historical Database • Logging services • Packaging and common source repository • Port to another CORBA layer: ORBACUS OMNIORB • Asynchronism: point-to-point communication scheme • Milestone : Q2 2003 • Events: many-to-many communication schemes • Python device servers DONE IN PROGRESS
TANGO – current Resources • ESRF • 4 (almost) fulltime programmers • 4 halftime programmers • Soleil • 3 fulltime programmers • 2 halftime programmers • We hope that other institutes will join TANGO as : • Regular users • Taking part in developments • FRM II: New German neutrons source • LLB: CEA/CNRS neutrons source • Elletra : third generation Italian Synchrotron • Others …
Tango: some more links • The source code is available on SourceForge • http://sourceforge.net/projects/tango-cs • There is still much to improve to make this distribution easily usable • The ESRF site is still a reference • http://www.esrf.fr/computing/cs/tango/index.html • The collaboration site SOLEIL/ESRF presents projects under development • http://www-controle.synchrotron-soleil.fr:8001/
- II - Basicconcepts
Dev Dev Dev Dev Dev Dev Application Répartie Control system O O O O O O Dev Dev Dev Dev Dev Dev O O O O O O TANGO: device • an abstract concept: the «device» • central element in the architecture
TANGO: device: definition • device = 1 <entity> to control • Hardware or software • «physical» device / «logical» device • device = 1 polymorphous object • 1 hardware (ex: 1 power supply) • 1 collection of equipment (ex: 1 motor + 1 coder) • 1 cluster of devices (ex: a beamline)
Single Identifier (SOLEIL list) TANGO: device: definition • device = 1 equipment • Most simple and standard case Interface HW Equipment Ctrl/power supply switch. Equipment Ionic pump Device BOO-B1/VI/PI55-3 SC User
phi Motor Device lambda Motor Device energy Monochromateur Device TANGO: device: definition • 1 Device is also a services provider, which • Describes services provided by a group of equipment Software Bus Theta Motor Device
interface Device Mouse Exercise TANGO Software Bus interface Device Keyboard
Exercise • Connect your Device to the bus • Start-keyboard.bat • Start an application to display your Device • Start-keyboardpanel.bat • Discover the Device Keyboard interface • NumLockOff et NumLockOn
Exercise TANGO Software Bus Device Supervisor
Exercise • The DeviceSupervisor • Sums up your mouse movements by asking the position to the Device Mouse • If you do not move it enough, it will have the Device Keyboard flash • Start the Device Supervisor and its command panel • Start-supervisor.bat et Start-supervisorpanel.bat • Start the monitoring of your mouse movements • SupervisionMouseOn • Check that the Device Supervisor : • Provides 1 service, which depends on basic services provided by Mouse and Keyboard basic devices
Device LINAC Ou SCIENTA TANGO: device: definition • 1 Device is also a services provider, which • Describes the service provided by another system to which it is interconnected • note : this software interconnection must be made available: this possibility must be mandatorily requested from suppliers TANGO Software Bus provider Control system