Skip to content

Noisy motor encoder causing phantom moves for Kohzu-style Monos #21

@mdwyman

Description

@mdwyman

From 8ID:

The kohzu sequence program that lets the beam lines drive in the energy space needs some fixes. I believe it was written with open loop stages in mind. With the new high res encoder monos, the counts are always fluctuating and this makes the kohzu energy also fluctuate showing it always in a Moving state. This prevents efficient scanning and setting energy value as it is always overridden by the changing value.

Was able to replicate the behavior with a simulated motor used as the theta motor with the Kohzu Mono setup:

Image

Review of the kohzu stage program (kohzuCtl.st), it looks like updates to the theta motor readback is copied back to AO PV for the theta motor in the optics module's kohzu mono support. When this PV is updated, the Moving state is entered. In normal/actual moves, the AO PV is updated at the end of the move.

In a deeper sense, the issue at 8ID seems to stem from noisy encoder (at least at the less significant bits) updating the motor's readback when just sitting. One (temporary) solution is to use the Readback link for the readback position have it get its value from a calcout that "smooths" the encoder reading. This has been implemented at 8ID with the calc looking like:

Image

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions