|
|
@@ -71,6 +71,7 @@ namespace FurnaceRT.Equipments.PMs.RecipeExecutions
|
|
|
private double _curStepElpasedTimeBeforePaused;
|
|
|
|
|
|
private double _holdTimeElpasedTime;
|
|
|
+ private bool _hasItBeenTriggeredRecipeComplete;
|
|
|
|
|
|
private double _waferTimeElpasedTimeBeforPaused;
|
|
|
//Add by SSH,20250930,判断recipe是否执行结束,给job使用
|
|
|
@@ -361,7 +362,14 @@ namespace FurnaceRT.Equipments.PMs.RecipeExecutions
|
|
|
PMModule.RecipeRunningInfo.SubRecipeLoopCount = PMModule.RecipeRunningInfo.RecipeStepList[_currentStepNumber].SubRecipeLoopCount;
|
|
|
PMModule.RecipeRunningInfo.SubRecipeTable = PMModule.RecipeRunningInfo.RecipeStepList[_currentStepNumber].SubRecipeTableInfo;
|
|
|
_faCallback.RecipeTriggerCallSubRecipe(Module, PMModule.RecipeRunningInfo.RecipeName, PMModule.RecipeRunningInfo.StepNumber.ToString(), PMModule.RecipeRunningInfo.RecipeStepList[_currentStepNumber].SubRecipeTableInfo);
|
|
|
-
|
|
|
+ if (SC.ContainsItem("System.FDC.SplitProcessLog") && SC.GetValue<bool>("System.FDC.SplitProcessLog"))
|
|
|
+ {
|
|
|
+ if (PMModule.RecipeRunningInfo.RecipeStepList[_currentStepNumber].StepName == "End" && PMModule.RecipeRunningInfo.RecipeStepList.Count - 1 == _currentStepNumber)
|
|
|
+ {
|
|
|
+ _faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
+ _hasItBeenTriggeredRecipeComplete = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
PMModule.RecipeRunningInfo.RecipeStepList[_currentStepNumber].IsCallSubStep = false;
|
|
|
IsSubReciep = true;
|
|
|
@@ -394,16 +402,10 @@ namespace FurnaceRT.Equipments.PMs.RecipeExecutions
|
|
|
|
|
|
_curStepElpasedTimeBeforePaused = 0;
|
|
|
ContinueAction = RecipeContinueMode.None;
|
|
|
- if (SC.ContainsItem("System.FDC.SplitProcessLog") && SC.GetValue<bool>("System.FDC.SplitProcessLog"))
|
|
|
- {
|
|
|
- if (PMModule.RecipeRunningInfo.RecipeStepList[_currentStepNumber].StepName == "End" && PMModule.RecipeRunningInfo.RecipeStepList.Count - 1 == _currentStepNumber)
|
|
|
- {
|
|
|
- _faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
if (IsSubReciep)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
if (curSteps[_currentSubRecipeStepNumber].IsLoopStartStep)
|
|
|
@@ -1197,18 +1199,10 @@ namespace FurnaceRT.Equipments.PMs.RecipeExecutions
|
|
|
{
|
|
|
if (_state == RecipeRunningState.RecipeCompleted)
|
|
|
{
|
|
|
- if (SC.ContainsItem("System.FDC.SplitProcessLog"))
|
|
|
- {
|
|
|
- if (!SC.GetValue<bool>("System.FDC.SplitProcessLog"))
|
|
|
- _faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ if (!_hasItBeenTriggeredRecipeComplete)
|
|
|
_faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
- }
|
|
|
|
|
|
PMModule.StringProcessFlowState = PMModule.ProcessFlowState.Standby.ToString();
|
|
|
- // _faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
_dbCallback.RecipeComplete(PMModule.RecipeRunningInfo.InnerId.ToString());
|
|
|
_fdc.Stop();
|
|
|
|
|
|
@@ -1218,17 +1212,9 @@ namespace FurnaceRT.Equipments.PMs.RecipeExecutions
|
|
|
{
|
|
|
if (PMModule.IsExcuteIdleRecipe)
|
|
|
{
|
|
|
- if (SC.ContainsItem("System.FDC.SplitProcessLog"))
|
|
|
- {
|
|
|
- if (!SC.GetValue<bool>("System.FDC.SplitProcessLog"))
|
|
|
- _faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ if (!_hasItBeenTriggeredRecipeComplete)
|
|
|
_faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
- }
|
|
|
|
|
|
- // _faCallback.RecipeComplete(PMModule.Module, PMModule.RecipeRunningInfo.RecipeName);
|
|
|
_dbCallback.RecipeComplete(PMModule.RecipeRunningInfo.InnerId.ToString());
|
|
|
_fdc.Stop();
|
|
|
}
|
|
|
@@ -1239,6 +1225,7 @@ namespace FurnaceRT.Equipments.PMs.RecipeExecutions
|
|
|
_fdc.Stop();
|
|
|
};
|
|
|
}
|
|
|
+ _hasItBeenTriggeredRecipeComplete = false;
|
|
|
}
|
|
|
|
|
|
|