Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MuSR: Lakeshore 340 - Implement Excitation Feature #5950

Closed
kjwoodsISIS opened this issue Dec 8, 2020 · 7 comments
Closed

MuSR: Lakeshore 340 - Implement Excitation Feature #5950

kjwoodsISIS opened this issue Dec 8, 2020 · 7 comments
Assignees

Comments

@kjwoodsISIS
Copy link
Contributor

kjwoodsISIS commented Dec 8, 2020

As a muon scientist using MuSR, I need to use the Excitation feature of the Lakeshore 340, so that I can adjust the sensitivity range of my thermometer.

Acceptance Criteria

  1. Investigate the excitation feature of the Lakeshore 340
  2. Implement missing excitations functionality from Lakeshore VI for IBEX

Notes

  1. Note from instrument scientist: [Excitation field controls the] "thermometer sensitivity range, can’t normally fix on one value for the whole measured temperature range and get good measurements."
  2. For reference, look at the MuSR Lakeshore 340 VI (C:\LabVIEW Modules\Instruments\MUSR\Lakeshore 340).
  3. Lakeshore 340 manual is here: \\isis\shares\Manuals\Lakeshore__temperature_controller\Model_340
@kjwoodsISIS kjwoodsISIS mentioned this issue Dec 10, 2020
12 tasks
@ThomasLohnert ThomasLohnert changed the title MuSR: Lakeshore 340 - Investigate Excitation Feature MuSR: Lakeshore 340 - Implement Excitation Feature Jan 7, 2021
@Tom-Willemsen
Copy link
Contributor

The infrastructure for this (emulator, ioc tests etc) is already in place - I think this is just adding an additional command to DB, protocol, emulator & tests

@JamesKingWork
Copy link
Contributor

Investigation of the excitation feature:

The manual describes two related commands:

  • INTYPE? <input> which gets a number of values including the excitation for the which can be A, B or AB according to the VI
  • INTYPE <input>, [<type>], [<units>], [<coefficient>], [<excitation>], [<range>] which we can use to set the excitation for the given input (we can send blanks for the type, units coefficient etc. and just send the excitation value)

The MuSR Lakeshore 340 VI shows two major sets of functionality (helped out by @davidkeymer, please let me know if you thought anything was different here):

  • A drop down on a tab of the front panel which enables the setting of the excitation for channel A (and a display of the current value)
  • Threshold control
    • Users set thresholds in an initialisation function (writes an initialisation file)
    • Initialisation records pairs of a given threshold and an excitation to set when a temperature set goes above that threshold
    • VI then monitors temperature sets for the thresholds and sets the excitation accordingly

@JamesKingWork
Copy link
Contributor

Proposed solution:

  • Drop down and readback on the OPI to control excitation channel A
  • Threshold control
    • Users define threshold control through a file (threshold and excitation pairs separated by commas, one on each line)
    • Users can select the file in a text box like with calibration files in the Eurotherm (A none.txt is available for no threshold definitions)
    • IOC monitors the thresholds and sets excitations accordingly

Need to check on the VI:

  • Exactly what setting the excitation accordingly means, for example, does it mean that the lowest matching threshold is the excitation set
  • Whether the threshold control applies excitations to channels other than A (there seemed to also be B or AB, but it is not clear how the user would select them or if it is just for constant A)

@JamesKingWork
Copy link
Contributor

JamesKingWork commented Jan 28, 2021

This flowchart describes the VI behaviour:
LSK340ExcitationsVI

You can see a description of the IOC behaviour here

@JamesKingWork
Copy link
Contributor

JamesKingWork commented Jan 29, 2021

To test:

  • See PRs and docs
  • Run make runtests in lakeshore340 support module
  • Run lakeshore340 IocTestFramework tests
  • Run an IOC with Test1.txt (putting -a flag on IocTestFramework does the trick) (and try with None.txt or DoesNotExist.txt)
    • Test setting excitation values from the drop-down
    • Test setting temperature setpoints and see the effect on the excitation value (best viewed from the OPI I think)

@DominicOram
Copy link
Contributor

Not sure if Tom has said as part of the review but can you add a PR for release notes please?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants