motor: I added a 50ms sleep when doing a set position in the XPS driver, just before the GroupReferencingStop() command. Some types of XPS axes seem to need this sent a little later than others (eg. a spindle type axis can be left in state 64 if this command is sent too quickly after a GroupReferencingActionExecute().

This commit is contained in:
mp49
2011-05-20 17:12:41 +00:00
parent a498fd318e
commit 891a88c622
+6
View File
@@ -665,6 +665,9 @@ static int motorAxisSetDouble(AXIS_HDL pAxis, motorAxisParam_t function, double
"None",
value*(pAxis->stepSize));
/*Stop referencing, then we are homed on all axes in group.*/
/*Some types of XPS axes (eg. spindle) need a sleep here, otherwise
the axis can be left in referencing mode.*/
epicsThreadSleep(0.05);
status = GroupReferencingStop(pAxis->pollSocket,
pAxis->groupName);
if (status != 0) {
@@ -696,6 +699,9 @@ static int motorAxisSetDouble(AXIS_HDL pAxis, motorAxisParam_t function, double
"SetPosition",
"None",
value*(pAxis->stepSize));
/*Some types of XPS axes (eg. spindle) need a sleep here, otherwise
the axis can be left in referencing mode.*/
epicsThreadSleep(0.05);
status = GroupReferencingStop(pAxis->pollSocket,
pAxis->groupName);
if (status != 0) {