Pārlūkot izejas kodu

1.Revise cycle bug of flipper;
2.Add robotinterlocker logic about flipper;

niuyx 1 dienu atpakaļ
vecāks
revīzija
3297b3d862

+ 15 - 0
Jet/Jet_001_2P_Jet/EfemRT/Devices/Flipper/JetFlipper.cs

@@ -351,6 +351,21 @@ namespace EFEM.RT.Devices.Flipper
         public bool IsEnableTransferWafer(out string reason)
         {
             reason = "";
+            if (!IsReadyForRobot)
+            {
+                reason = "Flipper not safety to robot. DI_FlipperSafetyToRobot is off";
+                return false;
+            }
+            if (!IsClampOpen)
+            {
+                reason = "Flipper is clamp. DI_FlipperClampOpenedSensor is off";
+                return false;
+            }
+            if (!_diIsHorizontal.Value)
+            {
+                reason = "Flipper is not horizontal. DI_FlipperTurnOverHorizontalSensor is off";
+                return false;
+            }
             return true;
         }
     }

+ 18 - 18
Jet/Jet_001_2P_Jet/EfemRT/Modules/SorterCycleManager.cs

@@ -421,9 +421,9 @@ namespace EFEM.RT.Modules
                     }
                     if (ModuleHelper.IsFlipper(m_pickRoutine.Source))
                     {
-                        var ll = DEVICE.GetDevice<JetFlipper>(m_pickRoutine.Source.ToString());
-                        if (ll.IsEnableTransferWafer(out _))
-                            return m_pickRoutine.Start(null);
+                        //var ll = DEVICE.GetDevice<JetFlipper>(m_pickRoutine.Source.ToString());
+                        //if (ll.IsEnableTransferWafer(out _))
+                        return m_pickRoutine.Start(null);
                     }
                 }
             }
@@ -471,9 +471,9 @@ namespace EFEM.RT.Modules
                 }
                 if (ModuleHelper.IsFlipper(m_placeRoutine.Station))
                 {
-                    var ll = DEVICE.GetDevice<JetFlipper>(m_placeRoutine.Station.ToString());
-                    if (ll.IsEnableTransferWafer(out _))
-                        return m_placeRoutine.Start(null);
+                    //var ll = DEVICE.GetDevice<JetFlipper>(m_placeRoutine.Station.ToString());
+                    //if (ll.IsEnableTransferWafer(out _))
+                    return m_placeRoutine.Start(null);
                 }
             }
             else
@@ -517,9 +517,9 @@ namespace EFEM.RT.Modules
                     }
                     if (ModuleHelper.IsFlipper(m_placeRoutine.Station))
                     {
-                        var ll = DEVICE.GetDevice<JetFlipper>(m_placeRoutine.Station.ToString());
-                        if (ll.IsEnableTransferWafer(out _))
-                            return m_placeRoutine.Start(null);
+                        //var ll = DEVICE.GetDevice<JetFlipper>(m_placeRoutine.Station.ToString());
+                        //if (ll.IsEnableTransferWafer(out _))
+                        return m_placeRoutine.Start(null);
                     }
                 }
                 else
@@ -567,9 +567,9 @@ namespace EFEM.RT.Modules
                     }
                     if (ModuleHelper.IsFlipper(m_swaproutine.Source))
                     {
-                        var ll = DEVICE.GetDevice<JetFlipper>(m_swaproutine.Source.ToString());
-                        if (ll.IsEnableTransferWafer(out _))
-                            return m_swaproutine.Start(null);
+                        //var ll = DEVICE.GetDevice<JetFlipper>(m_swaproutine.Source.ToString());
+                        //if (ll.IsEnableTransferWafer(out _))
+                        return m_swaproutine.Start(null);
                     }
                 }
             }
@@ -632,9 +632,9 @@ namespace EFEM.RT.Modules
                     }
                     if (ModuleHelper.IsFlipper(m_pickRoutine.Source))
                     {
-                        var lp = DEVICE.GetDevice<JetFlipper>(m_pickRoutine.Source.ToString());
-                        if (lp.IsEnableTransferWafer(out _))
-                            return m_pickRoutine.Start(null);
+                        //var lp = DEVICE.GetDevice<JetFlipper>(m_pickRoutine.Source.ToString());
+                        //if (lp.IsEnableTransferWafer(out _))
+                        return m_pickRoutine.Start(null);
                     }
                 }
             }
@@ -689,9 +689,9 @@ namespace EFEM.RT.Modules
                 }
                 if (ModuleHelper.IsFlipper(m_placeRoutine.Station))
                 {
-                    var lp = DEVICE.GetDevice<JetFlipper>(m_placeRoutine.Station.ToString());
-                    if (lp.IsEnableTransferWafer(out _))
-                        return m_placeRoutine.Start(null);
+                    //var lp = DEVICE.GetDevice<JetFlipper>(m_placeRoutine.Station.ToString());
+                    //if (lp.IsEnableTransferWafer(out _))
+                    return m_placeRoutine.Start(null);
                 }
             }
             return Result.RUN;

+ 5 - 1
Jet/Jet_001_2P_Jet/EfemRT/Routines/CommonRoutine.cs

@@ -1263,7 +1263,11 @@ namespace EFEM.RT.Routines
             }
             if (ModuleHelper.IsFlipper(chamber))
             {
-                return true;
+                if(flipper != null && flipper.IsEnableTransferWafer(out reason))
+                {
+                    return true;
+                }
+                return false;
             }
             reason = "error target";
             return false;

+ 1 - 0
Jet/Jet_001_2P_Jet/EfemSimulator/SimulatorSystem.cs

@@ -82,6 +82,7 @@ namespace EfemSimulator.SimulatorIo
             IO.DI["DI_FlipperTurnOverHorizontalSensor"].Value = true;
             IO.DI["DI_FlipperTurnOverMotorPosCompleted"].Value = true;
             IO.DI["DI_FlipperClampMotorPosCompleted"].Value = true;
+            IO.DI["DI_FlipperSafetyToRobot"].Value = true;
         }
         private void SetDefaultValue()
         {