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

Adjust custom EPICS PV logic for kill motors to perform logic in ophyd using default PVs #84

Open
maffettone opened this issue Dec 8, 2023 · 3 comments
Assignees

Comments

@maffettone
Copy link
Contributor

The solution provided in #83 depended on a Kill-STS PV that was custom built by John.

So for this kill motor, I made a new PV which is really a subset of another PV. The logic in EPICS is

record(calc, "$(SYS)$(DEV)Kill-Sts") {
  field(INPA, "$(SYS)$(DEV)Sts:1-Sts CPP")
  field(CALC, "(A>>11&1)=0")
}

which means its taking the PV that exists everywhere for turbo pmac, $(SYS)$(DEV)Sts:1-Sts , generically, and its doing the operation on its value:
value>>11&1 and asking if that is equal to 0? If yes, then Kill-Sts is set to 1, if it not equal 0, Kill-Sts is set to 0.

We can embed this logic into the ophyd read back instead, so that it generically maps to all motors without need for custom EPICS database entries.

Will take some modification of class PMACKiller(EpicsSignal):

@ambarb
Copy link
Contributor

ambarb commented Dec 8, 2023

Sounds like a good idea. Should we do this as a standard ophyd class from the start so it can get tested around the ring?

@ambarb
Copy link
Contributor

ambarb commented Mar 12, 2024

we did the most immediate fix here. @maffettone do you want me to close this or leave it open until the feature above is merged and then we import from there?

@maffettone
Copy link
Contributor Author

Let's leave it open. It motivates work in the nslsii package, and can be closed out when that get's sorted?
NSLS-II/nslsii#174

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

No branches or pull requests

2 participants