Power Supply

Misc Info

The FESA-class is intended to be used for ring-RF systems too - see Wiki-page ring-RF specifics.

The related deployment-unit currently is called "PowerSupply_DU".

Property Layout

To support all variants of !!PowerSupplies (magnet control, HV-Powersupplies, cavity control (DDS), ...) in one FESA class we use Subsets to vary the Property layout and to vary the used value-items in Setting- and Acquisition-Property.

Setting properties

IMPORTANT: Every setting property has standard items to the ones listed here.
property name prop. type field type unit comment impl
Init init       Resets InterlockBits (if not set anymore)  
Reset reset       execute power supply specified reset-method  
Inverter setting invert enum  

possible values are:

-1: negative, 0: noInverter, 1: positive

 
Setting setting voltage double V HV Power Supplies  
    voltage_units char*   unit description  
    voltage_min double V minimum value  
    voltage_max double V maximum value  
    current double A Magnet Power Supplies  
    current_units char*   unit description  
    current_min double A minimum value  
    current_max double A maximum value  
    frequency double Hz for DDS  
    frequency_units char*   unit description  
    frequency_min double Hz minimum value  
    frequency_max double Hz maximum value  
    coeffArrCurr 2D double array A

ramp data for current control as array of

polynomial coefficiences (t, a, b, c)

 
    coeffArrVolt 2D double array V

ramp data for voltage control as array of

polynomial coefficiences (t, a, b, c)

 
    coeffArrFreq 2D double array Hz

ramp data for frequency control as array of

polynomial coefficiences (t, a, b, c)

 
Power power power DEVICE_MODE_POWER (enum -> int)   NONE=0 / ON=1 / OFF=2  

Acquisition properties

IMPORTANT: Every acquisition property has standard items to the ones listed here.
property name prop. type field type unit comment impl
Status status detailedStatus int See extra table See extra table
standard status items     standard items for status property  
Acquisition acquisition detailedStatus bool array - See extra table  
detailedStatus_labels 2D char array   names for the status bits  
voltageSet double V corresponding set value  
voltage double V measured value  
currentSet double A corresponding set value  
current double A measured value  
freqeuncySet double Hz corresponding set value  
frequency double Hz measured value  
...Array double ...

measured values from ramped devices

are not yet defined

 
ModuleStatus   moduleStatus bool array   depends on power supply interface type  
moduleStatus_labels 2D char*   bit description  
Version version          

All acquistion properies implement an internal "onChange" behaviour.
detailedStatus_bit_number meaning detailedStatus_label
0   dummy0
1   dummy1
2   dummy2
3   dummy3

Subsets

Following subsets are defined:

subset name setting acqusition comment
BasicPS current current  
    currentSet  
CryCoolerHvPS voltage voltage  
    voltageSet  
  current current  
    currentSet  
CryRF frequency voltage  
  voltage voltageSet  
  coeffArrFreq    
  coeffArrVolt    
CryIqPS voltage voltage  
    voltageSet  
  current current  
    currentSet  
RampedPS coeffArrCurr    
RampedHvPS coeffArrCurr    
  coeffArrVolt    

Multiplexing and Timing Control

The connection to events from timing system depends on the needed real time behaviour of the individual device. Therefore some logical events (VoltageSetEvent, AcquisitionTimerEvent, ...) have to be configured in instance-file.

Logical Events

Defined in FESA-class design file and there connected to a scheduling-unit. Following logical events are used in PowerSupply
  • VoltageSetEvent
    Trigger VoltageSetRt action to send setting values to device. Is connected to
    • VoltageSetEventSource (onDemand-event): set setting values immediate when Setting property is called
    • TimingEventSource (timing-event): set setting values when event from timing system was received
  • AcquisitionTimerEvent
    Trigger AcquisitionRt action to get acquisition values from device. Is connected to
    • TimerEventSource (timer): acquisition values are read periodically
    • TimingEventSource (timing-event): read acquisition values when event from timing system was received
  • InitSetEvent
    Trigger InitSetRt action. Is connected to
    • InitSetEventSource (onDemand-event): do it immediate when property was called
  • ResetSetEvent
    Trigger ResetSetRt action. Is connected to
    • ResetSetEventSource (onDemand-event): do it immediate when property was called
  • PowerSetEvent
    Trigger PowerSetRt action. Is connected to
    • PowerSetEventSource (onDemand-event): do it immediate when property was called
  • InverterSetEvent
    Trigger InverterSetRt action. Is connected to
    • InverterSetEventSource (onDemand-event): do it immediate when property was called

