更新Common库[b58d3c8]
1.JobStart等Gem事件增加DV SequenceID 2.PMProcessStart等Gem事件增加DV SequenceID,LotID
This commit is contained in:
parent
739b4a5334
commit
3a3103fb3a
|
@ -325,6 +325,18 @@ namespace SicModules.PMs
|
|||
return true;
|
||||
}
|
||||
|
||||
public string GetWaferSequenceID()
|
||||
{
|
||||
WaferInfoRt waferInfo = WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module), 0);
|
||||
return waferInfo != null ? waferInfo.PPID : string.Empty;
|
||||
}
|
||||
|
||||
public string GetWaferLotID()
|
||||
{
|
||||
WaferInfoRt waferInfo = WaferManager.Instance.GetWafer(ModuleHelper.Converter(Module), 0);
|
||||
return waferInfo != null ? waferInfo.LotId : string.Empty;
|
||||
}
|
||||
|
||||
public void AbortRunProcess(out string reason)
|
||||
{
|
||||
_pmInterLock.SetPMPreProcessRunning(false, out reason);
|
||||
|
|
|
@ -230,7 +230,8 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
PmDevice.RecipeRunningInfo.RecipeName);
|
||||
_dbCallback.RecipeUpdateStatus(PmDevice.RecipeRunningInfo.InnerId.ToString(), "InProcess");
|
||||
|
||||
GemManager.Instance.Equipment?.TriggerEvent("PMRecipeStart", new string[] { "ChamberID", "RecipeID"}, new object[] {PmDevice.Module, PmDevice.RecipeRunningInfo.RecipeName});
|
||||
//手动工艺时LotID和SequenceID可能是string.Empty
|
||||
GemManager.Instance.Equipment?.TriggerEvent("PMRecipeStart", new string[] { "ChamberID", "RecipeID","LotID","SequenceID"}, new object[] {PmDevice.Module, PmDevice.RecipeRunningInfo.RecipeName, PmDevice.GetWaferLotID(), PmDevice.GetWaferSequenceID()});
|
||||
|
||||
WaferManager.Instance.UpdateWaferProcessStatus(ModuleHelper.Converter(Module), 0,
|
||||
WaferProcessStatus.InProcess);
|
||||
|
@ -702,24 +703,25 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
break;
|
||||
|
||||
case RecipeRunningState.RecipeCompleted:
|
||||
{
|
||||
//更新PM的Runtime
|
||||
if (!_hasRecordRunTime)
|
||||
{
|
||||
_hasRecordRunTime = true;
|
||||
RuntimeDataRecorder.UpdateElapseTimePM(Module + " Process",
|
||||
(int)(_recipeTimer.GetElapseTime() / 60000));
|
||||
//更新PM的Runtime
|
||||
if (!_hasRecordRunTime)
|
||||
{
|
||||
_hasRecordRunTime = true;
|
||||
RuntimeDataRecorder.UpdateElapseTimePM(Module + " Process",
|
||||
(int)(_recipeTimer.GetElapseTime() / 60000));
|
||||
}
|
||||
|
||||
_recipeTimer.Stop();
|
||||
Notify("Finished");
|
||||
GrowCheck();
|
||||
|
||||
//手动工艺时LotID和SequenceID可能是string.Empty
|
||||
GemManager.Instance.Equipment?.TriggerEvent("PMRecipeComplete", new string[] { "ChamberID", "RecipeID", "LotID", "SequenceID" }, new object[] { PmDevice.Module, PmDevice.RecipeRunningInfo.RecipeName, PmDevice.GetWaferLotID(), PmDevice.GetWaferSequenceID() });
|
||||
|
||||
return Result.DONE;
|
||||
}
|
||||
|
||||
_recipeTimer.Stop();
|
||||
Notify("Finished");
|
||||
GrowCheck();
|
||||
|
||||
GemManager.Instance.Equipment?.TriggerEvent("PMRecipeComplete", new string[] { "ChamberID", "RecipeID" }, new object[] { PmDevice.Module, PmDevice.RecipeRunningInfo.RecipeName });
|
||||
|
||||
return Result.DONE;
|
||||
}
|
||||
|
||||
case RecipeRunningState.Error:
|
||||
{
|
||||
//更新PM的Runtime
|
||||
|
@ -832,7 +834,8 @@ namespace SicModules.PMs.RecipeExecutions
|
|||
PmDevice.RecipeRunningInfo.TotalTime = 0;
|
||||
PmDevice.RecipeRunningInfo.TotalElapseTime = 0;
|
||||
|
||||
GemManager.Instance.Equipment?.TriggerEvent("PMRecipeAbort", new string[] { "ChamberID", "RecipeID" }, new object[] { PmDevice.Module, PmDevice.RecipeRunningInfo.RecipeName });
|
||||
//手动工艺时LotID和SequenceID可能是string.Empty
|
||||
GemManager.Instance.Equipment?.TriggerEvent("PMRecipeAbort", new string[] { "ChamberID", "RecipeID", "LotID", "SequenceID" }, new object[] { PmDevice.Module, PmDevice.RecipeRunningInfo.RecipeName, PmDevice.GetWaferLotID(), PmDevice.GetWaferSequenceID() });
|
||||
|
||||
//PMDevice.Rf.SetPowerOnOff(false, out _);
|
||||
//PMDevice.Microwave.SetPowerOnOff(false, out _);
|
||||
|
|
|
@ -832,7 +832,8 @@ namespace SicRT.Modules
|
|||
{
|
||||
foreach (var cj in cjList)
|
||||
{
|
||||
GemManager.Instance.Equipment?.TriggerEvent("JobAbort", new string[] { "LotID" }, new object[] { cj.LotName });
|
||||
string squenceID = cj.LotWafers != null ? cj.LotWafers[0].PPID : string.Empty;
|
||||
GemManager.Instance.Equipment?.TriggerEvent("JobAbort", new string[] { "LotID", "SequenceID" }, new object[] { cj.LotName, squenceID });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1004,7 +1005,8 @@ namespace SicRT.Modules
|
|||
|
||||
cj.SetState(EnumControlJobState.Executing);
|
||||
|
||||
GemManager.Instance.Equipment?.TriggerEvent("JobStart", new string[] { "LotID" }, new object[] { cj.LotName });
|
||||
string squenceID = cj.LotWafers != null ? cj.LotWafers[0].PPID : string.Empty;
|
||||
GemManager.Instance.Equipment?.TriggerEvent("JobStart", new string[] { "LotID","SequenceID"}, new object[] { cj.LotName, squenceID});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1687,7 +1689,8 @@ namespace SicRT.Modules
|
|||
|
||||
_loadWaferInfo.Remove(_load.GetWaferInfo(0).WaferInnerID.ToString());
|
||||
|
||||
GemManager.Instance.Equipment?.TriggerEvent("JobComplete", new string[] { "LotID" }, new object[] { _load.GetWaferInfo(0).LotId });
|
||||
GemManager.Instance.Equipment?.TriggerEvent("JobComplete", new string[] { "LotID", "SequenceID" },
|
||||
new object[] { _load.GetWaferInfo(0).LotId,_load.GetWaferInfo(0).PPID });
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue