Quick notes
Periodic checks
Ctrl script n.11
bpim_timed_acquisition performs a periodic check:
- the timed function for the periodic acquisition: duration 60s, repeated every 180s
- the same function is used to check the timestamp of the intensity readings (if the beam is present) and force an IFIFO reset in case the board are not reading since >360s
- a dpConnect to the lhc_monitoring:aliDcsRun_1 (was dcs_ui:DCS_RUN_UNIT) to force the acquisition start whenever an SOR is seen, with a duration of 20s
- a check_if_reading function, comparing the timestamp of the IntensityPerBeam.Beam reading and the actual time: if the beam is present and the delay is >360s an IFIFO reset is automatically performed
- a check_clock function to raise an alarm when the beam is present but the CTP clock is still in LOCAL
- a check_if_TDC_is_configured to automatically reconfigure (with default values) the TDC in case the datapoint BPIM/bpim0x.Parameter.Readings.Phase.TDC_LOAD is found as FALSE
For every alert, an email+sms have been setup, with the configuration stored in lhc_instrumentation:aliBptx_sendAlert
--
OmbrettaPinazza - 02-Nov-2010
Clock shift reference values
- on 2010-08-24 16:55 phase_zero_bpim01 = 1.43 phase_zero_bpim02 = 1.05
- on 2010-10-18 19:05 phase_zero_bpim01 = 1.35 phase_zero_bpim02 = 1.05
- on 2010-11-05 16:55 phase_zero_bpim01 = 1.71 phase_zero_bpim02 = 1.39
DIP stuff
DIP managers
The project has 2 DIP managers:
Publication
The first manager is DIPCOnfig_1 and is the
PUBLISHER
All the data are listed below.
Subscription
The manager DIPLHC_BPTX_Config (DIP 2) is a client, and the DIP data are stored in the datapoint type Lhccom_lhc:
lhc_instrumentation:LHCCOM/LHC.LHC.RunControl.CirculatingBunchConfig.Beam1 (dyn_int 2808)
lhc_instrumentation:LHCCOM/LHC.LHC.RunControl.CirculatingBunchConfig.Beam2 (dyn_int 2808)
lhc_instrumentation:LHCCOM/LHC.LHC.RunControl.InjectionBunchConfig.Beam1 (dyn_int 288)
lhc_instrumentation:LHCCOM/LHC.LHC.RunControl.InjectionBunchConfig.Beam2 (dyn_int 288)
lhc_instrumentation:LHCCOM/LHC.LHC.RunControl.SafeBeam.Beam1.payload (int)
lhc_instrumentation:LHCCOM/LHC.LHC.RunControl.SafeBeam.Beam2.payload (int)
DIP publications
DIP name |
type |
dp_published (lhc_instrumentation:) |
dp_orig (prefix lhc_instrumentation:BPIM/) |
archive |
dip/ALICE/LHC/IntensitiesPerBunch.Beam1 |
dyn_float |
dipAliceLhc.IntensitiesPerBunch.Beam1 |
bpim01.Parameter.Readings.Interface.P_FILLING_SEEN |
no |
dip/ALICE/LHC/IntensitiesPerBunch.Beam2 |
dyn_float |
dipAliceLhc.IntensitiesPerBunch.Beam2 |
bpim02.Parameter.Readings.Interface.P_FILLING_SEEN |
no |
dip/ALICE/LHC/AbortGap/Beam1.Population |
int |
dipAliceLhc.AbortGap.Beam1.Population |
(fake value) |
- |
dip/ALICE/LHC/AbortGap/Beam1.Warning |
bool |
dipAliceLhc.AbortGap.Beam1.Warning |
(fake value) |
- |
dip/ALICE/LHC/AbortGap/Beam2.Population |
int |
dipAliceLhc.AbortGap.Beam2.Population |
(fake value) |
- |
dip/ALICE/LHC/AbortGap/Beam2.Warning |
bool |
dipAliceLhc.AbortGap.Beam2.Warning |
(fake value) |
- |
dip/ALICE/LHC/Timing/BPTX1.Phase |
float |
dipAliceLhc.Timing.BPTX1.Phase |
bpim1.Parameter.Readings.DIP.Timing.Phase |
ok |
dip/ALICE/LHC/Timing/BPTX1.PhaseErr |
float |
dipAliceLhc.Timing.BPTX1.PhaseErr |
bpim1.Parameter.Readings.DIP.Timing.Phase_RMS |
no |
dip/ALICE/LHC/Timing/BPTX1.wrongBucketFlag |
bool |
dipAliceLhc.Timing.BPTX1.wrongBucketFlag |
bpim1.Parameter.Readings.DIP.Timing.GBWarning |
ok |
dip/ALICE/LHC/Timing/BPTX1.wrongBucketArray |
dyn_int |
dipAliceLhc.Timing.BPTX1.wrongBucketArray |
bpim1.Parameter.Readings.DIP.Timing.wrongBucketArray |
no |
dip/ALICE/LHC/Timing/BPTX2.Phase |
float |
dipAliceLhc.Timing.BPTX2.Phase |
bpim2.Parameter.Readings.DIP.Timing.Phase |
ok |
dip/ALICE/LHC/Timing/BPTX2.PhaseErr |
float |
dipAliceLhc.Timing.BPTX2.PhaseErr |
bpim2.Parameter.Readings.DIP.Timing.Phase_RMS |
no |
dip/ALICE/LHC/Timing/BPTX2.wrongBucketFlag |
bool |
dipAliceLhc.Timing.BPTX2.wrongBucketFlag |
bpim2.Parameter.Readings.DIP.Timing.GBWarning |
ok |
dip/ALICE/LHC/Timing/BPTX2.wrongBucketArray |
dyn_int |
dipAliceLhc.Timing.BPTX2.wrongBucketArray |
bpim2.Parameter.Readings.DIP.Timing.wrongBucketArray |
no |
dip/ALICE/LHC/Timing/BPTX.deltaT |
float |
dipAliceLhc.Timing.BPTX.deltaT |
bpim1.Parameter.Readings.DIP.Timing.deltaT |
ok |
dip/ALICE/LHC/Timing/BPTX.deltaTErr f |
float |
dipAliceLhc.Timing.BPTX.deltaTErr |
bpim1.Parameter.Readings.DIP.Timing.deltaT_RMS |
no |
Note: P_FILLING_SEEN and wrongBucketArray are
arrays and should not be archived.
Set DIP publication as invalid when BPIM are not reading
The
timed script calls a function that calculates the age of the original datapoint. If it's greater than a certain value, the correspondent DIP publication is set as
invalid, setting its config :_original.._aut_inv to TRUE.
A
warning is sent to the PVSS log and the timestamp of the publishing dp is updated: using the
dp_published (above) connected to the original datapoint through a _dp_funct, the original _stime is not changed.
Archives
Datapoint name |
smoothing (time) |
deadband |
type |
BPIM/bpim01.Action.AdcInj.value |
60s |
1% |
Float |
BPIM/bpim01.svc.phase |
60s |
1% |
Float |
BPIM/bpim01.svc.rate |
60s |
1% |
Float |
BPIM/bpim01.Parameter.Readings.DIP.IntensityPerBeam.Beam |
300s |
5% |
Float |
BPIM/bpim01.Parameter.Readings.DIP.Timing.deltaT |
60s |
1% |
Float |
BPIM/bpim01.Parameter.Readings.DIP.Timing.GBWarning |
|
o/n |
Bool |
BPIM/bpim01.Parameter.Readings.DIP.Timing.Phase |
60s |
1% |
Float |
BPIM/bpim01.Parameter.Readings.DIP.Timing.Phase_zero |
60s |
1% |
Float |
BPIM/bpim01.Parameter.Readings.DIP.Intensity.D_ADC_READOUT |
60s |
1% |
Integer |
BPIM/bpim01.Parameter.Readings.DIP.Intensity.M_SUM_INJECTION |
60s |
1% |
Integer |
BPIM/bpim01.Parameter.Readings.Timing.R_CLKDELAY_SEL |
600s |
o/n+t |
Integer |
BPIM/bpim01.Parameter.Readings.Timing.R_ORB_OFFSET |
600s |
o/n+t |
Integer |
|
BPIM/bpim02.Action.AdcInj.value |
60s |
1% |
Float |
BPIM/bpim02.svc.phase |
60s |
1% |
Float |
BPIM/bpim02.svc.rate |
60s |
1% |
Float |
BPIM/bpim02.Parameter.Readings.DIP.IntensityPerBeam.Beam |
300s |
5% |
Float |
BPIM/bpim02.Parameter.Readings.DIP.Timing.deltaT |
60s |
1% |
Float |
BPIM/bpim02.Parameter.Readings.DIP.Timing.GBWarning |
|
o/n |
Bool |
BPIM/bpim02.Parameter.Readings.DIP.Timing.Phase |
60s |
1% |
Float |
BPIM/bpim02.Parameter.Readings.DIP.Timing.Phase_zero |
60s |
1% |
Float |
BPIM/bpim02.Parameter.Readings.DIP.Intensity.D_ADC_READOUT |
60s |
1% |
Integer |
BPIM/bpim02.Parameter.Readings.DIP.Intensity.M_SUM_INJECTION |
60s |
1% |
Integer |
BPIM/bpim02.Parameter.Readings.Timing.R_CLKDELAY_SEL |
600s |
o/n+t |
Integer |
BPIM/bpim02.Parameter.Readings.Timing.R_ORB_OFFSET |
600s |
o/n+t |
Integer |
Smoothing = on change (with deadband) AND time dependent
o/n +t = Old/New comparison + time dependent
VME registers settings
The VME registers are subscribed in a dynamic way; new registers are added in the lbFwTFC_General.lctl library (TFC_SubscribeAllCounters function), and connected to the corresponding datapoint (BPIM/bpim00.Register.Readings.Q1.Rxxx).
On 2010/09/16 I've added the Alice registers, to avoid a special DIm server providing data in a parallel way:
- BPIM/bpim00.Register.Readings.Q1.R0B0, BPIM/bpim00.Parameter.Readings.Intensity.R_ADC_ALICE
- BPIM/bpim00.Register.Readings.Q1.R074, BPIM/bpim00.Parameter.Readings.Intensity.R_ALICE_TRIGGER_RATE
The following two registers were already connected but not set yet:
- BPIM/bpim00.Register.Readings.Q1.R064, toggle
- BPIM/bpim00.Register.Readings.Q1.R068, regsigne
Links to old pages
--
OmbrettaPinazza - 28-Jul-2010