diff --git a/Modules/SicModules/PMs/RecipeExecutions/Process.cs b/Modules/SicModules/PMs/RecipeExecutions/Process.cs index 65b0a8f..2419450 100644 --- a/Modules/SicModules/PMs/RecipeExecutions/Process.cs +++ b/Modules/SicModules/PMs/RecipeExecutions/Process.cs @@ -737,21 +737,29 @@ namespace SicModules.PMs.RecipeExecutions break; case RecipeRunningState.RecipeCompleted: - { - - //更新PM的Runtime - if (!_hasRecordRunTime) { - _hasRecordRunTime = true; + + //更新PM的Runtime + if (!_hasRecordRunTime) + { + _hasRecordRunTime = true; RuntimeDataRecorder.UpdateElapseTimePM(Module, (int)_recipeTimer.GetElapseTime() / 1000); - } + } - _recipeTimer.Stop(); - Notify("Finished"); - GrowCheck(); - return Result.DONE; - } + _recipeTimer.Stop(); + Notify("Finished"); + GrowCheck(); + + //手动工艺时LotID和SequenceID可能是string.Empty + //补全路径 + string recipeID = PmDevice.RecipeRunningInfo.RecipeName + ".rcp"; + string squenceID = $"Sequence\\{PmDevice.GetWaferSequenceID()}.seq"; + + GemManager.Instance.Equipment?.TriggerEvent("PMRecipeComplete", new string[] { "ChamberID", "RecipeID", "LotID", "SequenceID" }, new object[] { PmDevice.Module, recipeID, PmDevice.GetWaferLotID(), squenceID }); + + return Result.DONE; + } case RecipeRunningState.Error: {