Hi everybody,
For the IFMIF/EVEDA project we are using White Rabbit to synchronize our different LLRF modules.
Now we would like to be able to send a PV command that should be executed at the same instant in all our modules.
So we have 8 LLRF modules with 8 independent IOCs that are synced to the same time reference.
I was thinking to:
- Create a new "Fake" IOC to run on one of the 8 modules (LLRF_ALL)
- Send a command LLRF_ALL:myWriteCmd from CSS/GUI
- When this command is received by the LLRF_ALL,
- Get the timestamp when this command was received (rcvTimestamp)
- and forward to the 8 modules other LLRF ioc modules:
- LLRF_x:myWriteTimeStamp= rcvTimestamp+2s (The 2 extra seconds are added to be sure that we have enough time to receive the message at all the other IOCs)
- LLRF_x:myWriteTimeCmd=LLRF_ALL:myWriteCmd
- Then on each IOC of the 8 module (LLRF_x when x=[1-8])
- Receive the two PV values forwarded by the Fake IOC
- Wait until LLRF_x:myWriteTimeStamp to execute the command LLRF_x:myWriteTimeCmd on our device.
I try to search if something similar was already done but did not find anything that fit my exact need.
Another nice feature would be to know if all the LLRF have correctly received the instruction with enough time in order to execute it. However this might be more complex.
Cheers,