EPICS - Linkam CI94 Temperature Controller¶
The Linkam CI94 is a temperature controller. It can be connected only to the temperature stage or also to the nitrogen pump (Linkam LNP94/2), which increases the controller precision. This class supports operating either with or without the nitrogen pump and supports configuring the pump to automatic mode.
Using EPICS MarCCD camera module¶
Usage of Python class for EPICS Linkam CI94.
-
class
py4syn.epics.LinkamCI94Class.
LinkamCI94
(pvName, mnemonic)[source]¶ Class to control Linkam CI94 temperature controllers via EPICS.
Examples
>>> from py4syn.epics.LinkamCI94Class import LinkamCI94 >>> >>> def showTemperature(pv='', name=''): ... ci94 = LinkamCI94(pv, name) ... print('Temperature is: %d' % ci94.getValue()) ... >>> def fastRaiseTemperature(ci94, amount, rate=30): ... ci94.setRate(rate) ... ci94.setValue(ci94.getValue() + amount) ... >>> def complexRamp(ci94): ... ci94.setPumpSpeed(-1) ... ci94.setRate(10) ... ci94.setValue(200) ... ci94.wait() ... ci94.setRate(2) ... ci94.setValue(220) ... ci94.wait() ... sleep(500) ... ci94.setRate(5) ... ci94.setValue(100) ... ci94.wait() ... ci94.stop() ... >>> import py4syn >>> from py4syn.epics.ScalerClass import Scaler >>> from py4syn.utils.counter import createCounter >>> from py4syn.utils.scan import scan >>> >>> def temperatureScan(start, end, rate, pv='', counter='', channel=2): ... ci94 = LinkamCI94(pv, 'ci94') ... py4syn.mtrDB['ci94'] = ci94 ... c = Scaler(counter, channel, 'simcountable') ... createCounter('counter', c, channel) ... ci94.setRate(rate) ... scan('ci94', start, end, 10, 1) ... ci94.stop() ...
Constructor See
py4syn.epics.StandardDevice
Parameters: - pvName : string
Power supply base naming of the PV (Process Variable)
- mnemonic : string
Temperature controller mnemonic
-
getRealPosition
()[source]¶ Returns the same as
getValue()
.See:
getValue()
Returns: - `float`
-
isRunning
()[source]¶ Returns true if the controller is in program mode. Whenever it is program mode, it is following a target temperature.
Returns: - `bool`
-
onPendingChange
(value, **kwargs)[source]¶ Helper callback that tracks when the IOC finished changing to a requested temperature.
-
onTemperatureChange
(**kwargs)[source]¶ Helper callback that indicates when the measured temperature changed.
-
setPumpSpeed
(speed)[source]¶ Changes the nitrogen pump speed, or enables automatic pump speed control.
Note
The Linkam front panel only has 5 LEDs to indicate speed, but internally it supports 30 different speed levels.
Parameters: - speed : int
The requested pump speed, ranging from 0 (pump off) to 30 (pump top speed), or -1 to enable automatic pump control.
-
setRate
(r)[source]¶ Sets the ramp speed in degrees per minutes for use with
setValue()
.See:
setValue()
Parameters: - r : float
Ramp speed in °C/min
-
setValue
(v)[source]¶ Changes the temperature to a new value. The speed that the new temperature is reached is set with
setRate()
. The default rate is 5 °C/minute.See:
setRate()
Parameters: - v : float
The target temperature in °C
-
setVelocity
(velo)[source]¶ Same as
setRate()
.See:
setRate()
Parameters: - r : float
Ramp speed in °C/min