The itc503 module

Basic drivers for an Oxford Instruments model ITC503 temperature controller

Note that this module does not represent an Instrument subclass, since the ITC503 is never used by itself—it is always part of a larger system driving both a magnet power supply and temperature controllers, and the temperature controller cannot usually be used in isolation.

Classes

ITC503

class src.instruments.noauto.itc503.ITC503(name='Temperatures', protocol='ISOBUS', isobusAddress=0, visaAddress='GPIB0::23', serialConfig=None)[source]

An Oxford Instruments ITC

This is a basic driver for an Oxford Instruments ITC503 (Intelligent Temperature Controller). It should typically be included in an Instrument class representing a cryostat-magnet system.

Parameters :

name : str

A name to identify the instrument.

protocol : {‘ISOBUS’, ‘GPIB’, ‘Serial’, ‘Gateway Master’, ‘Gateway Slave’}

The protocol for communication between the computer and the temperature controller.

isobusAddress : str

An integer string representing the ISOBUS address, if relevant. An integer will be accepted and converted.

visaAddress : str

A full VISA resource address (including the bus) to locate the instrument (e.g. “GPIB0::27”).

serialConfig : dict

A dictionary to indicate how to configure a serial port, which is used with both the ‘ISOBUS’ and ‘Serial’ protocols.

Methods

getAutoPID()[source]

Return whether auto-PID is enabled.

Returns :

bool :

Whether the ITC is configured for auto-PID.

getAutoStatus()[source]

Return whether the heater and needle valve are in automatic mode.

Returns :

bool :

Whether the heater is in automatic mode.

bool :

Whether the needle valve (gas controller) is in automatic mode.

getHeaterSensor()[source]

Return which sensor is currently active.

Returns :

str :

An integer string, ‘1’, ‘2’, or ‘3’, indicating which sensor is currently being used to control the temperature(s).

getPID()[source]

Get the PID values for the temperature controller.

Return the values for the proportional band, the integral action time, and the derivative action time which the temperature controller is currently using.

Returns :

tuple of float :

A tuple of floats containing, in order, P, I, and D.

getSetpoint()[source]

Read the setpoint temperature.

Returns :

float :

The setpoint temperature in Kelvin.

getTemperature(sensor)[source]

Get the temperature measured by the specified sensor.

Parameters :

sensor : {‘1’, ‘2’, ‘3’}

An integer string representing the temperature sensor from which to read.

Returns :

float :

The temperature measured by the specified sensor in Kelvin.

getTemperatures()[source]

Get the readings from all three temperature sensors.

Returns :

tuple of float :

The temperatures measured by sensors 1, 2, and 3, expressed as floats in a tuple with the obvious order.

initialize()[source]

Prepare the temperature controller for use.

Prepare the temperature controller for use by
  1. opening the appropriate communication channel;
  2. setting the control mode to ‘remote and unlocked’;
  3. setting the auto/manual status to full auto;
  4. get the currently set PID values;
  5. get the current temperature readings from all sensors; and
  6. read the status.
setAutoStatus(heater=True, needleValve=True)[source]

Set the auto/manual status of the heater and gas controller.

Parameters :

heater : bool

Whether the temperature controller’s heater should be placed in automatic mode. If False, the heater will be placed in manual mode.

needleValve : bool

Whether the temperature controller’s needle valve (gas flow controller) should be placed in automatic mode. If False, the needle valve will be placed in manual mode.

setControlMode(controlMode='3')[source]

Set the control mode for the temperature controller.

Parameters :

controlMode : str, optional

An integer string representing the desired control mode. Allowed values are the following.

  • ‘0’: Local and locked (power-up state).
  • ‘1’: Remote and locked.
  • ‘2’: Local and unlocked.
  • ‘3’: Remote and unlocked (default).
setD(newD)[source]

Set the PID values for the temperature controller.

Parameters :

newD : float

The derivative action time in minutes. The allowed range is 0 to 273 minutes.

setHeaterOutput(output)[source]

Set the output for the selected heater.

Parameters :

output : float

The desired heater output as a percent of the maximum range.

setHeaterSensor(sensor='1')[source]

Set the active temperature sensor.

Parameters :

sensor : str

An integer string representing the sensor to activate. Allowed values are ‘1’, ‘2’, and ‘3’, the meanings of which should be obvious.

setI(newI)[source]

Set the PID values for the temperature controller.

Parameters :

newI : float

The integral action time in minutes. Values between 0 and 140 minutes (inclusive), in steps of 0.1 minutes, are accepted.

setMaximumHeaterVoltage(voltage)[source]

Set the maximum voltage for the currently controlled heater.

Parameters :

voltage : float

The largest voltage allowed to be supplied to the heater.

setP(newP)[source]

Set the PID values for the temperature controller.

Parameters :

newP : float

The proportional band in Kelvin, to a resolution of 0.001 K.

setPID(newP=None, newI=None, newD=None)[source]

Set the PID values for the temperature controller.

Parameters :

newP : float, optional

The proportional band in Kelvin, to a resolution of 0.001 K.

newI : float, optional

The integral action time in minutes. Values between 0 and 140 minutes (inclusive), in steps of 0.1 minutes, are accepted.

newD : float, optional

The derivative action time in minutes. The allowed range is 0 to 273 minutes.

setTemperature(temperature)[source]

Set the target temperature for the controller.

Set the target temperature for the currently-selected sensor to temperature, and begin moving toward the setpoint.

Note

If a sweep is in progress, the sweep will override the value set by this command.

Parameters :

temperature : float

The temperature setpoint for the currently-enabled sensor.

toggleAutoPid(autoPID='0')[source]

Set the auto-PID status of the temperature controller.

If a PID table has been programmed into the instrument, you can enable auto-PID, so that the PID values will be automatically chosen based on the temperature range.

Warning

If a PID table has not been programmed, attempting to enable auto-PID will return an error.

Parameters :

autoPID : str

An integer string representing the desired auto-PID status. The allowed values are below.

  • 0: Disable auto-PID
  • 1: Enable auto-PID

This method also accepts a boolean value for autoPID, and this value would be interpreted in the obvious way.

Table Of Contents

Previous topic

The oxford_common module

Next topic

The ps120 module

This Page