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

WISH (and others): OPI for the automatic needle valve #6777

Closed
5 tasks
KathrynBaker opened this issue Sep 16, 2021 · 10 comments
Closed
5 tasks

WISH (and others): OPI for the automatic needle valve #6777

KathrynBaker opened this issue Sep 16, 2021 · 10 comments
Assignees
Labels
2 for release Required for next release rework training

Comments

@KathrynBaker
Copy link
Member

KathrynBaker commented Sep 16, 2021

As a scientist using the Eurotherm based automatic needle valve I want to be able to set and read appropriate values.

Acceptance Criteria

  • There is an OPI which displayed the read values related to the needle valve (TBC what these are, but expect PID and a temperature readback at least - KB awaiting the information from JN)
  • There is a control on the OPI which allows for the system to be in manual mode or automatic mode
  • In Manual Mode the flow value can be set on the OPI, but the temperature can only be read
  • In Automatic mode the temperature can be set on the OPI, but the flow can only be read
  • The records outlined in Kathryn's comment have been implemented as PVs

Notes

  1. EUROTHERM: MODBUS Control #4240 handles the IOC that is needed for this, this is just the interface
  2. After discussing with Jamie, both FLOW_SP_HILIM and IP_ADDRESS_1 -IP_ADDRESS_4 have been removed from the requirements as we are lacking sufficient information to implement these; they not sure they will be using the linear table moving forward, and the IP addresses need Jamie to assign them addresses before they may be implemented.
@daryakoskeroglu
Copy link
Contributor

Simple OPI is implemented, however, either MODBUS Control IOC needs to be implemented (#4240) or MODBUS Eurotherm driver written by the Diamond Light Source (DLS) needs to be tested if it is suitable to be used in the IBEX system (#6846). Hence, putting this ticket to the Impeded column

@ThomasLohnert
Copy link
Contributor

PVs need to be connected to buttons once the other ticket is completed, followed by testing.

@boeuf-codes
Copy link
Contributor

All rework I've done is pushed and marked as 'resolved', and below is what I couldn't finish:

@esmith1729 esmith1729 self-assigned this Jul 26, 2023
@KathrynBaker KathrynBaker moved this to In Progress in PI_2023_08 Jul 27, 2023
@esmith1729
Copy link
Contributor

esmith1729 commented Aug 2, 2023

This ticket is a rework of some strands left off from awhile ago:

Summary:

  • Ticket6777 EPICS-ioc#781

    • Due to using modbus comms for the needlevalve, a phone "NUL" port was added to the IOC, st-comms-modbus.cmd, to run in RECSIM, as modbus was interfering with records in RECSIM otherwise.
    • Created fields to make no alarm go off on a UDF alarm, if the record is a Setpoint. This is because a setpoint might not be set, and we don't want to necessarily initialise it to a value, but we also don't want it to be invalid. This handles that.
    • A Task has been created to test this IOC on hardware during a shutdown, at some point
  • Ticket6777 EPICS-IOC_Test_Framework#593

    • Many tests were failing after merging master back into this branch, as significant time had passed, and relevant changes were made nearby. These test failures were solved by adding "A01" to the prefix of every PV in the needlevalve_modbus.py test file, as the names of these PVs is created with A01 prefix.
    • The Temperature ramp rate test which was commonly failing, was attributed to this "A01" prefix thing, in the end.
    • Some IOC property names, such as "flow", were changed to "needlevalve_flow", and this change wasn't made in the test module as well. Renaming these variables fixed the issues of not connecting to those PVs.
    • Some abstract classes, in eibisynch test module, were not included. Those have been included now, and the error of not able to initialise should be resolved.
  • Ticket6777 EPICS-DeviceEmulator#163

    • I've merged this already, but basically the only change was having a try/except clause to return "None", as otherwise an error raised would still return the command, when it should return something else, to signify an error, or an inability to write.

Release Notes:

@KathrynBaker KathrynBaker added the for release Required for next release label Aug 7, 2023
@esmith1729
Copy link
Contributor

esmith1729 commented Aug 17, 2023

Pull Requests:

New branch created for some emulator changes that were also required:

Release Notes:

To Test:

IOC Test:

  • Do appropriate pulls and such
  • In local globals.txt, add in: EUROTHRM_01__DEVSIM=1, EUROTHRM_01__EMULATOR_PORT=57677, EUROTHRM_01__NEEDLE_VALVE=yes
  • Then either run the emulator via IOCTestFramework or IBEX Client.
  • Try writing to TEMP:SP or another PV value to make sure Manager Mode is working properly.

OPI Test

  • Do similar steps for the above, to run the IOC in Devsim with Needlevalve = yes. Alternatively there is also a macro that should be loaded into configurations in IBEX client (might need to run make iocstartups in EPICS top if it doesn't show up) for Needlevalve.
  • Check that values make sense, units are in mbar and K

IOCTestFramework Test:

  • Comment out the lines in globals.txt
  • Navigate to IOCTestframework in EPICS Terminal and run all tests for eurotherm_eibisynch, eurotherm_modbus, and eurotherm_modbus_needlevalve to make sure they all still run properly.

@github-project-automation github-project-automation bot moved this from In Progress to Done in PI_2023_08 Aug 21, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in PI_2023_02 Aug 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2 for release Required for next release rework training
Projects
No open projects
Status: Done
Status: Done
Development

No branches or pull requests