View
141
Download
0
Embed Size (px)
Citation preview
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!
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
The TANGO Control System ManualVersion 9.2
The TANGO Team
January 14, 2016
RTFM!
Looks easy!
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.
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
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 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
Generic Client
Each one for each specialist
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