These behaviours are set by the properties DEVICE.PPM and DEVICE.MULTI_PPM in the FGC3 configuration
This behaviour is requested by the CCC, it is also set in the CCDB and does not normally change during the lifetime of a converter.
Background
The CCC controls when a power converter starts playing a user function by means of timing events. A timing event contains the following information:
– precise time delta at which an event (e.g. start-cycle) will occur
– user index to be played. a user index varies from 1 to 32.
TIP! The user indexes that played recently can be found by typing G LOG.TIMING in FGCRun+.
Here is how this information is treated depending on DEVICE.PPM property value:
DEVICE.PPM disabled -> No-PPM mode
This is used for converters/magnets that repeat the same current value always (same beam energy).
The FGC disregards the user index information and plays the same cycle for every user in the supercycle. The user played corresponds to the function/settings of user with index=0 (i.e. in case of a plulse function the amplitude is always REF.PULSE.AMPLITUDE.VALUE(0))
When PPM is disabled OP/user can only set the reference for the non-PPM user, s ref.table.func.value(2) will return an error
With regards to acquisitions they are still treated as PPM properties i.e. the REF.CYC.MAX_ABS_ERR(5) will return the maximum absolute error of the user with index=5
DEVICE.PPM enabled -> PPM mode
This mode is used with power converters (eg. TT2, or booster transfer line) where many different beam energies and particle types pass, hence the magnet current differs from user to user.
– If REF.FUNC.TYPE(index) is other than NONE
– if REF.FUNC.PLAY(index) is ENABLED
the FGC will play the corresponding user function type (G REF.FUNC.TYPE(index)) for each index notified by the timing event.
Example:
– if REF.FUNC.TYPE(1) is PULSE and
– if REF.FUNC.PLAY(1) is ENABLED and
– if REF.PULSE.DURATION(1) is say 0.01 and
– if REF.PULSE.AMPLITUDE.VALUE(1) is 500
then the converter will play a 500A pulse function that lasts 10ms every time a timing event is notified for user with index=1
DEVICE.MULTI_PPM ENABLED -> multi-PPM mode
This mode is used for example when an accelerator user can have different destinations according to conditions set by the operators. For example if a magnet or other device is not ready to take beam the MTG (main timing generator) may replace a destination (example NtoF target) by its spare (example Dump 2).
It is only possible to have one set of original-spare destination on each gateway because the destination change is broadcasted, received and played by all multi-ppm enabled devices on the gateway.