Los Alamos

Beam Position Monitor Interface Control Document


Overall Description

The SNS beam position monitor (BPM) system is a PC based instrument, which processes the four lobe signals from a beamline pick-up to measure both beam position and phase. It supports both local and remote operation via a local console and EPICS (Experimental Physics and Industrial Control System) channel access.

Major components of each system include a beamline pick-up, rack-mounted PC with data acquisition card, four Heliax interconnecting cables and the rf calibration and reference frequency source chassis.  

The instrument is a stand-alone device with a few exceptions.  External timing is required to synchronize the data acquisition with the accelerator macropulse structure.  A system-wide 2.5-MHz reference frequency source from the LLRF system is required.

Bream position and phase calculations are performed internal to the instrument. 

General Capabilities

The beam position monitor system is capable of a large variety of measurements, many of which will be determined after the hardware final design and testing is complete.  Only the established minimum requirements are listed here.

1.       Position and phase measurement of a single millipulse of beam.

2.       Position and phase measurement of a sequence of “m” millipulses beginning with millipulse “n” in the macropulse.

3.       Array output of position and phase measurements of a sequence of “m” millipulses beginning with millipulse “n” in the macropulse.

4.       Continuous automatic calibration.

Beam millipulses must be a minimum of 300-ns long in order to make a measurement, due to filter settling time requirements.  The measurement can occur at any point between 300 ns and 650 ns (or longer) into a millipulse. A measurement can be made with a resolution of 25 ns, but each measurement is the average of data taken over the previous 100-ns period.  These timing and minimum-pulse-width limitations apply all measurement modes. 

Single Millipulse Average Measurements

The average position and phase of a single beam millipulse may be measured for any millipulse of at least 300 ns length.  The measurement must be specified as the millipulse number and the number of data points (Approx. 1 to 14) to average during the millipulse.  The data is presented to channel access via ethernet as the interface to the control system.

Multiple Millipulse Average Measurements

Same as above, but averaged over multiple contiguous millipulses.  Must specify starting millipulse number, number of points within each millipulse and the total number of millipulses to average.  The data is presented to channel access via ethernet as the interface to the control system.

Array Millipulse Measurements

Same as above, but results are not always averaged.  The data is presented as an array.  Must specify starting millipulse number, number of points within each millipulse and the total number of millipulses to acquire.  The user must specify whether the data within each millipulse is averaged or not.  The data is presented to channel access via ethernet as the interface to the control system.

Continuous Calibration

Each instrument has a pulsed calibration system that runs at a maximum rate of 60 Hz, and is synchronous with the beam macropulse. The calibration data is taken with 300-ns-long pulses right before or right after (TBD) each beam macropulse.  Calibration data is acquired in the same manor as the beam data, except it is averaged over a large number of macropulses.  User intervention is possible, but not required.

Instrument control and setup

The BPM instrument operation is controlled through a number of channel access channels. These are listed below.  This is a preliminary listing, as the instrument software has not been written at this time.

Channel listing

Channel Name

Description

Prefix_BPM_mode1En

Enables measurement mode 1

Prefix_BPM_mode2En

Enables measurement mode 2

Prefix_BPM_mode3En

Enables measurement mode 3

Prefix_BPM_mode1Start

Mode 1 starting millipulse No.

Prefix_BPM_mode2Start

Mode 2 starting millipulse No.

Prefix_BPM_mode3Start

Mode 3 starting millipulse No.

Prefix_BPM_mode1Dat

Mode 1 No. of data samples

Prefix_BPM_mode2Dat

Mode 2 No. of data samples

Prefix_BPM_mode3Dat

Mode 3 No. of data samples

Prefix_BPM_mode2Dur

Mode 2 No. of millipulses

Prefix_BPM_mode3Dur

Mode 3 No. of millipulses

Prefix_BPM_tMillipulseDur

Duration of each full-length millipulse in nanoseconds

Prefix_BPM_t0rfOn

Time from T0 to the start of rf power in nanoseconds

Prefix_BPM_t0rampStart

Time from T0 to the start of beam ramp in nanoseconds

Prefix_BPM_t0rampEnd

Time from T0 to the end of beam ramp in nanoseconds

