.

Average: 0
Rating Count: 0

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

System Message: ERROR/3 (<string>, line 10)

Unexpected indentation.
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.

System Message: WARNING/2 (<string>, line 13)

Block quote ends without a blank line; unexpected unindent.
  • 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).

System Message: WARNING/2 (<string>, line 18)

Bullet list ends without a blank line; unexpected unindent.
  • Switching to single mode allowed only if at most 1 power supply is energized.
  • When switching mode:

System Message: WARNING/2 (<string>, line 21)

Bullet list ends without a blank line; unexpected unindent.
  • 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:

System Message: WARNING/2 (<string>, line 30)

Bullet list ends without a blank line; unexpected unindent.
  • 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

PDF generated from POGO



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'

23 Feb 2017, Piotr Goryl
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.
Added by:pgoryl2 on:2 Jan 2017, 2:49 p.m.