the device pool tango collaboration meeting september 5, 6 2006

13
TANGO Collaboration Meeting. September 5, 6 2006 The Device Pool TANGO Collaboration Meeting September 5, 6 2006 Tiago Coutinho - ALBA

Upload: tamira

Post on 08-Jan-2016

28 views

Category:

Documents


3 download

DESCRIPTION

The Device Pool TANGO Collaboration Meeting September 5, 6 2006. Tiago Coutinho - ALBA. Agenda. Problem One Solution: Device Pool Guidelines Device Pool Structure Example use case. Problem. How to control the experiment? Without caring for the HW specifics - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

The Device PoolTANGO Collaboration Meeting

September 5, 6 2006

Tiago Coutinho - ALBA

Page 2: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Agenda

1.Problem2.One Solution: Device Pool3.Guidelines4.Device Pool Structure5.Example use case

Page 3: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

ProblemExperiment Room

Control Room

?...

CCDsMCAs

Counters

Motor Controllers

•How to control the experiment?

•Without caring for the HW specifics•Using customized coordinate systems•Receiving constant reliable feedback

•How to collect data?•In multiple formats•Automated way

•How to configure new experiments?

•Without having to switch the on/off button•Without being an expert SW developer

•How to share configurations with different BMs?

Page 4: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Runtime add/update of new SW featuresEnables creation of lightweight, platform rich client interfaces:•Java/ATK•IPython•PyQT•C++/QT,C++/MFC•etc

Efficient, reliable, time consistent information feedback to the user

Easy creation and deployment of new SW features

A solutionA software system for instrument control A software system for instrument control

and data acquisitionand data acquisition• Distributed• Client-server network architecture• Event driven architecture• Plug-in architecture• Scriptable• Multi-user• Open source

We called it Device PoolWe called it Device Pool

•Allowing remote user access. •The right SW component in the right place•Easy to add/replace components

Page 5: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Guidelines• User level abstraction• Simple client side applications• Notification based• Robust• Performance critical set of operations• Best effort approach to handle error scenarios• Script extensions• Runtime availability of new installed plug-ins• Code to handle specific HW should not be built in the

system • Multiple user configurations

Page 6: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

PoolPool

Configuration API

Device Pool Structure

MotorMotor

Pseudo MotorPseudo Motor

Motor GroupMotor Group

CounterCounter

ControllerController

LibController

LibPseudo Motor

Lib…

HWConfigurationTool

ClientApplications

.SO.SO

Page 7: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Example use caseScenario

motor 1

beam

Blade 1

Blade 2

motor 2

gap

offset

•User doesn’t want to know about motors 1 and 2•He just wants to control de gap and offset

•Move both at the same time•Change gap maintaining a constant offset•Change offset maintaining a constant gap•Abort movement

•Control more than one motor at the same time•Provide a gap and offset motor interface•Feedback gap and offset state/status changes•Security

•Prevent blades from intersecting the beam•Prevent blades from crushing to each other•Prevent blades from crushing other obstacles (ex: walls)•…

Page 8: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Usage time• Read/Move gap• Read/Move offset• Read/Move gap and offset• Loop (scan):

Move offsetRead data

• …

Pool

Example use case”Pipeline”

Configuration time• Write python/.so controller• Create controller in DP• Crete Motor 1 and Motor 2 in the DP• Write python Pseudo Motor controller• Create Gap/Offset Pseudo Motor in the

DP

GapGap

move

read

move

read

Motor 1Motor 1

Motor 2Motor 2

MotorGroupMotorGroup

MotorController

MotorController

HW

Pseudo MotorLib

OffsetOffset

ClientApplication

Page 9: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Example use caseread operation sequence

Gap MotorGroup

read

Motor 1 Motor 2

read

read

PseudoController

PythonObject

read

calc_pseudocalc_pseudo

motorpos1

motorpos2motorpos1&2

gapgap

Page 10: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Example use casecalculate pseudo position

double pos

Pseudo MotorPseudo Motor

Python PseudoCalc

Python PseudoCalc

double posm

double pos1

double pos2

.

.

.

m

Motorm

Motor1

Motor2

.

.

.

m

“Pseudo” motor position

“physical” motor context

“physical” motor positions

pk

p1

p2

.

.

.

k

[in]: m “physical” motor positions n last known “pseudo” motor positions[out]: n “pseudo” motor positions

Parameters

calc_pseudocalc_pseudo

Page 11: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Example use casemove operation sequence

Gap MotorGroup

read

Motor 1 Motor 2

read

read

PseudoController

PythonObject

move(new gap)

calc_all_pseudocalc_pseudo

motorpos1

motorpos2motorpos1&2

gap & offsetcalc_pseudo

replace(gap, new gap)calc_all_physical

calc_physical

calc_physicalmotorpos1&2

move

Page 12: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Example use casemove pseudo motor

double pos

Pseudo MotorPseudo Motor

Python PseudoCalc

Python PseudoCalc

Motorm

Motor1

Motor2

.

.

.

m

“Pseudo” motor position

“physical” motor context

pk

p1

p2

.

.

.

k

Parameters

[in]: n “pseudo” motor positions m last known “physical” motor positions[out]: m “physical” motor positions double posm

double pos1

double pos2

.

.

.

m

Last known “physical”motor positions

calc_physicalcalc_physical

double posm

double pos1

double pos2

.

.

.

m“physical”motor positions

Page 13: The Device Pool TANGO Collaboration Meeting   September 5, 6 2006

TANGO Collaboration Meeting. September 5, 6 2006

Thank you• Jörg Klora [email protected]

• David Fernández [email protected]

• Randolf Butzbach [email protected]

• Emmanuel Taurel [email protected]

• Tiago Coutinho [email protected]