Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How much control do you need to dance TANGO?

How much control do you need to dance TANGO?

This set of slides introduce the TANGO control system for the SKA telescopes, using analogies between tango dancing and the paradigms of the TANGO control system.

The talk was given in the context of the Engineering Q&A talks of the SKA Organisation.

Juande Santander-Vela

September 14, 2016
Tweet

More Decks by Juande Santander-Vela

Other Decks in Technology

Transcript

  1. How much control do you
    need to dance TANGO?
    Juande Santander-Vela
    SDP/TM Element Systems Engineer

    View Slide

  2. TANGO: SCADA for SKA
    SCADA: Supervisory Control And Data Acquisition
    TANGO: TAco Next Generation Object-oriented
    (control system)
    ➥ TACO: Telescope and Accelerator Control Objects
    Not that foreign
    to astronomy!

    View Slide

  3. TACO @ Hartebeesthoek Radio
    Astronomy Observatory

    View Slide

  4. View Slide

  5. View Slide

  6. Why TANGO for SKA?
    Need for a common control middleware across the SKA
    Need for industrial-strength SCADA
    Open Source, very large, vibrant community
    Some experience in astronomy: TANGO is TACO++
    Preferred to ALMA Common Software & EPICS
    Very successful in
    synchrotron world

    View Slide

  7. How do you TANGO?
    The TANGO Control System Manual
    Version 9.2

    View Slide

  8. The TANGO Control System Manual
    Version 9.2
    RTFM!
    Looks easy!

    View Slide

  9. Tango & Control
    There’s a leader
    There’s a follower

    View Slide

  10. Tango & Control
    Inputs (follower)
    • Torso orientation
    • Distance between chests
    • Centre of gravity
    • Pressure on the back
    • Distance to other dancers
    • …

    Outputs (follower)
    • Leg movement
    • Arm movement
    • Hip position
    • Centre of gravity
    Needs constant
    attention
    Refined with
    experience

    View Slide

  11. TANGO & Control
    There’s a leader → Device Client
    There’s a follower → Device Server
    additional information to send on the wire, TANGO version control etc. These details can and should be
    wrapped in TANGO Application Programmer Interface (API). The API is implemented as a library in C++
    and as a package in Java. The API is what makes TANGO clients easy to write. The API’s consists the
    following basic classes :
    • DeviceProxy which is a proxy to the real device
    • DeviceData to encapsulate data send/receive from/to device via commands
    • DeviceAttribute to encapsulate data send/receive from/to device via attributes
    • Group which is a proxy to a group of devices
    In addition to these main classes, many other classes allows a full interface to TANGO features. The
    following figure is a drawing of a typical client/server application using TANGO.
    Client
    Database
    TANGO
    TANGO
    Server
    TANGO
    Cmd Attrib
    CORBA
    attrib
    CORBA
    opera
    API
    API
    Devices
    CORBA
    CORBA
    CORBA

    View Slide

  12. OK for one couple

    View Slide

  13. What about ballrooms?
    Control Strategy: Startup, Dance, Stop
    Distributed,
    autonomous
    control

    View Slide

  14. What about systems?
    Leaders are many times followers of other leaders
    (military hierarchy)
    Anyone could be a follower of anyone (swarms)
    Strategy allows for clear decision and action at the
    different levels
    Think
    hierarchically

    View Slide

  15. View Slide

  16. These are
    modes!
    (of the dancers)

    View Slide

  17. Or are they
    attributes?

    View Slide

  18. A TANGO Device Server
    Device server
    Instance Name
    State
    Attribute_1
    Attribute_2
    Attribute_3
    Attribute_4
    Command_1
    Command_2
    Command_3



    Class-dependent
    Think
    hierarchically

    View Slide

  19. A TANGO Device Server
    Device server
    Instance Name
    State
    Attribute_1
    Attribute_2
    Attribute_3
    Attribute_4
    Command_1
    Command_2
    Command_3
    Think inheritance



    Class-dependent

    View Slide

  20. A TANGO Hierarchy
    Device1 Device2 Device3 Device4

    View Slide

  21. A TANGO Hierarchy
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4

    View Slide

  22. A TANGO Hierarchy
    TEL-
    MGT
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4

    View Slide

  23. A TANGO Hierarchy
    TEL-
    MGT
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB

    View Slide

  24. A TANGO Hierarchy
    TEL-
    MGT
    Client1
    Client2
    Client3
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB

    View Slide

  25. A TANGO Hierarchy
    Client1 Client2
    Client3
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB

    View Slide

  26. A TANGO Hierarchy
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Generic
    Client
    This is the
    power of TANGO

    View Slide

  27. A TANGO Hierarchy
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Generic
    Client

    View Slide

  28. A TANGO Hierarchy
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Generic
    Client

    View Slide

  29. A TANGO Hierarchy
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Generic
    Client
    Generic
    Client
    Each one
    for each
    specialist

    View Slide

  30. A TANGO Hierarchy
    TEL-
    MGT
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB

    View Slide

  31. A TANGO Hierarchy
    Proxy1
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Proxy2
    Device
    Server4
    Device
    Server3
    Device5 Device6 Device7 Device8
    TEL-
    MGT

    View Slide

  32. A TANGO Hierarchy
    Proxy1
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Proxy2
    Device
    Server4
    Device
    Server3
    Device5 Device6 Device7 Device8
    TEL-
    MGT
    DB

    View Slide

  33. A TANGO Hierarchy
    Proxy1
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Proxy2
    Device
    Server4
    Device
    Server3
    Device5 Device6 Device7 Device8
    TEL-
    MGT
    DB
    DB

    View Slide

  34. A TANGO Hierarchy
    Proxy1
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Proxy2
    Device
    Server4
    Device
    Server3
    Device5 Device6 Device7 Device8
    TEL-
    MGT
    DB
    DB Can be
    scaled
    easily

    View Slide

  35. A TANGO Hierarchy
    Proxy1
    Device
    Server1
    Device
    Server2
    Device1 Device2 Device3 Device4
    DB
    Proxy2
    Device
    Server4
    Device
    Server3
    Device5 Device6 Device7 Device8
    TEL-
    MGT
    DB
    DB Allows for
    bottom-up
    building

    View Slide

  36. Not talking about…
    Commonality of attributes (LMC harmonisation)
    Having similar interfaces for similar devices
    (inheritance, device libraries, software harmonisation)
    Archiving and logging
    Time-stamping
    Synchronous vs. asynchronous
    And many others,
    included in TANGO

    View Slide

  37. How much control do you need
    to dance TANGO?
    Ability to keep track of own status (state, attributes),
    and perform “moves” (commands)
    Ability to measure attributes in others (read attributes)
    Signal others what is going to happen (write
    attributes), ask directly (command)
    Let others define the higher-level of control
    TANGO rules are embedded throughout

    View Slide

  38. Thank you!

    View Slide

  39. Questions?

    View Slide

  40. TANGO & SKA

    View Slide