|
@@ -37,6 +37,7 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
BoatRAxisMove,
|
|
BoatRAxisMove,
|
|
|
SetBoatZAxisMoveStop,
|
|
SetBoatZAxisMoveStop,
|
|
|
SetBoatRAxisMoveStop,
|
|
SetBoatRAxisMoveStop,
|
|
|
|
|
+ CheckSensor,
|
|
|
SetBoatInterval,
|
|
SetBoatInterval,
|
|
|
CheckPrepareMove,
|
|
CheckPrepareMove,
|
|
|
Load,
|
|
Load,
|
|
@@ -176,6 +177,8 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
case "boatrotatestop"://r home
|
|
case "boatrotatestop"://r home
|
|
|
SetBoatRAxisMoveStop((int)RoutineStep.SetBoatRAxisMoveStop);
|
|
SetBoatRAxisMoveStop((int)RoutineStep.SetBoatRAxisMoveStop);
|
|
|
|
|
|
|
|
|
|
+ CheckBoatMoveSensor((int)RoutineStep.CheckSensor, _rAxisTimeout);
|
|
|
|
|
+
|
|
|
Delay((int)RoutineStep.Delay1, 2);
|
|
Delay((int)RoutineStep.Delay1, 2);
|
|
|
|
|
|
|
|
SetBoatRAxisHome((int)RoutineStep.BoatRAxisHome, _rAxisTimeout);
|
|
SetBoatRAxisHome((int)RoutineStep.BoatRAxisHome, _rAxisTimeout);
|
|
@@ -251,7 +254,44 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
throw (new RoutineBreakException());
|
|
throw (new RoutineBreakException());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ private void CheckBoatMoveSensor(int id, int timeout)
|
|
|
|
|
+ {
|
|
|
|
|
+ var reason = "";
|
|
|
|
|
+ Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
|
|
|
|
|
+ {
|
|
|
|
|
+ Notify($"Check boat move Sensor");
|
|
|
|
|
+
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }, () =>
|
|
|
|
|
+ {
|
|
|
|
|
+ if (!_boatModule.RAxisDevice.IsMoving)
|
|
|
|
|
+ {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return false; ;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }, timeout * 1000);
|
|
|
|
|
|
|
|
|
|
+ if (ret.Item1)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (ret.Item2 == Result.FAIL)
|
|
|
|
|
+ {
|
|
|
|
|
+ _boatModule.RAxisDevice.ServoStop();
|
|
|
|
|
+ throw (new RoutineFaildException());
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (ret.Item2 == Result.TIMEOUT) //timeout
|
|
|
|
|
+ {
|
|
|
|
|
+ _boatModule.BoatRAxisMoveTimeOut.Set($"CheckBoatMoveSensor can not complete in {timeout} seconds");
|
|
|
|
|
+ _boatModule.RAxisDevice.ServoStop();
|
|
|
|
|
+
|
|
|
|
|
+ throw (new RoutineFaildException());
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ throw (new RoutineBreakException());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
private void CheckPrepareMove(int id, int timeout)
|
|
private void CheckPrepareMove(int id, int timeout)
|
|
|
{
|
|
{
|