Prefix_BPM_t0beamEnd

Time from T0 to the end of beam in nanoseconds

Prefix_BPM_t0rfOff

Time from T0 to the end of rf power in nanoseconds

Prefix_BPM_tCal1

Time from T0 to Cal1, pre-rf

Prefix_BPM_tCal2

Time from T0 to Cal2, rf on before beam

Prefix_BPM_tCal3

Time from T0 to Cal3, rf on after beam macropulse

Prefix_BPM_tCal4

Time from T0 to Cal4, after rf turn-off

Prefix_BPM_macroRate

Machine macropulse repetition rate in Hz

Prefix_BPM_ringFreq

Ring frequency in Hz

Prefix_BPM_ringFreqOut

Present ring frequency in use in Hz

Prefix_BPM_tBoot

Time of last re-boot mmddyy hhmmss

 

Channel Name

Description

Prefix_BPM_mapConstXc0

Xoffset in use

Prefix_BPM_mapConstXc1

Xsensitivity in use

Prefix_BPM_mapConstXc2

Xcubed in use

Prefix_BPM_mapConstXc3

Xycubed in use

Prefix_BPM_mapConstYc0

Yoffset in use

Prefix_BPM_mapConstYc1

Ysensitivity in use

Prefix_BPM_mapConstYc2

Ycubed in use

Prefix_BPM_mapConstYc3

Yxcubed in use

Prefix_BPM_mapBeamDelay

Nom. beam propagation time to BPM location in ns

Prefix_BPM_mapFilename

BPM characterization map filename in use

Prefix_BPM_mapLoadNorm

Momentary, reload normal BPM map file data

Prefix_BPM_mapLoadTest

Momentary, reload test BPM map file data

Prefix_BPM_mapTestFilename

Filename of BPM test map to load

Prefix_BPM_calSelect

Cal0 (null)/Cal1 (default)/Cal2 (normal)/Cal3/Cal4

Prefix_BPM_calHold

Hold present calibration or continue auto-cal

Prefix_BPM_tCalAvg

Length of rolling cal average in seconds, 1/10/100/1000

Prefix_BPM_ExcessCalDrift

Excessive drift rate of self-calibration data warning

Prefix_BPM_ExCalDriftWrngRst

Excessive drift rate of self-calibration data warning rest

Prefix_BPM_calData

Array of calibration data presently in use (24 Floats)

Prefix_BPM_calRawReq

Momentary binary, request output of raw cal data arrays

Prefix_BPM_calRaw

Array of raw cal data from all channels, float

Prefix_BPM_rawDataEn

Request output of raw data arrays upon event trig

Prefix_BPM_rawData

Raw array output, I&Q for all four channels, Integer

Prefix_BPM_tRawDataStart

Time from T0 to start of rawData, nanoseconds

Prefix_BPM_tRawDataStop

Time from T0 to stop of rawData, nanoseconds

Prefix_BPM_procDataEn

Request output of processed data arrays upon event trig

Prefix_BPM_procData

Processed array output, Xpos, Ypos, Mag. And phase, Float

Prefix_BPM_tProcDataStart

Time from T0 to start of procData, nanoseconds

Prefix_BPM_tProcDataStop

Time from T0 to stop of procData, nanoseconds

 

Detailed description

 Prefix_BPM_mode1en : This channel enables or disables the calculation and serving of the single millipulse data.  Update rate determined by event link timing.

 Prefix_BPM_mode2en : This channel enables or disables the calculation and serving of the multiple millipulse, averaged data.  Update rate determined by event link timing.

 Prefix_BPM_mode3en : This channel enables or disables the calculation and serving of the array millipulse data.  Update rate determined by event link timing.

Prefix_BPM_mode1Start: Mode 1 starting millipulse number.

Prefix_BPM_mode2Start: Mode 2 starting millipulse number.

Prefix_BPM_mode3Start: Mode 3 starting millipulse number.

Prefix_BPM_mode1Dat: Mode 1 number of samples within the millipulse to average.  Approximate range is one to 14 for 650 ns long millipulses (25 ns/per sample).

