Browse Source

update 正常Recipe end触发/End Step挂了Sub 则End前触发,End后不触发

jiangjy 1 week ago
parent
commit
b1121cb5da
1 changed files with 14 additions and 27 deletions
  1. 14 27
      Furnace/FurnaceRT/Equipments/PMs/RecipeExecutions/Process.cs

+ 14 - 27
Furnace/FurnaceRT/Equipments/PMs/RecipeExecutions/Process.cs

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