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

How much control do you need to dance TANGO?

Embed Size (px)

Citation preview

How much control do you need to dance TANGO?

Juande Santander-Vela SDP/TM Element Systems Engineer

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!

TACO @ Hartebeesthoek Radio Astronomy Observatory

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

How do you TANGO?The TANGO Control System Manual

Version 9.2

The TANGO Team

January 14, 2016

The TANGO Control System ManualVersion 9.2

The TANGO Team

January 14, 2016

RTFM!

Looks easy!

Tango & Control

There’s a leader

There’s a follower

Tango & ControlInputs (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

TANGO & ControlThere’s a leader → Device Client

There’s a follower → Device Server

CHAPTER 3. THE TANGO DEVICE SERVER MODEL 28

additional information to send on the wire, TANGO version control etc. These details can and should bewrapped 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 thefollowing 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. Thefollowing figure is a drawing of a typical client/server application using TANGO.

Client

Database

TANGO

TANGO

ServerTANGO

Cmd Attrib

CORBA

attrib

CORBA

opera

API

API

Devices

CORBA

CORBACORBA

The database is used during server and client startup phase to establish connection between client andserver.

3.8.2 Communication between client and server using the APIWith the API, it is possible to request command to be executed on a device or to read/write device at-tribute(s) using one of the two communication models implemented. These two models are:

1. The synchronous model where client waits (and is blocked) for the server to send the answer or untilthe timeout is reached

2. The asynchronous model. In this model, the clients send the request and immediately returns. It isnot blocked. It is free to do whatever it has to do like updating a graphical user interface. The clienthas the choice to retrieve the server answer by checking if the reply is arrived by calling an APIspecific call or by requesting that a call-back method is executed when the client receives the serveranswer.

The asynchronous model is available with Tango release 3 and above.

OK for one couple

What about ballrooms?Control Strategy: Startup, Dance, Stop

Distributed,

autonomous

control

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

These are

modes!

(of the dancers)

Or are they

attributes?

A TANGO Device ServerDevice server

Instance Name

State

Attribute_1 Attribute_2 Attribute_3 Attribute_4

Command_1 Command_2 Command_3

Class-dependent

Think

hierarchically

A TANGO Device ServerDevice server

Instance Name

State

Attribute_1 Attribute_2 Attribute_3 Attribute_4

Command_1 Command_2 Command_3 Think inheritance

Class-dependent

A TANGO Hierarchy

Device1 Device2 Device3 Device4

A TANGO Hierarchy

Device Server1

Device Server2

Device1 Device2 Device3 Device4

A TANGO HierarchyTEL-MGT

Device Server1

Device Server2

Device1 Device2 Device3 Device4

A TANGO HierarchyTEL-MGT

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

A TANGO HierarchyTEL-MGT

Client1

Client2

Client3Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

A TANGO HierarchyClient1 Client2

Client3

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

A TANGO Hierarchy

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

Generic Client

This is the

power of TANGO

A TANGO Hierarchy

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

Generic Client

A TANGO Hierarchy

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

Generic Client

A TANGO Hierarchy

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

Generic Client

Generic Client

Each one for each specialist

A TANGO HierarchyTEL-MGT

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

A TANGO Hierarchy

Proxy1

Device Server1

Device Server2

Device1 Device2 Device3 Device4

DB

Proxy2

Device Server4

Device Server3

Device5 Device6 Device7 Device8

TEL-MGT

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

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

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

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

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. asynchronousAnd many others,

included in TANGO

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

Thank you!

Questions?

TANGO & SKA