Development status:
New development
Information status: Updated
Repository:
http://svn.code.sf.net/p/tango-ds/code/DeviceClasses/MagneticDevices/TwickenhamSMC
Contact:
Class Description
This class is used for controlling the main features of Twickenham Superconducting Magnet Controller
Families: Instrumentation
Key words:
Platform: All Platforms
Language: Python
License: GPL
Contact:
Hardware
Manufacturer: Twickenham
Product:
Superconducting Magnet Controller 120-10/20 firmware 5.64 - 5.68
Bus: Serial Line
Class interface
Attributes:
Name | Description |
---|---|
CalibrationScalar: DevDouble | Calibration factor used to compute field from current |
CurrentScalar: DevDouble | Output current being delivered |
FieldScalar: DevDouble | Output field being delivered |
VoltageScalar: DevDouble | Output voltage being delivered |
DirectionScalar: DevBoolean | Ramp direction (positive=False/negative=True) |
FPLockedScalar: DevBoolean | Front panel locked |
PausedScalar: DevBoolean | Ramp paused |
RampRateScalar: DevDouble | Ramp rate |
RampTargetScalar: DevString | Ramp target (lower, zero or upper) |
TargetToleranceScalar: DevDouble | Tolerance to consider target reached |
TargetTolerance0Scalar: DevDouble | Tolerance to consider zero reached |
UnitsScalar: DevString | Units displayed in front panel (Amps or Tesla) |
UpperScalar: DevDouble | Upper target setpoint |
LowerScalar: DevDouble | Lower target setpoint |
CommErrorsSpectrum: DevString | Log of communication errors since last init |
Commands:
Name | Description |
---|---|
StateInput: DevVoid Output: State State Code |
This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller. |
StatusInput: DevVoid Output: ConstDevString Status description |
This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller. |
RampInput: DevUShort 0 : ramp to Zero 1 : ramp to Lower 2 : ramp to Upper Output: DevVoid |
Ramp power supply to Lower, Upper or Zero |
RampInRangeInput: DevVarDoubleArray start and end points of the ramp range Output: DevVoid |
Ramp power supply between the 2 setpoints passed as parameters |
StopInput: DevVoid Output: DevVoid |
Stop power supply at current value by setting current field/amps as lower/upper setpoing, depending on current set target |
ZeroInput: DevVoid Output: DevVoid |
Set zero as target |
Pipes:
Properties:
Name | Description |
---|---|
SerialDeviceDevString | The serial device to connect to. Three types are supported: Configuration: 9600 8N2, SOFTWARE FLOW CONTROL ENABLED (XON/XOFF)!, newline 0xA, 1) Simu. Simulated mode for development purposes 2) The name of the serial tango device to connect to. Serial and PySerial devices are supported 3) The name of the serial device to connect to (i.e. /dev/ttyS0). In this case the connection is direct and this server must be run on the machine where the serial port resides |
AutoRampDownDevBoolean | Device should check that auto ramp down is correctly configured in the hardware |
AutoInvertDevBoolean | Allow or not automatic polarity inversion if requested ramping requires inverting it |
CalibrationDevDouble | Calibration factor Tesla/Amp |
MaxCurrentDevDouble | Maximum current in Amps |
MaxRampRateDevDouble | Maximum ramp rate in Amps/sec |
MaxVoltageDevDouble | Maximum voltage in Volts |
UnitsDevString | If defined then the especified value will be set in the hardware on initialization |
Class Description
This is a specific server for managing the 3 SMC of the Alba BL29 XMCD end station. It takes care of all the necessary restrictions and specific features of XMCD. Note that these are specific to this beamline, so this device probably is not reusable by other institutes.
These are the main features to remark to users: * Init (when device is initialized): - Tesla units will be set in all power supplies (if not already in those units) - Target will be set to lower in all the power supplies, but only if they are
not already configured this way. In case it is necessary to set, the lower setpoint will be set to 0 before setting the target to lower.
- Mode will be set to vectorial or single depending on the number of energized power supplies.
- Maximum Field and ramp rate limits will be updated according to the mode.
- Mode (single/vectorial).
- Switching to single mode allowed only if at most 1 power supply is energized.
- When switching mode:
- Max ramp rates for the corresponding mode will be set in the power supplies.
- Ramp rate limits will be updated according to the mode set.
- When writing a single field (Bx, By or Bz) when in single mode, it will be checked that no other power supply is energized.
- B, theta and phi will only be allowed to be written when in vectorial mode.
- When Ramping to a target (B, theta, phi) or when writting any of these:
- Modulus B will be checked in order not to exceed limit.
- It will be checked that all power supplies have tesla as units and lower as target.
Families: Miscellaneous
Key words:
Platform: All Platforms
Language: Python
License: GPL
Contact:
Hardware
Manufacturer: none
Bus: Not Applicable
Class interface
Attributes:
Name | Description |
---|---|
DeviceZScalar: DevString | SMC Z device |
StatusXScalar: DevString | SMC X status |
StatusYScalar: DevString | SMC Y status |
ModeScalar: DevString | Operation mode (Single, Vectorial) |
BxScalar: DevDouble | Bx field |
ByScalar: DevDouble | By field |
BzScalar: DevDouble | Bz field |
BxRampRateScalar: DevDouble | Bx ramp rate |
ByRampRateScalar: DevDouble | By ramp rate |
BzRampRateScalar: DevDouble | Bz ramp rate |
BmodScalar: DevDouble | B |
ThetaScalar: DevDouble | Theta angle (limited to 180 in ISO standard) |
PhiScalar: DevDouble | Phi angle |
DeviceXScalar: DevString | SMC X device |
DeviceYScalar: DevString | SMC Y device |
StatusZScalar: DevString | SMC Z status |
SMCsLockedScalar: DevBoolean | True if all the SMCs are locked by me. False otherwise |
StrictCheckScalar: DevBoolean | Check that the 3 SMCs are up and running |
Commands:
Name | Description |
---|---|
StateInput: DevVoid Output: State Device state |
This command gets the device state (stored in its device_state data member) and returns it to the caller. |
StatusInput: DevVoid Output: ConstDevString Device status |
This command gets the device status (stored in its device_status data member) and returns it to the caller. |
RampInput: DevUShort 0 : ramp to Zero 1 : ramp to Lower 2 : ramp to Upper Output: DevVoid |
Set the requested target in all the SMCs |
ShowTargetInput: DevVarDoubleArray modulus, theta, phi Output: DevVarDoubleArray Bx, By, Bz |
Return the field to apply in each of the SMCs given a target vector |
RampVectorInput: DevVarDoubleArray modulus, theta, phi Output: DevVoid |
Computes the target Bx, By and Bz given a modulus, theta and phi and them ramps all the SMCs to their corresponding field taking care not to exceed any limits |
SetUnitsInput: DevString Amps or Tesla Output: DevVoid |
Set the requested units in all the SMCs |
PauseInput: DevBoolean enable(true)/resume(false) pause Output: DevVoid |
Pause or resume all the SMCs |
StopInput: DevVoid Output: DevVoid |
Stop all the SMCs at their current setpoints |
ZeroInput: DevVoid Output: DevVoid |
Tell all the SMCs to go to 0 |
Pipes:
Properties:
Name | Description |
---|---|
DeviceXDevString | The device name for the X SMC |
DeviceYDevString | The device name for the Y SMC |
DeviceZDevString | The device name for the Z SMC |
Please log in to comment.
Generated
README
b'There are 2 servers defined in this repository:\n\n1) TwickenhamSMC: this is a server for controlling a Twickenham Superconducting\nMagnet Controller. This should be fully reusable.\n\nNOTES\n\na) Note that AutoRampDown specific ramp rate introduced in firmware 5.68 is only\nchecked at init if AutoRampDown property is set to True. If your SMC firmware is\nlower than 5.68, then the device will fail on init if AutoRampDown is True.\n\nb) Note that version 5.68 allows the locking of the upper setpoint. You have to\nmanipulate the hardware to do this (explained in section "Setting of special\nfunctions" in 5.68 manual). If you do so, please note that writting the Upper\nattribute to a value different than the default one will always fail.\n\nc) It looks like the hardware may contain a communications error. Please have a\nlook at "test" directory for more details.\n\nd) To clarify:\n- Which are the ramp rate presets?\n- Why cmd_current_status K returns "R0M2P0X3H0Z0.00E00Q 000.000" (note white\n space) instead of "R0M2P0X3H0Z0.00E00Q-000.000" when direction is inverted?.\n This made fail the regular expression.\n- Why writing upper or lower returns different value (i.e 4.5 is read back as 4.5001)\n\n2) VectorMagnetXMCD: this is a specific server for managing the 3 SMC of the Alba\nBL29 XMCD end. It takes care of all the necessary restrictions and specific\nfeatures of XMCD. Note that these are specific to this beamline, so this device\nprobably is not reusable.\n'
Updated:
A device class has been added.
You can see previous version here .
23 Feb 2017, Piotr Goryl
Updated:
The device class has been updated.
You can see previous version here .
19 Jan 2017, Piotr Goryl
Updated:
The device server has been updated.
You can see previous version here .
19 Jan 2017, Piotr Goryl
Updated:
The device server has been updated.
You can see previous version here .
2 Jan 2017, Piotr Goryl
Updated:
The device server has been updated.
You can see previous version here .
2 Jan 2017, Piotr Goryl
Created:
The device server has been added to catalogue.