Description of the Hardware

(TODO)
  • What does it do?
  • Set values
    • Voltage (in kV)
    • SomeCurrent? (in mA) - quite sure: no
  • Actual values
    • Voltage
    • Current
  • Status
    • Error
    • Status
    • Inerlock Bits

Interface to the Equipment

A wide range of PowerSupply interfaces is supported in FESL (Frontend Support Library). All of them are derivated from abstract PowerSupply -interface-class. The PowerSupply FESA-class works with this abstract interface.
hier fehlt noch: TODO
  • HW-Interface macht Power Status Inverter ModuleStatus OnOff -line,... für div. HW-Schnittstellen (DIOB, ACU,...)
  • ValueHandler werden injiziert (Single-, Tuple-, SingleRamp -, TupleRamp -ValueHandler) für div. HW (ADC, ACU, DIOB, FG,...)
  • TODO

  • The SCU communicates with the ACU via SCU-Bus. First information -> SCU Testing
  • Equipment is represented by registers in ACU
    • The forseen registers are described in the ACU register layout.
    • Access from SCU is via Etherbone
  • Implemented functionality. This description supplements the general ACU register layout, for the specific case of the~!HV power Supplies.
    • Write / Read Set-Voltage:
      • Address 1030
      • Normation: as described in normation register (address 1090)
      • Special considerations, if applicable (e.g. after setting wait 10 ms before value can be read back, ...)
    • Read Actual-Voltage:
      • Address 1080
      • Normation: as described in normation register (address 1110)
      • Special considerations, if applicable (e.g. explicitly trigger ADC before, ...)
    • Read Normation of set voltage:
      • Address 1090
      • Meaning: Bit 0 .. 4 bla bla bla
    • Read Normation of set voltage:
      • Address 1110
      • Meaning: Bit 0 .. 4 bla bla bla
    • Commands
      • Register 1020
      • Commands to be used
        • Power On: Bit x
        • Power Off: Bit y
        • Reset: Bit z
        • Bits n, m, o .. q: Not used
    • Read Interlock-Status
      • Registers 1 - 3 used, address 1200, 1201, 1202
      • Registers 4 - 6 not used
  • What works already?

Operation of the Device

(TODO)

Initial Values, Persistency

  • where to start from?
  • which data to be persistent?

Functionality of the Front-End Software

  • On/Off (-> any procedure needed?)
  • Reset
  • Precision (time/values)

FESA version

3.0.x

Nomenclatures

PLPSIZ1H (HV PS) (Sollwert: 0 - 100000 V)
PLPSIZ1E (Puller electrode PS) (Sollwert: 0 - 50000 V)
PLPSIZ1ER (Repeller electrode PS) (Sollwert: -5000 - 0 V)

ToDo

  • for function generators, especially for MIL: Fiddling acquisition into ramp-data supply, when to send commands like Reset, PowerOn/Off - see wiki-page Further Necessary Function Generator Functionality
  • Combining MX and MD
    • State machine in MX has to be used also for MD
      • maybe special internal event evokes execution of a read after a write if MD
      • State machine is normal DEVICE_MODE enum plus some more states
        • Use two different, or extend?
  • Min/Max values (Still relevant?)
    • Guideline says it should be sent with props.
    • Better idea:
      • Hold it as configuration constants in FESA class
      • Readable with prop Constants
  • Hardware status bits -> talk to EET
  • Colored items are not implemented:
    • ...

Misc (Information for Testing)

If you want to access the classes from JAPC, see here.

If yo need to run classes/clients (C++/Java) check this.

Issues on subscriptions with JAPC regarding "DevAcc vs. FESA" are documented here.

For an overview of the status enums in FESA look at state_enums.doc.
I Attachment Action Size Date Who Comment
aktuelle_Implementierung_in_MFU.docdoc aktuelle_Implementierung_in_MFU.doc manage 87 K 13 Jun 2013 - 15:37 MatthiasWiebel Latest implementation of MFU register assignment
state_enums.docdoc state_enums.doc manage 30 K 15 Feb 2013 - 13:41 MatthiasWiebel Summary of state enums (no official documentation)
Topic revision: r29 - 17 Jan 2018, LudwigHechler
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback