Browse Source

robot routinue添加delay 時間

jiangjy 1 week ago
parent
commit
08f47f9ba1

+ 2 - 0
Furnace/FurnaceRT/Config/System.sccfg

@@ -2,6 +2,8 @@
 <root system="Furnace">
 	<configs name="System" display="System Parameter">
 		<config default="true" name="IsSimulatorMode" description="Is Simulator Mode" max="" min="" paramter="" tag="" unit="" type="Bool" />
+		<config default="true" name="AddRobotDelay" description="AddRobotDelay" max="" min="" paramter="" tag="" unit="" type="Bool"  visible="false"/>
+		<config default="0.5" name="RobotDelayTime" description="RobotDelayTime" max="" min="" paramter="" tag="" unit="" type="String" visible="false"  />
 		<config default="120" name="BackUpFileMaxNumber" description="BackUpFileMaxNumber" max="1000" min="0" paramter="" tag="" unit="" type="Integer"   />
 		<!--检测断线报警时间-->
 		<config default="10" name="PLCConnectSensorFoolTime" description="PLC Connect Sensor Fool Time" max="1000" min="0" paramter="" tag="" unit="" type="Integer"   visible="false"/>

+ 8 - 3
Furnace/FurnaceRT/Equipments/CarrierRobots/CarrierLoad.cs

@@ -33,6 +33,7 @@ namespace FurnaceRT.Equipments.CarrierRobots
             CheckBeforePick,
             SetRobotActionCommand,
             Goto,
+            Delay,
             CheckGotoFinish,
         }
 
@@ -254,7 +255,7 @@ namespace FurnaceRT.Equipments.CarrierRobots
 
                 Goto((int)RoutineStep.Goto, _source, _sourceSlot, _blade, true, _timeout);
 
