APS-4ID-POLAR / APS-4ID-POLAR/ipython-polar

dynamic limit for coordinated theta:2theta motion

Open
#20 19 comments 0 reactions 1 assignee Claimed by @prjemian View on GitHub
enhancement
Dominant language
Python
Stars
1
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Need to create a dynamic limit to protect against collision of theta & 2theta axes during coordinated motion. Discussed today with @timmmooney & @keenanlang. Joint decision was to use one of the userCalcs to prototype this calculation. Once satisfied, a custom database (including calculation, motion stop, ...) will be created in the IOC so that users do not accidentally break this new protection.

The coordinated motion of these two axes is sufficiently slow that a motion STOP could be implemented in a calculation record in the IOC.

## Prototype
The prototype would first check the validity of watching RBV from both axes and making sure they are no closer than a user-defined constant. If the axes are too close (say within 5 degrees) , the Bluesky RunEngine will be suspended. These steps are needed for the prototype:

* [x] use existing userCalc (from IOC) to make a prototype
* [x] interface this with Bluesky `ophyd.EpicsSignal`
* [x] create ophyd suspender to pause RunEngine (decide what action to take for suspension)

## Full implementation

Once satisfied with the prototype:

* [ ] create custom EPICS database (in IOC) and move from the userCalc, include STOP of all motor axes
* [ ] modify Bluesky for the change in PV name(s)
* [ ] interface this new EPICS support with SPEC (@jkirchman)

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.