|
|
@@ -32,6 +32,7 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
BoatRAxisMove,
|
|
|
SetBoatZAxisMoveStop,
|
|
|
SetBoatRAxisMoveStop,
|
|
|
+ CheckSensor,
|
|
|
SetBoatInterval,
|
|
|
CheckPrepareMove,
|
|
|
Loop,
|
|
|
@@ -164,6 +165,8 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
case "boatrotatestop"://r home
|
|
|
SetBoatRAxisMoveStop((int)RoutineStep.SetBoatRAxisMoveStop);
|
|
|
|
|
|
+ CheckBoatMoveSensor((int)RoutineStep.CheckSensor, _timeout);
|
|
|
+
|
|
|
Delay((int)RoutineStep.Delay1, 2);
|
|
|
|
|
|
SetBoatRAxisHome((int)RoutineStep.BoatRAxisHome, _timeout);
|
|
|
@@ -334,7 +337,42 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
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)
|
|
|
+ {
|
|
|
+ throw (new RoutineFaildException());
|
|
|
+ }
|
|
|
+ else if (ret.Item2 == Result.TIMEOUT) //timeout
|
|
|
+ {
|
|
|
+ throw (new RoutineFaildException());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ throw (new RoutineBreakException());
|
|
|
+ }
|
|
|
+ }
|
|
|
private void SetBoatRAxisHome(int id, int timeout)
|
|
|
{
|
|
|
Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
|