Bunch Bank Control

Bunch Bank Control

This panel shows the control configuration for a single bunch bank.  The bunch control is determined by a number of waveforms, which can written to directly as waveform PVs, or can be individually edited using the controls on this page and related pages.  All PVs on this screen are prefixed with $(device):$(axis):BUN:n, with n from 0 to 3.

This screen show three main sections (Sources, Set FIR, Select Bunches) together with an overall status and controls at the bottom.

Sources

The Sources section of this screen allows individual control over each of five possible sources: the bunch by bunch filter and four separate NCOs.  The following table lists the possible sources:

NameControlDescription
FIRBunch by Bunch FIRBunch by bunch FIR output. Select this for normal feedback on this bunch.
NCO1Sequencer and Bunch ControlFixed frequency NCO output. Select this for programmable fixed frequency excitation on this bunch.
NCO2Sequencer and Bunch ControlAlternate fixed frequency NCO output. Select this for programmable fixed frequency excitation on this bunch.
SEQSequencer and Bunch ControlSwept NCO output. Select this for swept frequency excitation under sequencer control. Note that this source will be zero when the sequencer is inactive.
PLLTune PLLTune PLL output. Select this for the tune PLL NCO.

For each of these sources we have the following PVs together with a link to a more detailed control screen for the source (each PV is prefixed $(device):$(axis):$(source) where $(source) is one of the names above):

NamePVDescription

:STATUSShows summary of bunch enable and gain settings.
Gains
Links to Bank Source Gain Control where the individual bunch gains can be configured.
On:SET_ENABLE_SEnables this source for all bunches selected by the bunch selector.
Off:SET_DISABLE_SDisables this source for all bunches selected by the bunch selector.

:ENABLE_SShows a concise view of which bunches are enabled.

Set FIR

The FIR can be selected individually for each bunch:

NamePVDescription

:BUN:n:FIR_SELECT_SChooses the FIR selection that will be written to the selected bunches when the "Set FIR" button is pressed.
Set FIR:BUN:n:FIRWF:SET_SUpdates the selected bunches of :BUN:n:FIRWF_S with the selected value.

:BUN:n:FIRWF_SDetermines which of the four available bunch by bunch filters is active on each bunch.

Extra Fields

We have a summary field, a link to a screen, and an action at the bottom:

NamePVDescription
Status:BUN:n:STATUSShows outline summary of all of the bunch configurations for this bank.
Extra
Links to Legacy OUTWF View.
Reset All Gains:BUN:n:RESET_GAINS_SResets all gains for all sources for this bank to unity gain (0dB) when processed.  It is a good idea to process this PV as a first step before setting up a configuration to ensure that all gains are in a known good state.

Select Bunches

The section "Set Bunches" provides the following PVs:

TitlePVDescription

:BUN:n:BUNCH_SELECT_SThis field can be set to a string describing the bunches to be modified by any of the buttons on this screen or the gain control screen.  The exact syntax of this string is described below.  If an invalid value is written the write is rejected and the Status field below is updated with a description of the format error.
Status:BUN:n:SELECT_STATUSAfter a successful write to :BUNCH_SELECT_S this field reads "Ok".  After any unsuccessful write this field has minor severity and shows a description of the reason why the write was rejected.

The bunch selection defined here is used by all of the action buttons (except for "Reset All Gains").

Bunch Select Syntax

The string written to the :BUNCH:SELECT_S PV determines the range of bunches that will be modified by the "Set" PVs.  This string is either a single : character, selecting all bunches, or is a sequence of numbers or ranges or "skip ranges".  A formal syntax can be written thus:

bunch_select = all | range range+
all = ":"
range = bunch | start ":" end | start ":" step ":" end

The various syntactic options are described below:

SyntaxMeaning
:Selects all bunches
bunchSelects the specified single bunch
start:endSelects the inclusive range of bunches from start to end
start:step:end

Selects bunches starting from start spaced at intervals of step extending until but not after end.

Valid examples are:

:Selects all bunches
1 2 5 6Selects four named bunches
0:935Also selects all bunches (at DLS with 936 bunch ring)
0:100 200:300

Selects two ranges of numbers for a total of 202 selected bunches.

0:5:20Same as selection "0 5 10 15 20".