Browse Source

boat move添加 moving条件 卡控

jiangjy 1 day ago
parent
commit
c6f9862ad1
1 changed files with 38 additions and 0 deletions
  1. 38 0
      Furnace/FurnaceRT/Equipments/Boats/BoatMove.cs

+ 38 - 0
Furnace/FurnaceRT/Equipments/Boats/BoatMove.cs

@@ -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, () =>