| 
					
				 | 
			
			
				@@ -212,6 +212,18 @@ namespace FurnaceRT.Equipments.PMs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void SetN2PurgeModePhase(string setValue)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (SC.ContainsItem("PM1.N2PurgeModePhase"))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var data = SC.GetStringValue("PM1.N2PurgeModePhase");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (data != setValue)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SC.SetItemValue("PM1.N2PurgeModePhase", setValue);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <summary>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// TODO:这里展示数据的逻辑 不正确,待明确逻辑
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </summary>
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -222,8 +234,55 @@ namespace FurnaceRT.Equipments.PMs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ((SensorO2DetectSideFIMS1 != null && SensorO2DetectSideFIMS1.Value) || (SensorO2DetectSideFIMS2 != null && SensorO2DetectSideFIMS2.Value))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return (float)SC.GetValue<double>("PM1.N2Purge.N2PurgeFOUPO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (SC.ContainsItem("PM1.N2PurgeModePhase"))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var n2PurgeModePhase = SC.GetStringValue("PM1.N2PurgeModePhase");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (n2PurgeModePhase == N2PurgeModeEnum.WaferCharge.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.WaferCharge.FOUPO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        else if (n2PurgeModePhase == N2PurgeModeEnum.FoupEnter.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.FoupEnter.FOUPO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        else if (n2PurgeModePhase == N2PurgeModeEnum.WaferDisCharge.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.WaferDisCharge.FOUPO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return (float)SC.GetValue<double>("System.N2PurgeData");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (CheckIsLASide())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (SC.ContainsItem("PM1.N2PurgeModePhase"))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var n2PurgeModePhase = SC.GetStringValue("PM1.N2PurgeModePhase");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (n2PurgeModePhase == N2PurgeModeEnum.BoatLoad.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.BoatLoad.LAO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (n2PurgeModePhase == N2PurgeModeEnum.BoatUnLoad.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.BoatUnLoad.LAO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (n2PurgeModePhase == N2PurgeModeEnum.FoupEnter.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.FoupEnter.LAO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (n2PurgeModePhase == N2PurgeModeEnum.WaferCharge.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.WaferCharge.LAO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (n2PurgeModePhase == N2PurgeModeEnum.WaferDisCharge.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("PM1.N2Purge.WaferDisCharge.LAO2CheckSV");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (n2PurgeModePhase == N2PurgeModeEnum.Idle.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return (float)SC.GetValue<double>("System.N2PurgeData");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return (float)SC.GetValue<double>("System.N2PurgeData");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return _n2PurgeData;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -709,6 +768,10 @@ namespace FurnaceRT.Equipments.PMs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var time = (float)SC.GetValue<double>("PM1.N2Purge.O2DetectorFOUPToFOUPTime");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 TrigN2PurgeExchangeFOUPTOFOUPWaitTime.SetAOTrigger(time, out _);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (SC.ContainsItem("PM1.N2PurgeModePhase"))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SC.SetItemValue("PM1.N2PurgeModePhase", n2PurgeModeEnum);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //这2个SV下发值应该根据什么阶段下发什么值
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (n2PurgeModeEnum == N2PurgeModeEnum.WaferCharge.ToString())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 |