You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I observed via telnet that the controller sends the response to the nth command ago, rather than my most recent command.
Theory: the controller falls behind, and if we are out of sync by an even number of steps, then the axes are shifted.
We poll for two values (position and is_done), then receive the value from a previous query.
IOC basically stops working if you are out of sync by an odd number of steps since positions all be come 1 or 0 counts (is done, is not done)
This is sadly a very common issue with motor record drivers and other devices that have a too simple communication protocol. A hacky way to fix this is to find a way to get the device to respond with a unique string, so you can correlate request/response. Looks like there's no reasonable way to avoid this according to the command set for the 8742.
You can probably mitigate this by polling very slowly... I agree that the device protocol for the 8742 where it responds with just a number (4 instead of something like POS1=4) makes it rough to know when a problem has occurred.
You could potentially do a periodic check of *IDN? and do... something? when that doesn't respond with the correct string? (not sure what)
Bug Report
This is perplexing because:
Expected Behavior
The axis setpoint/readback mapping should be consistent
Context
Makes TMO reference laser alignment confusing
Reported by @aegger13
Steps To Reproduce
Your Environment
Standard LCLS EPICS environment
IOC config file is:
Modules used are:
The text was updated successfully, but these errors were encountered: