![]() |
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
Two amplifiers (330Volt, 25
Amp peak each) drive the current in the two sextupole magnets'
families focusing and defocusing.
These power supplies are
located in SYPC and are controlled by the PC2U l-sypc-2.
These two amplifiers are controlled by a dedicated PCI board on which is plugged the PMC-UL-GPIO module from SBS Technologies, Inc., selected for this application.
8 channels of 12-bit analog to digital conversion
8 channels of 12-bit digital to analog conversion
16 channels digital I/O with interrupts
2 external strobes with I/O and clock capability
The PMC-UL-GPIO combines 16 channels of analog I/O and 16 channels of digital I/O into a single-wide PMC. It has eight channels of 12-bit analog input running at up to 100 kSamples/sec, 8 channels of 12-bit analog output running at up to 100 ksamples/sec, and 16 general-purpose buffered digital I/O lines with interrupt capability.
The role of the SBS PMC UL GPIO board at the ESRF is to send commands to the Booster Sextupoles Power Supplies, to read and set the current in the power supplies at precise times and to read the status of the power supplies.
Cycling of the current:
A waveform is sent through the PMC UL GPIO Digital/Analog Converters, composed of a fundamental part at 10 Hertz and its harmonics at up to 100 Hertz, this on top of a continuous part.
The current in the sextupoles power supplies should grow in the same time as the energy in the booster.
The device server receives from the remote application the amplitude of the DC part and the amplitude and phase of each frequency contribution for the AC part.
The 256 points that represent the waveform are calculated by the SySextupoleChannel device server using this set of data:
Amplitude= DC - {AC1 [cos(wt + j1)] + AC2 [cos(2wt + j2)] + ….+ AC10 [cos(10wt + j10)]}. *
* j can be positive or negative.
The waveform synchronization (100 +/- 3ms) is done by an external trigger coming from the BPSS.
The number of points (256) should be constant and equally spaced within the period, the time between two triggers corresponds to the BPSS Dipole reference magnet period which is read by the SySextupoles device server and transmitted to the sextupole driver via sy/ps-sext/focusing device (period attribute).
The measurement of the voltage and the current has to be done for each sample i.e. 256 times a period. From the samples collected during a period, two data have to be calculated for each voltage or current, the DC part and the AC part:
1) The average value which gives the DC component
2) The RMS value of the signal once the DC part has been removed à this to get the AC component. These two values are displayed in the application as the usual "read". The set points as well are displayed and are calculated from the set of frequencies defined above.
The SySextupoleChannel class will control Booster sextupole single channel power supplies.
It will control the channel (On, Off, Reset), control the period set to the driver and all the parameters concerning the wave.
This server will calculate the 256 set points of the wave from different parameters (Ac1,...,Ac10,Phi1,...,Phi10,ACCurrent,DCCurrent, phase and period).
It will also return the values read on the UL GPIO ADCs and calculate the DC and AC currents from the 256 points read on the ADCs.
Important: Voltage_wave and Current_wave attributes must be polled! Otherwise, the attributes ACCurrent, DCCurrent, ACVoltage and DCVoltage will not be updated!
The wave to
send is calculated
each time an attribute used in the calculation is written.
The
wave will be sent to the driver immediately if the attribute written
is Phase,
DCCurrent
or ACCurrent.
Otherwise, the wave will be sent to the driver only if the command
GenerateWave is called.
Note: The command GenerateWave is called in the command SetParameters also (When loading a file on the application) or when clicking on the button Download Wave on the expert panel of the application.