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

Technix PSU: Automate PSU Conditioning #8592

Open
11 tasks
KathrynBaker opened this issue Dec 6, 2024 · 0 comments
Open
11 tasks

Technix PSU: Automate PSU Conditioning #8592

KathrynBaker opened this issue Dec 6, 2024 · 0 comments

Comments

@KathrynBaker
Copy link
Member

As someone setting voltages on the Technix PSU in certain situations I want to be able to automate the conditioning so that it can be trusted to do this itself rather than have to do the job manually

Explanation

These PSUs will be used on SuperMUSR, but are also needed for some testing long before the instrument will be in place.
It is possible for the voltage when set to keep the current high, and the voltage then drops lower, which is not the desired behaviour.
Using a ramp, with some conditioning variables should help reduce this. If the PSU ramps, then this is simpler than if it doesn't, this needs to be verified.
There is already an IOC for the PSU, this is a refinement to operation.
At the moment there is some understanding of what the solution may be, but before implementing this work it will need to be confirmed and refined. This issue only details the undersanding from an initial conversation.
This lack of certainty is one of the reasons that this ticket will be undertaken in python, usually this kind of logic is best kept as close to the control of a device as possible

Additional Information

  • The testing is planned to be undertaken from around April 2025
  • Moving this logic into an IOC will be the long term goal so that anyone controlling it can turn the conditioning state on or off, and when on, there is no need to do anything other than set the desired voltage. This adaptation to the IOC should be available for early 2026.
  • Simplist version of the logic would be along the lines of:
         Receive V_End_Target
         Set V_Target to V_End_Target
         Set V to V_Target
         If I stays above Conditioning_Value for Length_Of_Time:
                  Start the loop over with V_Interim, which is V_Target * V_Proportion
         If I is below Conditioning_Value after Length_Of_Time:
                  Carry on, which may be a ramp step, or V_End_Target as appropriate
  • Feedback messages from the Python script, such as "I stayed high for the length of time, lowering V Target", are needed
  • It may be possible to use some of the scans and run engine functions to achieve this, but in the end it will still need to move to the IOC level, so consider the levels of complexity of that when writing the Pythong script

Acceptance Criteria

  • When picking up this ticket arrange a meeting with R Hale (Power group) and P Baker (Inst scientist) to make sure that the proposed logic is correct, and to agree the testing setup. Add comments to this ticket with the verified or changed logic and the testing setup
  • Before the meeting, ask for manuals for the device itself, we already have the comms manual, and verify whether the PSU ramps to a voltage or not, if it doesn't then the logic will need to adapt to include one potentially, add a comment to the ticket with this information
  • A python function is created, with tests, that fulfills the logic agreed on in the meeting, and that is demonstrated to R Hale
  • A VM is made available on a remote server, which can be connected to the PSU in R106/R6 as appropriate for the testing, using DCLAB would be the most likely option - the individual steps would be:
    • If not using DCLAB: Getting a VM capable of running IBEX set up on a server somewhere
    • If not using DCLAB: Ensure that IBEX is installed on the VM from the most recent release
    • Getting a moxa nport installed where the testing will take place
    • Connecting that moxa to the VM/DCLAB
    • Creating a config using a suitable number of Technix IOCs as agreed when discussing the testing setup
    • The python function is available on the VM/DCLAB
  • A follow on ticket is created to transfer the agreed logic into an IOC, the first acceptance criteria of that ticket needs to be a check in with R Hale and P Baker to ensure that the most recent logic is in use

How to Review

Before making a PR...

  • Provide verbose instructions for the reviewer to test your changes
  • Describe how you have implemented testing for this feature
  • Provide screenshots of the feature to help the reviewer if relevant

If not applicable, write "Not applicable"

...

To the reviewer: Make sure to update submodules!

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

No branches or pull requests

1 participant