ISISComputingGroup / ISISComputingGroup/IBEX

When is a value "Stable" - implementing stability logic for IOCs/blocks/Pvs

Open
#3,149 16 comments 0 reactions 0 assignees View on GitHub
re-requested
Dominant language
No language data
Stars
6
Forks
2
Avg merge
16h 40m
Merged PRs (30d)
2

Description

This is a starter ticket for a discussion on implementing "stability" of values in IBEX, such as "is my temperature stable". The general idea is that depending on PID settings a value may oscillate about its setpoint for a while before settling down. Applying "run control" would stop data collection when out of range, but this is best used for values that might drift slowly out of range, if values are oscillating you would be continually doing a stop/start and collecting something that may not be what you want.

what is stable - typically this would mean "within some specified range for an unbroken timespan of ..." but there may be other appropriate calculations that could be applied to a range of recent values.

stability could be applied to PVs at the IOC level, but applying it to blocks (like we do for run control) may be most flexible. There is nothing to stop us adding it to select IOCs too.

Muons currently use a client side stability criteria when they initially ramp the temperature, but after that they collect regardless. So you may want to calculate stability without actually doing something additional, so a script could "waitfor stable" before doing a begin. Other poeple may want a future "unstable" to pause collection like run control does, or have the IOC do an initial stability calculation followed by normal run control when things settle down (this could be accomplished via a waitfor_stable plus normal run_control). Though using stability for stop/start for a whole run would work, if values are slowly drifting in and out rather than oscillating using a time based stability would discard more data that was likely OK.

can we use run control limits as stability limts, or do we need another set of limits?

stability calculations and other control loogic should be able to be handled by additional generated records loaded by the existing run control IOC.

This ticket is a meeting to discuss stability requirements and implementation details.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.