Temperature: Difference between revisions

From SweepMe! Wiki
Jump to navigation Jump to search
(→‎Driver programming: Mandatory GUI parameters)
mNo edit summary
 
Line 62: Line 62:
=== reach functionality ===
=== reach functionality ===


To support the reach functionality, the driver either needs a [[reach]] function or a function called "measure_temperature" that returns the temperature value.
To support the reach functionality, the driver either needs a [[reach()]] function or a function called "measure_temperature" that returns the temperature value.


=== test buttons ===
=== test buttons ===

Latest revision as of 13:56, 2 May 2024

This module can be used to connect to temperature controllers in order to make temperature variations.

User interface

Temperature unit

If the driver supports it, different temperature units can be selected.

Sensor

Select the sensor or sensor input that should be used.

Rate in temperature unit per s

You can set ramp rate or the temperature change rate depending on the implementation of the driver. This option should be optional. Keep it free to not change the currently set value of the instrument.

Heater range

Some temperature controllers have different heater ranges like Low, Medium, or High that adjusts the power of the controller. The feature was introduced for Lake Shore 33x temperature controllers.

Output, max. in %

You can set a maximal output in % if the driver supports it. This option should be optional. Keep it free to not change the currently set value of the instrument.

Test

The module has a test section to set and read temperature values. These buttons automatically change with the selected temperature unit. They can be used to quickly check the connection to the instrument or set a new temperature. Furthermore, the "Zero power" button can be used to switch off the power of the temperature controller.

Reach

The reach-functionality is important if you like to perform temperature variations. For example, before you can take a current-voltage characteristic, you need to wait for the temperature controller to reach a temperature. You could do this in the sequencer by adding a branch that checks whether temperature is reached. More convenient is to use the reach-functionality of the Temperature module itself. Just check the box "Reach Temperature" and choose an accuracy range and a corresponding hold time. The module will then retrieve temperatures value from the instrument until the temperature has stayed in the accurary range for the given hold time. If the temperature leaves the accuracy range, the hold timer is zeroed and starts again, once the accuracy range is entered again.

During the reach process, there is no update of the plot widget as the reach process is not part of the measurement. It is a process that stops the run for the time of reaching the temperature. However, you can see in the status bar of the SweepMe! main window a message like "Approach to ... K" or "Waiting for .. s at ... K".

The reach functionality is only available if the Sweep mode starts with "Temperauture".

In case you like to make a measurement while the Temperature module makes a ramp, the reach functionality should not be used. Instead a single setpoint should be used and during the ramp the modules Loop and Delay in the sequencer should take care to regularly read values from other instruments. To stop the looping, one can use the add-on module Condition to for example to stop the process when the setpoint has been reached or to continue with the next setpoint temperature ramp.

measure temperature

Some temperature controller have a rather slow communication and in this case some drivers allow the user to choose whether the temperature is read back at each measurement point.

zero power afterwards

This function switches off the power of the temperature controller after the run. If not checked, the temperature controller will stay at the last set temperature which sometimes might be beneficial if you like to continue a next measurement at this temperature without waiting to reach this temperature again.

Driver programming

Mandatory GUI parameters

The driver must provide at least the following GUI parameters:

Required GUI parameters
TemperatureUnit A list of strings of the temperature units supported by the driver.
SweepMode List of supported Modes. Required, if the instrument supports setting a temperature (not used as a logger). "None" means that no value is applied, "Temperature" means the sweep value is used as the set temperature and the internal reach logic of the temperature module can be used.

return variables

The first variable should always be Temperature in order to allow the module to roll out further functionalities.

reach functionality

To support the reach functionality, the driver either needs a reach() function or a function called "measure_temperature" that returns the temperature value.

test buttons

The test buttons like "Set T in ...", "Get T in ...", or "Zero power" do not need any special function. They automatically work by calling the semantic standard functions of the driver.