Prefix_BPM_mode2Dat: Mode 2 number of samples within each millipulse to average.  Approximate range is one to 14 for 650 ns long millipulses (25 ns/per sample).

Prefix_BPM_mode3Dat: Mode 3 number of samples within the millipulse to acquire.  Approximate range is one to 14 for 650 ns long millipulses (25 ns/per sample).

Prefix_BPM_mode2Dur: Mode 2 number of millipulses to acquire data for and average over.

Prefix_BPM_mode3Dur: Mode 3 number of millipulses to acquire data for.

Prefix_BPM_tMillipulseDur: Duration of each full-length millipulse in nanoseconds, after the beam ramp up.

Prefix_BPM_t0rfOn: Time from T0 to the start of high-power rf power drive to cavity structures in nanoseconds.  There should be no potential for rf interference during this period.

Prefix_BPM_t0rampStart: Time from T0 to the start of the first beam injection ramp in nanoseconds.  Just prior to this time the rf power is at full power and is stable, with no beam in the machine.

Prefix_BPM_t0rampEnd: Time from T0 to the end of the beam injection ramp in nanoseconds.  All millipulses after this time are of constant duration at the full millipulse width of 300 ns to 650 ns.  Beam data acquired prior to this is time is potentially not usable due to the 300 ns minimum millipulse width length requirement.

Prefix_BPM_t0beamEnd: Time from T0 to the end of the beam macropulse in nanoseconds

Prefix_BPM_t0rfOff: Time from T0 to the end of rf power in nanoseconds.  The potential for interference from the rf systems should end shortly after this time.

Prefix_BPM_tCal1: Time from T0 to Cal1, should be between T0 and “t0rfOn” in nanoseconds.  The calibration routine uses this to determine when no rf power or beam signals should be present to establish the system noise floor.  This is identical to tCal4, except it is prior to the macropulse.

Prefix_BPM_tCal2: Time from T0 to Cal2, should be between “t0rfOn” and “t0rampStart” in nanoseconds.  The calibration routine uses this to measure the rf power interference vector at full power with no beam present.  This information could potentially be used to reduce the error in beam related signals.

Prefix_BPM_tCal3: Time from T0 to Cal3, should be between “t0beamEnd” and “t0rfOff” in nanoseconds.  The calibration routine uses this to measure the rf power interference vector at full power with no beam present.  This information could potentially be used to reduce the error in beam related signals.  This is redundant to the information acquired with tCal2, but after the macropulse.

Prefix_BPM_tCal4: Time from T0 Cal4, should to slightly after “t0rfOff” in nanoseconds.  The calibration routine can use this to determine when no rf power or beam signals should be present to establish the system noise floor.  This is identical to tCal1, except it is after the macropulse.

Prefix_BPM_macroRate: Machine macropulse repetition rate in Hz.  Does not determine the data acquisition rate.

Prefix_BPM_ringFreq: Present ring frequency in Hz.  Used in defining the spacing of millipulse beam data and beam gaps in the acquired data vectors.  This may be redundant, if this information is sent over the event link as expected.

Prefix_BPM_ringFreqOut: Output of the present ring frequency in use in the algorithms in Hz.

Prefix_BPM_tBoot: Output of the time of last re-boot mmddyy hhmmss based on the instruments PC clock.

Prefix_BPM_mapConstXc0: Output of Xoffset in use in the data processing algorithms.

Prefix_BPM_mapConstXc1: Output of Xsensitivity in use in the data processing algorithms.

Prefix_BPM_mapConstXc2: Output of Xcubed in use in the data processing algorithms.

Prefix_BPM_mapConstXc3: Output of Xycubed in use in the data processing algorithms.

Prefix_BPM_mapConstYc0: Output of Yoffset in use in the data processing algorithms.

Prefix_BPM_mapConstYc1: Output of Ysensitivity in use in the data processing algorithms.

Prefix_BPM_mapConstYc2: Output of Ycubed in use in the data processing algorithms.

Prefix_BPM_mapConstYc3: Output of Yxcubed in use in the data processing algorithms.