-                
+
                 if (_source == ModuleName.LP1 || _source == ModuleName.LP2)
                 {
                     SaferDoorOpen((int)RoutineStep.DoorOpen, true, _timeout);
@@ -264,7 +265,7 @@ namespace FurnaceRT.Equipments.CarrierRobots
                 {
                     SetLPLoad((int)RoutineStep.SetLPLoad, _source, _timeout);
                 }
-                    
+
 
                 CheckGotoFinish((int)RoutineStep.CheckGotoFinish, _source, _timeout);
 
@@ -287,6 +288,10 @@ namespace FurnaceRT.Equipments.CarrierRobots
                 RobotRequestCassettePresent((int)RoutineStep.RobotRequestCassettePresent, _blade, _timeout);
 
                 CheckCassetteInfoByRobotSensor((int)RoutineStep.CheckCassetteInfoByRobotSensor, _blade, true);
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {
@@ -438,7 +443,7 @@ namespace FurnaceRT.Equipments.CarrierRobots
                 if (!CarrierManager.Instance.CheckNoCarrier(source.ToString(), 0))
                     CarrierManager.Instance.DeleteCarrier(source.ToString());//要保留
                 CarrierManager.Instance.CreateCarrier(source.ToString(), carrierType, carrierInternalModuleName.ToString());
-  
+
                 CarrierManager.Instance.GetCarrier(source.ToString(), 0).IsMapOK = false;
                 CarrierManager.Instance.GetCarrier(source.ToString(), 0).IsMapped = false;
                 (Singleton<EquipmentManager>.Instance.Modules[source] as ITransferTarget)?.NoteTransferStart(ModuleHelper.Converter(_cassetteRobotModule.Module), hand, slot, EnumTransferType.Pick);

+ 6 - 0
Furnace/FurnaceRT/Equipments/CarrierRobots/CarrierRobotHome.cs

@@ -25,6 +25,7 @@ namespace FurnaceRT.Equipments.CarrierRobots
             SetSpeed,
             RobotRequestCassettePresent,
             UpdateWaferInfoByRobotSensor,
+            Delay,
         }
 
         private CarrierRobotModule _cassetteRobotModule;
@@ -83,6 +84,11 @@ namespace FurnaceRT.Equipments.CarrierRobots
                 RobotRequestCassettePresent((int)RoutineStep.RobotRequestCassettePresent, Hand.Blade1, _timeout);
 
                 UpdateCassetteInfoByRobotSensor((int)RoutineStep.UpdateWaferInfoByRobotSensor);
+
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {

+ 4 - 0
Furnace/FurnaceRT/Equipments/CarrierRobots/CarrierRobotPick.cs

@@ -278,6 +278,10 @@ namespace FurnaceRT.Equipments.CarrierRobots
                 //RobotRequestCassettePresent((int)RoutineStep.RobotRequestCassettePresent, _blade, _timeout);
 
                 CheckCassetteInfoByRobotSensor((int)RoutineStep.CheckCassetteInfoByRobotSensor, _blade, true);
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {

+ 4 - 0
Furnace/FurnaceRT/Equipments/CarrierRobots/CarrierRobotPlace.cs

@@ -276,6 +276,10 @@ namespace FurnaceRT.Equipments.CarrierRobots
                 //RobotRequestCassettePresent((int)RoutineStep.RobotRequestCassettePresent, _blade, _timeout);
 
                 CheckCassetteInfoByRobotSensor((int)RoutineStep.CheckCassetteInfoByRobotSensor, _blade, false);
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {

+ 5 - 0
Furnace/FurnaceRT/Equipments/CarrierRobots/CarrierUnload.cs

@@ -37,6 +37,7 @@ namespace FurnaceRT.Equipments.CarrierRobots
             SetRobotActionCommand,
             Goto,
             CheckGotoFinish,
+            Delay,
         }
 
         private CarrierRobotModule _cassetteRobotModule;
@@ -255,6 +256,10 @@ namespace FurnaceRT.Equipments.CarrierRobots
                 RobotRequestCassettePresent((int)RoutineStep.RobotRequestCassettePresent, _blade, _timeout);
 
                 CheckCassetteInfoByRobotSensor((int)RoutineStep.CheckCassetteInfoByRobotSensor, _blade, false);
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {

+ 5 - 0
Furnace/FurnaceRT/Equipments/WaferRobots/WaferRobotHome.cs

@@ -33,6 +33,7 @@ namespace FurnaceRT.Equipments.WaferRobots
             RobotRequestWaferPresent1,
             RobotRequestWaferPresent2,
             UpdateWaferInfoByRobotSensor,
+            Delay,
         }
 
         private WaferRobotModule _waferRobotModule;
@@ -94,6 +95,10 @@ namespace FurnaceRT.Equipments.WaferRobots
                 //RobotRequestWaferPresent((int)RoutineStep.RobotRequestWaferPresent2, Hand.Blade2, _timeout);
 
                 UpdateWaferInfoByRobotSensor((int)RoutineStep.UpdateWaferInfoByRobotSensor);
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {

+ 5 - 0
Furnace/FurnaceRT/Equipments/WaferRobots/WaferRobotMap.cs

@@ -32,6 +32,7 @@ namespace FurnaceRT.Equipments.WaferRobots
             CheckBeforeMap,
             CheckAfterMap,
             CheckMappingFinish,
+            Delay,
         }
 
         private ModuleName _mapFIMS;
@@ -166,6 +167,10 @@ namespace FurnaceRT.Equipments.WaferRobots
                 CheckMappingFinish((int)RoutineStep.CheckMappingFinish, _mapFIMS, _timeout2);
 
                 CheckAfterMap((int)RoutineStep.CheckAfterMap, _mapFIMS, _slotNumber, _slotMap, _isCompareWithSlotMap, _isCreateWafer);
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {

+ 6 - 0
Furnace/FurnaceRT/Equipments/WaferRobots/WaferRobotPick.cs

@@ -24,6 +24,7 @@ namespace FurnaceRT.Equipments.WaferRobots
             CheckCassetteInfoByRobotSensor,
             CheckBeforePick,
             SetRobotActionCommand,
+            Delay,
         }
 
         private ModuleName _source;
@@ -304,6 +305,11 @@ namespace FurnaceRT.Equipments.WaferRobots
                 //RobotRequestWaferPresent((int)RoutineStep.RobotRequestWaferPresent, _blade, _timeout);
 
                 CheckWaferInfoByRobotSensor((int)RoutineStep.CheckCassetteInfoByRobotSensor, _blade, true);
+
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {

+ 10 - 5
Furnace/FurnaceRT/Equipments/WaferRobots/WaferRobotPlace.cs

@@ -26,6 +26,7 @@ namespace FurnaceRT.Equipments.WaferRobots
             CheckWaferInfoByRobotSensor,
             CheckBeforePlace,
             SetRobotActionCommand,
+            Delay,
         }
 
         private ModuleName _destination;
@@ -202,10 +203,10 @@ namespace FurnaceRT.Equipments.WaferRobots
                     }
                     else
                     {
-                        if (!_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade1 || 
-                            !_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade2 || 
-                            !_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade3 || 
-                            !_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade4 || 
+                        if (!_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade1 ||
+                            !_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade2 ||
+                            !_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade3 ||
+                            !_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade4 ||
                             !_waferRobotModule.WaferRobotDevice.IsWaferPresenceOnBlade5 ||
                             !WaferManager.Instance.CheckHasWafer(ModuleName.WaferRobot, 0) ||
                             !WaferManager.Instance.CheckHasWafer(ModuleName.WaferRobot, 1) ||
@@ -271,7 +272,7 @@ namespace FurnaceRT.Equipments.WaferRobots
                         _waferRobotModule.PlaceWaferFailAlarm.Set(reason);
                         return Result.FAIL;
                     }
-                    if (fims != null&&fims.IsWaferOnRobot)
+                    if (fims != null && fims.IsWaferOnRobot)
                     {
                         _waferRobotModule.PlaceWaferFailAlarm.Set($"The wafer on {Module} has shifted");
                     }
@@ -308,6 +309,10 @@ namespace FurnaceRT.Equipments.WaferRobots
                 //RobotRequestWaferPresent((int)RoutineStep.RobotRequestWaferPresent, _blade, _timeout);
 
                 CheckWaferInfoByRobotSensor((int)RoutineStep.CheckWaferInfoByRobotSensor, _blade, false);
+
+
+                if (SC.ContainsItem("System.AddRobotDelay") && SC.ContainsItem("System.RobotDelayTime") && SC.GetValue<bool>("System.AddRobotDelay"))
+                    Delay((int)RoutineStep.Delay, float.Parse(SC.GetStringValue("System.RobotDelayTime")));
             }
             catch (RoutineBreakException)
             {