The SX.XTIM-FCY2500-WRT/Acquisition now reliably publishes the next Timing user, LSA cycle, and machine mode (MMODE) 2500 ms before cycle start, thanks to the migration to White Rabbit. With this migration, the TrackFulleco event builder is no longer necessary, as the machine mode is published at the same time as the cycle.
Old
2500ms forewarning
To know which cycle to predict and compensate field for, we need timing devices. For SPS we use SX.CZERO-CTML/CycleWarning property.
Unfortunately for cycles shorter than 1200ms (ZERO cycle) which occurs twice in a row (2400 ms), the succeeding cycle will be signalled as a ZERO cycle as well with the GMT timing backend. This is planned to be fixed in YETS24/25.
- Follow up with Greg for FCY timing device migration to WR [due:: 2025-02-15] [priority:: medium] [completion:: 2025-05-19]
Machine mode
The machine mode (MMODE) of the accelerator matters, since if the machine is in FULLECO, the played current will remain at idle current (typically 155 A for SPS Main Dipoles), which means that the corresponding field response will be stationary over the cycle, which is necessary for the input context of the next cycle prediction when in autoregressive prediction.
However the machine mode should be known at prediction time, so that the correct input current is used for prediction (and then saved for the next prediction), which means that the MMODE needs to be delivered at 2500ms before cycle start together with cycle name.
- Request MMODE forewarning at -2500ms [priority:: medium] [due:: 2025-01-20] [completion:: 2025-07-30]
Custom timing “device”
The SX.CZERO-CTML/CycleWarning property does not provide sufficient time to do inference and trim before FGCs start loading capacitors (about 1.7s before cycle start).
We have implemented a new UCAP device that determines the next cycle that will be played based on the supercycle structure, which for SFTPRO should ideally give 3.6s forewarning (MD1), but for LHCPILOT will be difficult due to the 1.2s ZERO preceeding it.
This can be further improved by combining the next cycle calculation using the CycleWarning property.
NB If the supercycle changes, the first forewarned cycle will be wrong. But this is fine since if we trim on it it won’t be played anyway, and we will trim said cycle again the next time.