Hi,
Back to your problem:
There may be a timing problem of some kind,
between the poller towards the Galil and the soft “motor poller”.
It’s event driven, a CA monitor on the links defined by DINP, RDBL and RINP.
starts calculating and updates the soft motor RBV accordingly, but the soft motor stops before reaching the actual calculated position due to the fact that the DINP field receives 1
if both motors are done moving (DMOV = 1). For example it is supposed to reach 5 mm but it reaches to 4.97 for example.
I think the soft motor position will still update even though DINP=1. For example, if the encoder on an underlying real motor changes by itself (without a commanded move happening, with DMOV staying at 1) the soft
motor position will still change.
·
I remembered that we are configuring our Galil controllers on a 8 ms update rate. I set the update rate to slower values and the issue can be resolved.
8ms update rate is fast. That’s polling the Galil controller at 125Hz. It may work, and I’ve tested close to 100Hz myself, but is it necessary for the application?
It also means both real motor records are being processed by the Galil driver at 125Hz, which means the transform and the soft motor record is being updated 2x that rate (250Hz).
Are you using UDP via the Galil driver? Perhaps the controller isn’t responding to every network request made by the Galil driver poller. Although, I’m not sure if that’s an issue here.
Cheers,
Matt