|
|
@@ -618,12 +618,12 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
return Result.FAIL;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ var pm = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule);
|
|
|
foreach (var item in _lstFIMSs)
|
|
|
{
|
|
|
if (!_fimsCheckOxDensityDict.ContainsKey(item.Module.ToString()))
|
|
|
{
|
|
|
- _fimsCheckOxDensityDict.Add(item.Module.ToString(), Tuple.Create(new FilterChecker(), SC.GetValue<double>("PM1.N2Purge.N2PurgeFOUPO2CheckSV")));
|
|
|
+ _fimsCheckOxDensityDict.Add(item.Module.ToString(), Tuple.Create(new FilterChecker(), pm.GetWaferChargeLAO2CheckSV()));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1698,20 +1698,21 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
if (!CheckCarrierCanPickFromFIMS(st.Module) && !fimsDevice.IsLoadCompleted)
|
|
|
{
|
|
|
var pm = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule);
|
|
|
-
|
|
|
- var CheckFimsIsNeedOxygenPressure = pm.CheckFimsIsNeedOxygenPressure(pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
-
|
|
|
+ var waferChargeFIMSN2purgeConfig = pm.GetWaferChargeFIMSN2purgeConfig();
|
|
|
+ var waferChargeLAO2CheckSV = pm.GetWaferChargeLAO2CheckSV();
|
|
|
+ var lACurrectN2purgeMode = pm.GetLACurrectN2purgeMode();
|
|
|
+ var CheckFimsIsNeedOxygenPressure = pm.CheckFimsIsNeedOxygenPressure(waferChargeFIMSN2purgeConfig, pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
if (isCheckO2)
|
|
|
{
|
|
|
|
|
|
_fimsCheckOxDensityDict[st.Module.ToString()].Item1.CheckInterval = 1;
|
|
|
- _fimsCheckOxDensityDict[st.Module.ToString()].Item1.Monitor(pm.GetN2PurgeUnder20PPMStatus(_fimsCheckOxDensityDict[st.Module.ToString()].Item2));
|
|
|
+ _fimsCheckOxDensityDict[st.Module.ToString()].Item1.Monitor(pm.GetN2PurgeUnder20PPMStatus(waferChargeLAO2CheckSV));
|
|
|
if (_fimsCheckOxDensityDict[st.Module.ToString()].Item1.Trig)
|
|
|
{
|
|
|
- if (st.Load(CheckFimsIsNeedOxygenPressure, "Charging"))
|
|
|
+ if (st.Load(CheckFimsIsNeedOxygenPressure, N2PurgeModeEnum.WaferCharge.ToString()))
|
|
|
{
|
|
|
_fimsCheckOxDensityDict[st.Module.ToString()].Item1.Restart();
|
|
|
- LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={pm.GetFIMStN2purgeConfig()},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={pm.GetLACurrectN2purgeMode()},pjStatus:{pj.ProcessingState},wait load Charging。A");
|
|
|
+ LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={waferChargeFIMSN2purgeConfig},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={lACurrectN2purgeMode},pjStatus:{pj.ProcessingState},wait WaferCharge。A");
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
@@ -1720,9 +1721,9 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (st.Load(CheckFimsIsNeedOxygenPressure, "Charging"))
|
|
|
+ if (st.Load(CheckFimsIsNeedOxygenPressure, N2PurgeModeEnum.WaferCharge.ToString()))
|
|
|
{
|
|
|
- LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={pm.GetFIMStN2purgeConfig()},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={pm.GetLACurrectN2purgeMode()},pjStatus:{pj.ProcessingState},direct load Charging。B");
|
|
|
+ LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={waferChargeFIMSN2purgeConfig},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={lACurrectN2purgeMode},pjStatus:{pj.ProcessingState},direct WaferCharge。B");
|
|
|
|
|
|
|
|
|
return;
|
|
|
@@ -1748,17 +1749,21 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
if (CheckCarrierNoHasEmptySlot(st.Module) && !fimsDevice.IsLoadCompleted)
|
|
|
{
|
|
|
var pm = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule);
|
|
|
- var CheckFimsIsNeedOxygenPressure = pm.CheckFimsIsNeedOxygenPressure(pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
+ var waferDisChargeFIMSN2purgeConfig = pm.GetWaferDisChargeFIMSN2purgeConfig();
|
|
|
+ var waferDisChargeLAO2CheckSV = pm.GetWaferDisChargeLAO2CheckSV();
|
|
|
+ var lACurrectN2purgeMode = pm.GetLACurrectN2purgeMode();
|
|
|
+
|
|
|
+ var CheckFimsIsNeedOxygenPressure = pm.CheckFimsIsNeedOxygenPressure(waferDisChargeFIMSN2purgeConfig, pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
if (isCheckO2)
|
|
|
{
|
|
|
_fimsCheckOxDensityDict[st.Module.ToString()].Item1.CheckInterval = 1;
|
|
|
- _fimsCheckOxDensityDict[st.Module.ToString()].Item1.Monitor(pm.GetN2PurgeUnder20PPMStatus(_fimsCheckOxDensityDict[st.Module.ToString()].Item2));
|
|
|
+ _fimsCheckOxDensityDict[st.Module.ToString()].Item1.Monitor(pm.GetN2PurgeUnder20PPMStatus(waferDisChargeLAO2CheckSV));
|
|
|
if (_fimsCheckOxDensityDict[st.Module.ToString()].Item1.Trig)
|
|
|
{
|
|
|
- if (st.Load(CheckFimsIsNeedOxygenPressure, "Charging"))
|
|
|
+ if (st.Load(CheckFimsIsNeedOxygenPressure, N2PurgeModeEnum.WaferDisCharge.ToString()))
|
|
|
{
|
|
|
_fimsCheckOxDensityDict[st.Module.ToString()].Item1.Restart();
|
|
|
- LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={pm.GetFIMStN2purgeConfig()},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={pm.GetLACurrectN2purgeMode()},pjStatus:{pj.ProcessingState},wait load Charging。C");
|
|
|
+ LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={waferDisChargeFIMSN2purgeConfig},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={lACurrectN2purgeMode},pjStatus:{pj.ProcessingState},wait WaferDisCharge Load。C");
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
@@ -1767,9 +1772,9 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (st.Load(CheckFimsIsNeedOxygenPressure, "Discharging"))
|
|
|
+ if (st.Load(CheckFimsIsNeedOxygenPressure, N2PurgeModeEnum.WaferDisCharge.ToString()))
|
|
|
{
|
|
|
- LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={pm.GetFIMStN2purgeConfig()},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={pm.GetLACurrectN2purgeMode()},pjStatus:{pj.ProcessingState},direct load Charging。D");
|
|
|
+ LOG.Info($"FIMS={st.Module} , FIMS N2PurgeConfig={waferDisChargeFIMSN2purgeConfig},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={lACurrectN2purgeMode},pjStatus:{pj.ProcessingState},direct WaferDisCharge Load。D");
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
@@ -1792,17 +1797,20 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
if (!CheckCarrierCanPickFromFIMSInDischarge(carrier.InternalModuleName) && !fimsDevice.IsLoadCompleted)
|
|
|
{
|
|
|
var pm = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule);
|
|
|
- var CheckFimsIsNeedOxygenPressure = pm.CheckFimsIsNeedOxygenPressure(pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
+ var waferDisChargeFIMSN2purgeConfig = pm.GetWaferDisChargeFIMSN2purgeConfig();
|
|
|
+ var waferDisChargeLAO2CheckSV = pm.GetWaferDisChargeLAO2CheckSV();
|
|
|
+ var lACurrectN2purgeMode = pm.GetLACurrectN2purgeMode();
|
|
|
+ var CheckFimsIsNeedOxygenPressure = pm.CheckFimsIsNeedOxygenPressure(waferDisChargeFIMSN2purgeConfig, pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
if (isCheckO2)
|
|
|
{
|
|
|
_fimsCheckOxDensityDict[st.Module.ToString()].Item1.CheckInterval = 1;
|
|
|
- _fimsCheckOxDensityDict[st.Module.ToString()].Item1.Monitor(pm.GetN2PurgeUnder20PPMStatus(_fimsCheckOxDensityDict[st.Module.ToString()].Item2));
|
|
|
+ _fimsCheckOxDensityDict[st.Module.ToString()].Item1.Monitor(pm.GetN2PurgeUnder20PPMStatus(waferDisChargeLAO2CheckSV));
|
|
|
if (_fimsCheckOxDensityDict[st.Module.ToString()].Item1.Trig)
|
|
|
{
|
|
|
- if (st.Load(CheckFimsIsNeedOxygenPressure, "Charging"))
|
|
|
+ if (st.Load(CheckFimsIsNeedOxygenPressure, N2PurgeModeEnum.WaferDisCharge.ToString()))
|
|
|
{
|
|
|
_fimsCheckOxDensityDict[st.Module.ToString()].Item1.Restart();
|
|
|
- LOG.Info($"FIMS :{st.Module} FIMS N2PurgeConfig={pm.GetFIMStN2purgeConfig()},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={pm.GetLACurrectN2purgeMode()},wait load Charging");
|
|
|
+ LOG.Info($"FIMS :{st.Module} FIMS N2PurgeConfig={waferDisChargeFIMSN2purgeConfig},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={lACurrectN2purgeMode},wait WaferDisCharge laod ");
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
@@ -1810,9 +1818,9 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (st.Load(CheckFimsIsNeedOxygenPressure, "Discharging"))
|
|
|
+ if (st.Load(CheckFimsIsNeedOxygenPressure, N2PurgeModeEnum.WaferDisCharge.ToString()))
|
|
|
{
|
|
|
- LOG.Info($"FIMS :{st.Module} FIMS N2PurgeConfig={pm.GetFIMStN2purgeConfig()},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={pm.GetLACurrectN2purgeMode()},direct load Discharging");
|
|
|
+ LOG.Info($"FIMS :{st.Module} FIMS N2PurgeConfig={waferDisChargeFIMSN2purgeConfig},Recipe N2purge Set={pj.N2PurgeModeStr},Currect N2Purge={lACurrectN2purgeMode},direct WaferDisCharge load");
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
@@ -1834,7 +1842,7 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
|
|
|
var fimsDevice = DEVICE.GetDevice<IoFIMS>($"PM1.{st.Module}");
|
|
|
// var CheckFimsIsNeedOxygenPressure = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule).CheckFimsIsNeedOxygenPressure(pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
- if (CheckCarrierCanPickFromFIMS(st.Module) && !fimsDevice.IsUnloadCompleted && st.Unload(false, "Charging"))
|
|
|
+ if (CheckCarrierCanPickFromFIMS(st.Module) && !fimsDevice.IsUnloadCompleted && st.Unload(false, N2PurgeModeEnum.WaferCharge.ToString()))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
@@ -1862,7 +1870,7 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
if (fims != null && slots != null && GetWaferCountRelatedToWaferRobot(waferType, false) <= slots.Count && CheckCarrierCanPickFromStocker(ModuleName.CarrierRobot))
|
|
|
{
|
|
|
//var CheckFimsIsNeedOxygenPressure = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule).CheckFimsIsNeedOxygenPressure(pj.N2PurgeModeStr, out var isCheckO2);
|
|
|
- if (fims.Unload(false, "Charging"))
|
|
|
+ if (fims.Unload(false, N2PurgeModeEnum.WaferCharge.ToString()))
|
|
|
{
|
|
|
return;
|
|
|
|
|
|
@@ -1888,7 +1896,7 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
|
|
|
if (!CheckCarrierHasEmptySlot(st.Module) && _waferRobot.IsAvailable && !fimsDevice.IsUnloadCompleted)
|
|
|
{
|
|
|
- if (st.Unload(false, "Discharging"))
|
|
|
+ if (st.Unload(false, N2PurgeModeEnum.WaferDisCharge.ToString()))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
@@ -1909,7 +1917,7 @@ namespace FurnaceRT.Equipments.Jobs
|
|
|
|
|
|
if (CheckCarrierCanPickFromFIMSInDischarge(carrier.InternalModuleName) && _waferRobot.IsAvailable && !fimsDevice.IsUnloadCompleted)
|
|
|
{
|
|
|
- if (st.Unload(false, "Discharging"))
|
|
|
+ if (st.Unload(false, N2PurgeModeEnum.WaferDisCharge.ToString()))
|
|
|
{
|
|
|
return;
|
|
|
|