| 
					
				 | 
			
			
				@@ -800,8 +800,16 @@ namespace FurnaceRT.Equipments.Jobs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 _lstFIMSs.Any(x => x.IsAvailable && x.IsReadyForPlace(ModuleName.CarrierRobot, 0)) &&
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 !SC.GetValue<bool>("WaferRobot.BypassFIMSMap"))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //有job执行且在charging和discharge状态,先不执行mapping
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (DATA.Poll("Scheduler.CurrentProcessJob") is ProcessJobInfo job && job != null &&
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          (job.ProcessingState == EnumProcessingState.CoolingBeforeDischarge || job.ProcessingState == EnumProcessingState.Charging || job.ProcessingState == EnumProcessingState.Discharging
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         || (job.ProcessingState == EnumProcessingState.Processing && DATA.Poll("PM1.RemainTimeToEnterCooling") is double t && t <=SC.GetValue<double>("System.Scheduler.LoadMappingForecastTime"))))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    continue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 if (tj.CarrierParas.Any(x => x.Stocker == carrier.InternalModuleName))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     stocker = st;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -853,10 +861,7 @@ namespace FurnaceRT.Equipments.Jobs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //map正常完成或者FIMS不具备map条件
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (stocker != null && ((carrier.IsMapped && carrier.IsMapOK) ||
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    SC.GetValue<bool>("WaferRobot.BypassFIMSMap") ||
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    !_lstFIMSs.Any(x => x.IsOnline && CarrierManager.Instance.CheckNoCarrier(x.Module, 0))))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (stocker != null )
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (_carrierRobot.Place(stocker.Module, 0, Hand.Blade1))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     {
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -983,6 +988,14 @@ namespace FurnaceRT.Equipments.Jobs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 SchedulerFIMS fims = null;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 foreach (var st in _lstFIMSs)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //有job执行且在charging和discharge状态,先不执行mapping
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (DATA.Poll("Scheduler.CurrentProcessJob") is ProcessJobInfo job && job != null &&
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        (job.ProcessingState == EnumProcessingState.CoolingBeforeDischarge || job.ProcessingState == EnumProcessingState.Charging || job.ProcessingState == EnumProcessingState.Discharging
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       || (job.ProcessingState == EnumProcessingState.Processing && DATA.Poll("PM1.RemainTimeToEnterCooling") is double t && t <= SC.GetValue<double>("System.Scheduler.LoadMappingForecastTime"))))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        continue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (!st.IsAvailable || !st.IsReadyForPlace(ModuleName.CarrierRobot, 0))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         continue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     var fimsDevice = DEVICE.GetDevice<IoFIMS>($"PM1.{st.Module}");
 
			 |