1 / 96

TANGO TRAINING User Session organised by SOLEIL Controls Group April 2003

TANGO TRAINING User Session organised by SOLEIL Controls 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

abedi
Download Presentation

TANGO TRAINING User Session organised by SOLEIL Controls Group April 2003

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TANGO TRAINING User Session organised by SOLEIL Controls Group April 2003

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

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

  4. Contributors • Alain Buteau • Majid Ounsy • Jean Chinkumo

  5. 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 • Status • Device Server • Part III – Current high-level applications • Control system configuration • Properties • Monitoring • Logging • Archiving

  6. - Part I - What is TANGO ?

  7. TANGO system: Asoftware bus

  8. A software bus • Analogy with an electronic 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

  9. The device: a bus element TANGO software Bus interface Device HW (motor…)

  10. Example: motor interface: MOTOR: Commands: - GoForward()… Attributes: - Speed (R/W)… Interface Hardware control code

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

  12. interface Device Mouse Exercise Attributes: • PositionX (R/W) • PositionY(R/W) Commands: - Center() TANGO Software Bus Hardware control code

  13. TANGO system A «computing tool» dedicated to the implementation of distributed, heterogeneous and control systems

  14. Control system challenge 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

  15. Which computing tool do we need? • Distributed systems • Heterogeneous systems? • A computing tool, control/command oriented

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

  17. 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?

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

  19. TANGO: introduction How does TANGO solve the constraints of activity distribution and of interoperability of the heterogeneous components?

  20. Machine B Machine A Application 3 Application 1 L ? L Application 2 Application 4 ? L ? L SE1 SE2 TANGO: introduction

  21. TANGO: introduction Machine B Machine A Application3 Application1 L L Application2 Application 4 L L SE1 SE2

  22. Distributed Application TANGO: introduction

  23. TANGO: introduction

  24. TANGO: introduction

  25. TANGO: introduction

  26. TANGO: introduction

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

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

  29. TANGO Chronology

  30. 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 and TACO are 2 source codes, which are totally disconnected • Put into production on the ESRF Machine and used for new developments • Synch. booster sextupole control, SR current transformer, vacuum equipment, fluid equipment, alarm system, image acquisition, global feedback • ID14/EH3 protein crystallography beamline

  31. 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 started the 20th of June 2002

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

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

  34. 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/tango/index.html • The collaboration site SOLEIL/ESRF presents projects under development • http://www-controle.synchrotron-soleil.fr:8001/

  35. - II - Basicconcepts

  36. What is a Device ?

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

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

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

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

  41. 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 requested from suppliers TANGO Software Bus provider Control system

  42. What is an interface ?

  43. Commands Attributes Generics Specifics Generics Specifics Init State Status PowerOn PowerOff - current Hardware control code TANGO: device: interface • Each Device has a communication interface • interface = commands + attributes • commands  actions • attributes  physical units TANGO Software Bus Interface

  44. Commands • Generics commands • Specifics commands

  45. Commands Attributes Generics Specifics Generics Specifics Init State Status PowerOn PowerOff - current Hardware control code TANGO: device: interface: command • Has a communication interface • interface = commands + attributes • commands  actions • attributes  physical units TANGO Software Bus Interface

  46. TANGO: device: interface: genericscommand • Generics commands exist for EVERY type of Device • Their name is supposed to describe what is expected from them!! • Info: on which machine does the Device run, etc .. • Ping: tries to communicate with the Device • BlackBox: list of commands last executed on the Device • Init: reinitializes the Device • State: 1 of the 14 predefined states of TANGO: • ON, OFF, ALARM • Status: Device status in text format : • « motor has reached limit switch »

  47. TANGO: device: interface: command • The specifics commands • Are defined by the Device developer • have : 0 or 1 in argument (argin) • give : 0 or 1 out argument (argout) • argin & argout = 1 of the 20 TANGO types • Execution : • launch the command_inout function with the following arguments : • command name • In parameter of the command • Output: • result of command execution

  48. TANGO: device: interface: command • About argin & argout types…

  49. TANGO: device:interface: command • About argin & argout types…

  50. TANGO: device: interface: command • Syntax from bindings • Prog. Env. OO (C++, Java, Python) argout = dev.command_inout (cmd_name, argin) • User Env. (Matlab, Igor Pro, …) argout = tango_command_inout (dev_name, cmd_name, argin) • Python example: >> from PyTango import * >> mouse= DeviceProxy ("px1/tdl/mouse") >> mouse.command_inout(“Center") >> mouse.command_inout(“ChangeCenter“,[10,10])

More Related