Oxford Instruments Mercury Intelligent Temperature Controller
- class pymeasure.instruments.oxfordinstruments.MercuryiTC(adapter, name='Oxford MercuryiTC', **kwargs)
Represents the Oxford Instruments Mercury iTC (Intelligent Temperature Controller) and provides a high-level interface for interacting with the instrument. Note thath the GPIB implementation on this instrument is not fully SCPI-compliant, with only the
*IDN?command supported. The Mercury iTC can be configured to respond to a so-called SCPI instruction set (that is, again, not actually an SCPI implementation) or to a legacy instruction set. The implementation used here is the so-called SCPI instruction set.The iTC is expandable and supports a mixture temperature sensors, heaters, pressure sensors, cryogen level sensors and auxiliary I/O through the installation of additional, function-specific daughter boards. Currently, only temperature sensors and heaters are implemented.
By default, there is a temperature sensor channel installed with Unique Identifier (
UID)'MB1.T1'and a heater channel with UID'MB0.H1'. These channels are created automatically at instantiation of the controller. These can be accessed as either.TS_MBand.HTR_MB, or through the collections (dictionaries).TS['MB1.T1']and.HTR['MB0.H1'].Other sensors and heaters can be installed on additional daughter boards (with specific
UIDe.g.'DBX.T1','DBX.H1'etc), and can be added manually to an already instantiated MercuryiTC using.add_temperature_sensor(UID)and.add_heater(UID). They must be given their correct UID as listed by the Mercury iTC itself as this is how they are addressed during communication. Additionally, they are accessed only through the instrument collections.TS[UID]and.HTR[UID].controller = MercuryiTC("GPIB::1") # Print the current measured temperature of the motherboard temperature sensor aka 'MB1.T1' print(controller.TS_MB.temperature) # Print the motherboard temperature sensor control-loop setpoint print(controller.TS['MB1.T1'].loop_T_setpoint) # Add new temperature sensor with UID 'DB6.T1' controller.add_temperature_sensor('DB6.T1') # Print the new sensor's temperature print(controller.TS['DBS.T1'].temperature)
- TS_MB
- Channel:
- add_heater(id, prefix='HTR', **kwargs)
Add a heater with unique identifier
idto collection of addressable heaters:.HTR[id]
- add_temperature_sensor(id, prefix='TS', **kwargs)
Add a temperature sensor with unique identifier
idto collection of addressable temperature sensors:.TS[id]
- property identity: Any
Get identity of unit.
- class pymeasure.instruments.oxfordinstruments.mercuryitc.TemperatureSensor(parent, id, **kwargs)
Bases:
ChannelA temperature sensor channel on the Oxford Instruments Mercury iTC.
Depending on sensor type (e.g. diode, NTC/PTC resistor), some properties will not be valid. Therefore, sensor configuration must be known and set a priori. Only diode sensor types are currently implemented.
Control loops are accessed via temeperature sensors, rather than heaters. Therefore loop control is kept with other temperature sensor properties.
- check_set_errors()
The MercuryiTC responds to every communication (get and set). This simply reads back on setting a property.
- property control_loop_D: Any
Control the derivative term, D, of the control loop.
- property control_loop_I: Any
Control the integral term, I, of the control loop.
- property control_loop_P: Any
Control the proportional term, P, of the control loop.
- property control_loop_PID_enabled: Any
Control whether the control-loop heater is controlled by the PID loop (
True) or the manual heater percentage (False).
- property control_loop_heater_percent: Any
Control the heater percentage when output configured to manual mode (in the range 0 to 100).
- property control_loop_ramp_enabled: Any
Control whether the temperature ramping function is enabled (
True) or disabled (False).
- property control_loop_ramp_rate: Any
Control the control loop ramp rate, in K/min, if enabled (in the range 0 to 100000).
- property control_loop_temperature_setpoint: Any
Control the control loop temperature setpoint, in Kelvin (in the range 0 to 2000).
- property temperature: Any
Get the measured temperature, in Kelvin.
- property voltage: Any
Get the sensor voltage, in Volts.
- class pymeasure.instruments.oxfordinstruments.mercuryitc.Heater(parent, id, **kwargs)
Bases:
ChannelA heater channel on the Oxford Instruments Mercury iTC.
Various parameters of the heater output can be accessed, and some properties can be configured. PID control is accessed through an associated temperature sensor. It is assumed that the heater is already associated with a temperature sensor control loop, or otherwise set to operate in open-loop configuration.
- check_set_errors()
The MercuryiTC responds to every communication (get and set). This simply reads back on setting a property.
- property current: Any
Get the heater excitation current, in Amps.
- property max_power: Any
Get the provisional maximum power of the heater, in Watts.
- property power: Any
Get the heater power dissipation, in Watts.
- property resistance: Any
Control the programmed heater resistance, in Ohms (float strictly in the range of 10 to 2000).
- property voltage: Any
Get the heater excitation voltage, in Volts.
- property voltage_limit: Any
Control the voltage limit of the heater output, in Volts (float strictly from 0 to 40).