The Feedback Support Soft IOC
The Feedback Support Soft IOC stores data used by and produced by the LCLS beam-based feedbacks. This data can accessed by LCLS high level applications and users, in real-time from the soft IOC, or from the LCLS Archiver.
NOTE: The configuration data (tolerances and status) are written to ONLY BY THE MATLAB feedback application, and ONLY while the feedback is OFF. STATE SETPOINTS may be written to while a feedback is ON - this allows for dynamic setpoint changes during feedback. An EDM screen is used to change state setpoints while a feedback is running.
There are four categories of data stored by the Feedback Support soft IOC. They are:
- Actuator data
- the actuator adjustment value calculated by each feedback loop. For example, the RF Phase values calculated and used to adjust the RF Phase setpoint in the DL1 Energy feedback loop.
- A history of the calculated actuator value; the last 1000 values calculated by the feedback are stored in a compress record
- A smaller compress record of calculated actuator values used for EDM displays
- Feedback tolerance values for each of the actuators; a low limit, high limit, and percent limit settable by the user with the configuration application
- the status (used, not used) of each actuator that may be used in each feedback, set by user with the configuration application
- initial actuator values: stored at the time a feedback loop starts; the initial actuator value that can be restored (recovered) when a feedback loop is stopped due to some error.
- Measurement data
- the measurement device readbacks used in each feedback calculations. For example, the BPM:X readback used in DL1 Energy feedback calculations to adjust the RF Phase.
- a history of the measurement values; the last 1000 values are stored in a compress record
- a smaller compress record of measurement values used for EDM displays
- feedback tolerance values for the measurement device readbacks, a low limit, a high limit, settable by user
- a dispersion value; used for BPMs, set to 1 for other measurement devices; settable by user
- the status (used, not used) of each measurement device that may be used in each feedback, set by user
- it can also store the pulseid for each measurement set - stored in a 1000 point compress record
- Feedback State data
- the state setpoint value for each state of each feedback loop, settable by the user at the feedback EDM screen - this can be changed while the feedback is running
- the calculated value of each state for each feedback loop.
- compress records of 1000 values for history of calculated states
- a smaller compress record for EDM display
- Feedback tolerance values for the state settable by the user; a low and high value
- the calculated RMS error of the calculated state (error from setpoint)
- a compress record of the history of the RMS error
- a smaller compress record of the RMS error to display in EDM
- the status (used, not used) of each state that may be used in each feedback, set by user with the configuration application
- Feedback Status data
- the status (On, Off) of each individual feedback. set by the feedback engine application
- the status (On, Off) of each group feedback (eg. status of Longitudinal feedback, where only one can run at a time), set by the feedback engine application
- a loop counter record written to by the feedback engine application, counting each loop.
- a counter display record, updated every 2 seconds, for loop count display on EDM screens.
- enable / disable control (so that other applications can turn off feedback temporarily)
PV Names in the Feedback Support Soft IOC
Each Beam-based Feedback has a three-letter acronym that is used in PVs associated with that feedback. For different configurations of the same feedback, a number is appended to the end of the three-letter acronym. The following is a table of Feedback acronyms and names:
Value |
Feedback |
---|---|
LNG0 |
Longitudinal: Spectrometer Dump Energy (1x1) |
LNG1 |
Longitudinal: DL1 Energy (1x1) |
LNG2 |
Longitudinal: DL1 and BC1 Energy (2x2) |
LNG3 |
Longitudinal: DL1 Energy + BC1 Energy + BC1 Bunch Length (3x3) |
LNG4 |
LNG3 + BC2 Energy (4x4) |
LNG5 |
LNG3 + BC2 Energy + BC2 Bunch Length (5x5) |
LNG6 |
LNG3 + BC2 Energy + BC2 Bunch Length + DL2 Energy (6x6) |
B5L |
Gun Launch (used to be BPM5 Launch) |
INL0 |
Injector Launch to Spectrometer |
INL1 |
Injector Launch (to linac) |
B1L |
X Cavity Launch (was going to be BC1 Launch - need new acro) |
L2L |
L2-linac Launch |
L3L |
L3-linac Launch |
BSY |
BSY Launch |
LTL |
LTU Launch |
UND |
Undulator Launch |
BCI |
Bunch Charge at Injector |
LPS |
Laser Power Set (for Bunch Charge loop support) |
Now the DL1 energy, BC1 Energy and Bunchlength, and Spectrometer Dump Energy loops are individual Longitudinal Feedbacks. At any one time, only one of these feedbacks can run, another longitudinal feedback will not start if one is already running.
These three-letter acronyms are used in two places in feedback PVs:
- For actuator and measurement device storage, the acronym is tacked on to the attribute of the PV being used.
- eg. BPMS:IN20:252:XLNGHST is the last xxxx X values read by the DL1 Energy Feedback Loop
- For state and status PVs, the acronym is used in the 'area' portion of the PV name. To make it 4 characters a 0 is tacked onto the end.
- eg: FBCK:LNG2:1:BC1E is the BC1 Energy state of the 2x2 Longitudinal, and FBCK:LNG0:1:STATE is the ON / OFF state of the Longitudinal feedback (keep your states straight...)
-
- eg: FBCK:INJ0:1:XPOSDISP is the Injector Launch X Position state compress record for displaying the last 200 calculated states.