Top Banner
Multiplexing in FESA
15

Multiplexing in FESA

Jan 19, 2016

Download

Documents

ivan

Multiplexing in FESA. Overview. Part I- The concept Part II- Before execution Part III- Setting a new Voltage to the Hardware Part IV- Returning a new current to the client Part V- Exercise. Part I – Our facility. Accelerator SIS ESR UNI SIS18 SIS100 …. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Multiplexing in FESA

Multiplexing in FESA

Page 2: Multiplexing in FESA

Alexander Schwinn 2

Overview

• Part I - The concept

• Part II - Before execution

• Part III - Setting a new Voltage to the Hardware

• Part IV - Returning a new current to the client

• Part V - Exercise

Page 3: Multiplexing in FESA

Alexander Schwinn 3

Part I – Our facility

VirtualAccelerator (USER)• VACC_00• VACC_01• VACC_02• …

Accelerator• SIS• ESR• UNI• SIS18• SIS100• …

Concrete EventSTART_CYCLE 32INJECT 35UNI_READY 38…

Page 4: Multiplexing in FESA

Alexander Schwinn 4

Part II Timing Configuration

Page 5: Multiplexing in FESA

Alexander Schwinn 5

Unilac

1

3

4

5

21

242

32

2

SIS18

SIS100

SIS300

Storage-Ring

10 111

113

112 10 11

111

311

217

117

217

417

3 Labels: sequence (cycle)

“sequence” or “cycle”

Part I – The Beam Production Chain

Page 6: Multiplexing in FESA

Alexander Schwinn 666

Beam ISOLDE Beam ISOLDE

Beam PS

A ABB

super cycle

VirtualAccelerators (USERS)

Part I – The cycle-concept

• Different types of beams (cycles)Different types of beams (cycles)• Cycles are organized in a sequence called “super cycle”Cycles are organized in a sequence called “super cycle”• A super-cycle is repeated continously.A super-cycle is repeated continously.• Supercycles are accelerator-specific Supercycles are accelerator-specific

Accelerator = TL_BoosterPS_1

Page 7: Multiplexing in FESA

Alexander Schwinn 777

Beam ISOLDE

Beam PS

A ABB

super cycle

Beam ISOLDE

Field: fdCurrentVirtualAccelera

torField-Value

A

0

B

0

B

0

A

0X Y Y Xt

Part I - The concept

Page 8: Multiplexing in FESA

Alexander Schwinn 8

Part II Design Phase

Page 9: Multiplexing in FESA

Alexander Schwinn 9

Part II Instantiation File (per FEC)

Page 10: Multiplexing in FESA

Alexander Schwinn 10

Part III - Setting a New Value

Voltage

SetServerAction

Server

Data

Voltage0 VACC_00 - 0…4 VACC_04 – 0...15 VACC_15 – 0

SIS.USER.VACC_04; 47,11

Client-SetDev=kgb123

Prop=Voltage

Cycle=SIS.USER.VACC_04

Value=47,11

FESA-CLASS

Voltage0 VACC_00 - 0…4 VACC_04 – 47,11...15 VACC_15 – 0

Page 11: Multiplexing in FESA

Alexander Schwinn 11

Part III usage of new voltage

FESA-Event RTAction

RealTime

TimingEvent

Timing Library

RAMP_STARTSIS.USER.VACC_04

4

47,11

Data

Voltage0 VACC_00 - 0…4 VACC_04 – 47,11...15 VACC_15 – 0

Hardware Device

anybus.set.val.chan123=47,11

done!

FESA-CLASS

Page 12: Multiplexing in FESA

Alexander Schwinn 12

done!.current.is.08.15

anybus.read.val.chan123Hardware

Device

Part IV Notification of Server-side

FESA-Event RTAction

Subscriber1Dev=kgb123

Prop=status

Cycle=SIS.USER.VACC_04

RealTime

notify „current“

IPC or local queue

Data

Current0 VACC_00 - 0…4 VACC_04 – 08,15...15 VACC_15 – 0

Subscriber2Dev=kgb123

Prop=current

Cycle=

Subscription Tree Manager

match(event.cycle_name,subscriber.cycle_name)

We have subscribers?- for this property?- for this cycle?- for this device

Server

FESA-CLASS

4; 08,15

TimingEvent

Timing Library

FLATTOPSIS.USER.VACC_04

Page 13: Multiplexing in FESA

Alexander Schwinn 13

StatusGetAction

Data

Current0 VACC_00 - 0…4 VACC_04 – 08,15...15 VACC_15 – 0

Subscriber1Dev=kgb123

Prop=status

Cycle=SIS.USER.VACC_04

Subscriber2Dev=kgb123

Prop=current

Cycle=

Subscription Tree Manager

match(event.cycle_name,subscriber.cycle_name)

executeSIS.USER.VACC_04

08,15

FESA-CLASS

Server

08,15

Part IV Notification of Clients

Page 14: Multiplexing in FESA

Alexander Schwinn 141414

Part V Exercise

• ClassClass• Use your class from “08_advanced_RealTime”Use your class from “08_advanced_RealTime”• Add a multiplexed acquisition-field “voltageFlattop”Add a multiplexed acquisition-field “voltageFlattop”• Add a multiplexed acquisition-property “Voltage”Add a multiplexed acquisition-property “Voltage”

• Add a value-item voltageFlattop to refer to the fieldAdd a value-item voltageFlattop to refer to the field• Add “Voltage” as notified-property of your RTActionAdd “Voltage” as notified-property of your RTAction• Set the field “voltageFlattop” in the C++ codeSet the field “voltageFlattop” in the C++ code• Print the cycle-name of the current cycle in the C++ codePrint the cycle-name of the current cycle in the C++ code

• Instantiation FileInstantiation File• Use the event-configuration “TimingConfig” for both devicesUse the event-configuration “TimingConfig” for both devices• Update the following information in your device/configurationUpdate the following information in your device/configuration

• accelerator = SISaccelerator = SIS• timing-domain = SIStiming-domain = SIS• MainMuxCriterion = USERMainMuxCriterion = USER

• FESA-ExplorerFESA-Explorer• Subscribe to VACC_12, VACC_13, VACC_11 and ALLSubscribe to VACC_12, VACC_13, VACC_11 and ALL

On any problem: [email protected]

Page 15: Multiplexing in FESA

Alexander Schwinn 15

Part V Exercise