This is historical information of device classes implemented in TwickenhamSMC device server.
Use this link to find the valid information.
Development status:
New development
Information status: Updated
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 |
---|---|
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 |
DeviceZScalar: DevString | SMC Z device |
StatusXScalar: DevString | SMC X status |
StatusYScalar: DevString | SMC Y status |
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 |
---|---|
StopInput: DevVoid Output: DevVoid |
Stop all the SMCs at their current setpoints |
ZeroInput: DevVoid Output: DevVoid |
Tell all the SMCs to go to 0 |
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 |
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 |
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 are looking at this version now.
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.