Prefix_BPM_mapBeamDelay: Output of nominal beam propagation time to BPM location in nanoseconds.  It is necessary to tell each BPM instrument the delay time in the arrival of the beam to the pickup sensor along the beamline, since several millipulses of beam will be in the linac at any given time.  Data taken “simultaneously” must be synchronized to the same millipulse in all locations, meaning that the acquisition must track the beam velocity.  This  delay must also compensate for the distributed delay of the event clock system, though this is a smaller effect than beam velocity.  These numbers will likely be determined experimentally and included in the beam characterization data file.

Prefix_BPM_mapFilename: Output of the BPM characterization map filename in use.  This file contains all of the characterization data for the BPM sensor, and the mapBeamDelay.

Prefix_BPM_mapLoadNorm: A momentary action that reloads normal BPM map file data to put the system back in the normal state regarding the appropriate BPM characterization data.

Prefix_BPM_mapLoadTest: A momentary action that loads a pre-determined test BPM characterization map file.  Used or testing and bugging only.

Prefix_BPM_mapTestFilename: Filename of BPM test map to be loaded by “mapLoadTest”.  Many different test files may exist.

Prefix_BPM_calSelect: Control that determines which calibration routine is in use by the system.  There may be more than the four listed here.  Cal 0 (null) would be a set with zero for offsets and unity for gains.  Cal1 (default) is a known set of calibration numbers that have previously been determined to be correct at one point in time.  This would be static, and not compensate for any changes dynamically.  Cal 2 (normal) would be the standard configuration with continuous dynamic calibration using the standard online calibration system.  Cal3 and Cal4 are not assigned at this time.

Prefix_BPM_calHold: Hold present calibration or continue auto-cal.  When asserted, this function would hold the present calibration parameters.  The calibration system will continue to function, but the results will not be used to modify the calibration constants that are being used.  When de-asserted, the results of the previous calibration rolling averages will be copied to the active calibration constant file, resuming normal operation.

Prefix_BPM_tCalAvg: Length of rolling calibration average in seconds.  Initially restricted to 1, 10, 100 or 1000 seconds in order to use efficient averaging algorithms.  The present calibration constants being used in the data processing will be the average (linear weighted) of the indicated number of seconds of calibration data.  The calculation of these averages is not affected by the calHold function.

Prefix_BPM_ExcessCalDrift: Excessive drift rate of self-calibration data warning is a latched binary output which indicats that one or more of the calibration constants have drifted at a rate that is abnormally high.  This would detect things such as intermittent rf connections, disconnected cables, or excessive noise pickup.

Prefix_BPM_ExCalDriftWrngRst: An input that resets the latched ExcessCalDrift warning.

Prefix_BPM_calData: Output array of the calibration data presently in use by the processing algorithms.  Should be 16 to 24 numbers (TBD). This data is in the form or amplitude and phase (not I&Q).

Prefix_BPM_calRawReq: Momentary binary, request output of raw cal data arrays to be written to calRaw.  Used for test and debugging of the calibration system.

Prefix_BPM_calRaw: Output array of raw cal data from all channels. This data is in the form or amplitude and phase (not I&Q).

Prefix_BPM_rawDataEn: Enable output of raw data arrays upon event trig.  It is assumed that a diagnostics system-wide event trigger will be available to all types of instruments.  Those that are enabled will output raw data.  This should be done only occasionally, not continuously.

Prefix_BPM_rawData: A raw array output of I&Q values for all four channels (not amplitude and phase).

Prefix_BPM_tRawDataStart: Sets the time from T0 to the start of acquisition of the rawData array in nanoseconds

Prefix_BPM_tRawDataStop: Sets the time from T0 to the stop of the rawData array in nanoseconds

Prefix_BPM_procDataEn: Enable output of processed data arrays upon event trigger.  It is assumed that a diagnostics system-wide event trigger will be available to all types of instruments.  Those that are enabled will output processed data.  This should be done only occasionally, not continuously.

Prefix_BPM_procData: Processed data array output, Xpos, Ypos, Mag. and phase.

Prefix_BPM_tProcDataStart: Sets the time from T0 to the start of acquisition of the procData array in nanoseconds.

Prefix_BPM_tProcDataStop: Sets the time from T0 to the stop of acquisition of the procData array in nanoseconds.