更新Common库[b58d3c8]

1.JobStart等Gem事件增加DV SequenceID
2.PMProcessStart等Gem事件增加DV SequenceID,LotID
This commit is contained in:
HCL 2024-06-19 11:08:23 +08:00
parent 739b4a5334
commit 3a3103fb3a
11 changed files with 38 additions and 20 deletions

View File

@ -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);

View File

@ -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 _);

View File

@ -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;
}