|
@@ -65,6 +65,32 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
EV.Subscribe(new EventItem("Event", PM1RecipeStepEnd, PM1RecipeStepEnd));
|
|
EV.Subscribe(new EventItem("Event", PM1RecipeStepEnd, PM1RecipeStepEnd));
|
|
|
EV.Subscribe(new EventItem("Event", PM1RecipeFailed, PM1RecipeFailed));
|
|
EV.Subscribe(new EventItem("Event", PM1RecipeFailed, PM1RecipeFailed));
|
|
|
|
|
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.RecipeAbnormalEnd, $"RecipeAbnormalEnd"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.AlarmConditionTriggerReset, $"AlarmConditionTriggerReset"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.AlarmConditionTriggerEnd, $"AlarmConditionTriggerEnd"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.AlarmConditionTriggerHold, $"AlarmConditionTriggerHold"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.AlarmConditionTriggerJumpStep, $"AlarmConditionTriggerJumpStep"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.AlarmConditionTriggerCallAlarmRecipe, $"AlarmConditionTriggerCallAlarmRecipe"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.AlarmConditionTriggerCallAbortRecipe, $"AlarmConditionTriggerCallAbortRecipe"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.LeakCheckTriggerReset, $"LeakCheckTriggerReset"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.LeakCheckTriggerEnd, $"LeakCheckTriggerEnd"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.LeakCheckTriggerHold, $"LeakCheckTriggerHold"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.LeakCheckTriggerJumpStep, $"LeakCheckTriggerJumpStep"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.LeakCheckTriggerCallAlarmRecipe, $"LeakCheckTriggerCallAlarmRecipe"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.LeakCheckTriggerCallAbortRecipe, $"LeakCheckTriggerCallAbortRecipe"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.ManualTriggerRecipeHold, $"ManualTriggerRecipeHold"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.ManualTriggerRecipeRelease, $"ManualTriggerRecipeRelease"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.ManualTriggerRecipeSkip, $"ManualTriggerRecipeSkip"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.ManualTriggerRecipeJump, $"ManualTriggerRecipeJump"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.ManualTriggerRecipeAbort, $"ManualTriggerRecipeAbort"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.RecipeTriggerReset, $"RecipeTriggerReset"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.RecipeTriggerEnd, $"RecipeTriggerEnd"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.RecipeTriggerHold, $"RecipeTriggerHold"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.RecipeTriggerLeakCheck, $"RecipeTriggerLeakCheck"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.RecipeTriggerJumpStep, $"RecipeTriggerJumpStep"));
|
|
|
|
|
+ EV.Subscribe(new EventItem("Event", UniversalEvents.RecipeTriggerCallSubRecipe, $"RecipeTriggerCallSubRecipe"));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
//EV.Subscribe(new EventItem("Event", PM2RecipeStart, PM2RecipeStart));
|
|
//EV.Subscribe(new EventItem("Event", PM2RecipeStart, PM2RecipeStart));
|
|
|
//EV.Subscribe(new EventItem("Event", PM2RecipeComplete, PM2RecipeComplete));
|
|
//EV.Subscribe(new EventItem("Event", PM2RecipeComplete, PM2RecipeComplete));
|
|
|
//EV.Subscribe(new EventItem("Event", PM2RecipeStepStart, PM2RecipeStepStart));
|
|
//EV.Subscribe(new EventItem("Event", PM2RecipeStepStart, PM2RecipeStepStart));
|
|
@@ -122,16 +148,17 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
{DVIDName.StationName, module},
|
|
{DVIDName.StationName, module},
|
|
|
- {"ProcessWaferIdList", _fdcwaferList},
|
|
|
|
|
- {"ProcessCarrierIDList", _fdccridlst},
|
|
|
|
|
- {"ProcessLotIdList", _fdcLotIds},
|
|
|
|
|
|
|
+ {DataVariables.ProcessWaferIdList, module},
|
|
|
|
|
+ {DataVariables.ProcessWaferIdList, _fdcwaferList},
|
|
|
|
|
+ {DataVariables.ProcessCarrierIDList, _fdccridlst},
|
|
|
|
|
+ {DataVariables.ProcessLotIdList, _fdcLotIds},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void RecipeFailed(string module, string recipeName)
|
|
public void RecipeFailed(string module, string recipeName)
|
|
|
{
|
|
{
|
|
|
ModuleName moduleName = ModuleHelper.Converter(module);
|
|
ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
- EV.Notify(PMRecipeFailed[moduleName], new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ EV.Notify(PMRecipeFailed[moduleName], new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
{DVIDName.StationName, module},
|
|
{DVIDName.StationName, module},
|
|
@@ -186,16 +213,16 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
{DVIDName.StationName, module},
|
|
{DVIDName.StationName, module},
|
|
|
- {"ProcessWaferIdList", _fdcwaferList},
|
|
|
|
|
- {"ProcessCarrierIDList", _fdccridlst},
|
|
|
|
|
- {"ProcessLotIdList", _fdcLotIds},
|
|
|
|
|
|
|
+ {DataVariables.ProcessWaferIdList, _fdcwaferList},
|
|
|
|
|
+ {DataVariables.ProcessCarrierIDList, _fdccridlst},
|
|
|
|
|
+ {DataVariables.ProcessLotIdList, _fdcLotIds},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void RecipeStepEnd(string module, string recipeName, int stepNumber)
|
|
public void RecipeStepEnd(string module, string recipeName, int stepNumber)
|
|
|
{
|
|
{
|
|
|
ModuleName moduleName = ModuleHelper.Converter(module);
|
|
ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
- EV.Notify(PMRecipeStepEnd[moduleName], new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ EV.Notify(PMRecipeStepEnd[moduleName], new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
{DVIDName.StationName, module},
|
|
{DVIDName.StationName, module},
|
|
@@ -206,104 +233,253 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
public void RecipeStepStart(string module, string recipeName, int stepNumber)
|
|
public void RecipeStepStart(string module, string recipeName, int stepNumber)
|
|
|
{
|
|
{
|
|
|
ModuleName moduleName = ModuleHelper.Converter(module);
|
|
ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
- EV.Notify(PMRecipeStepStart[moduleName], new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ EV.Notify(PMRecipeStepStart[moduleName], new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
{DVIDName.StationName, module},
|
|
{DVIDName.StationName, module},
|
|
|
{DVIDName.RecipeStepNumber, (stepNumber+1).ToString()},
|
|
{DVIDName.RecipeStepNumber, (stepNumber+1).ToString()},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
+ #region 子事件上报
|
|
|
|
|
|
|
|
|
|
+ public void AlarmConditionTriggerReset(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ EV.Notify(UniversalEvents.AlarmConditionTriggerReset, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void AlarmConditionTriggerEnd(string module, string recipeName, int stepNumber)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.AlarmConditionTriggerEnd, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void AlarmConditionTriggerHold(string module, string recipeName, int stepNumber)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.AlarmConditionTriggerHold, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void AlarmConditionTriggerJumpStep(string module, string recipeName, int stepNumber, int stepId)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.AlarmConditionTriggerJumpStep, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DataVariables.StepId, stepId},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void AlarmConditionTriggerCallAlarmRecipe(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.AlarmConditionTriggerCallAlarmRecipe, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void AlarmConditionTriggerCallAbortRecipe(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.AlarmConditionTriggerCallAbortRecipe, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- public void RecipeHold(string module, string recipeName, string recipeStep)
|
|
|
|
|
|
|
+ public void LeakCheckTriggerReset(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RecipeHold, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.LeakCheckTriggerReset, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void LeakCheckTriggerEnd(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.LeakCheckTriggerEnd, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {"RecID", recipeName},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- public void RecipeRelease(string module, string recipeName, string recipeStep)
|
|
|
|
|
|
|
+ public void LeakCheckTriggerHold(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RecipeRelease, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.LeakCheckTriggerHold, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- public void RecipeStepSkip(string module, string recipeName, string recipeStep)
|
|
|
|
|
|
|
+ public void LeakCheckTriggerJumpStep(string module, string recipeName, int stepNumber, int stepId)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RecipeStepSkip, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.LeakCheckTriggerJumpStep, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DataVariables.StepId, stepId},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void RecipeStop(string module, string recipeName, string recipeStep)
|
|
|
|
|
|
|
+ public void LeakCheckTriggerCallAlarmRecipe(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RecipeStop, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.LeakCheckTriggerCallAlarmRecipe, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void RecipeJumpStep(string module, string recipeName, string recipeStep, string jumpStpeId)
|
|
|
|
|
|
|
+ public void LeakCheckTriggerCallAbortRecipe(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RecipeJumpStep, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.LeakCheckTriggerCallAbortRecipe, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
- {DataName.StepId.ToString(), jumpStpeId},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- public void RecipeAbort(string module, string recipeName, string recipeStep)
|
|
|
|
|
|
|
+ public void ManualTriggerRecipeHold(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RecipeAbort, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.ManualTriggerRecipeHold, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void RecipeJumpEnd(string module, string recipeName, string recipeStep, string jumpStpeId)
|
|
|
|
|
|
|
+ public void ManualTriggerRecipeRelease(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RecipeJumpEnd, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.ManualTriggerRecipeRelease, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void ManualTriggerRecipeSkip(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.ManualTriggerRecipeSkip, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void ManualTriggerRecipeJump(string module, string recipeName, int stepNumber, int stepId)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.ManualTriggerRecipeJump, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DataVariables.StepId, stepId},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void ManualTriggerRecipeAbort(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.ManualTriggerRecipeAbort, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void RecipeTriggerReset(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.RecipeTriggerReset, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void RecipeTriggerEnd(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.RecipeTriggerEnd, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
- {DataName.StepId.ToString(), jumpStpeId},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void RecipeCallAlarmRecipe(string module, string recipeName, string recipeStep, string otherRecipeName)
|
|
|
|
|
|
|
+ public void RecipeTriggerHold(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
|
|
+ {
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.RecipeTriggerHold, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName},
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ public void RecipeTriggerLeakCheck(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.CallAlarmRecipe, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.RecipeTriggerLeakCheck, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
- {DataName.CallRecipeID.ToString(), otherRecipeName},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- public void RecipeCallAbortRecipe(string module, string recipeName, string recipeStep, string otherRecipeName)
|
|
|
|
|
|
|
+ public void RecipeTriggerJumpStep(string module, string recipeName, int stepNumber, int stepId)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.CallAbortRecipe, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.RecipeTriggerJumpStep, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
- {DataName.CallRecipeID.ToString(), otherRecipeName},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DataVariables.StepId, stepId},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- public void RecipeRunResetRecipe(string module, string recipeName, string recipeStep, string otherRecipeName)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ public void RecipeTriggerCallSubRecipe(string module, string recipeName, int stepNumber, string otherRecipeName)
|
|
|
{
|
|
{
|
|
|
- EV.Notify(UniversalEvents.RunResetRecipe, new SerializableDictionary<string, string>()
|
|
|
|
|
|
|
+ ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
|
|
+ EV.Notify(UniversalEvents.RecipeTriggerCallSubRecipe, new SerializableDictionary<string, object>()
|
|
|
{
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
- {DataName.NewRecipeStepNumber.ToString(), recipeStep},
|
|
|
|
|
- {DataName.CallRecipeID.ToString(), otherRecipeName},
|
|
|
|
|
|
|
+ {DVIDName.RecipeStepNumber, stepNumber.ToString()},
|
|
|
|
|
+ {DVIDName.RecipeName, otherRecipeName},
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
+ public void RecipeAbnormalEnd(string module, string recipeName, int stepNumber)
|
|
|
|
|
+ {
|
|
|
|
|
+ EV.Notify(UniversalEvents.RecipeAbnormalEnd, new SerializableDictionary<string, object>()
|
|
|
|
|
+ {
|
|
|
|
|
+ {DVIDName.RecipeID, recipeName },
|
|
|
|
|
+ { DataVariables.ProcessWaferIdList, ""},
|
|
|
|
|
+ { DataVariables.ProcessCarrierIDList, ""},
|
|
|
|
|
+ { DataVariables.ProcessLotIdList, ""},
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|