PreProcess.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using Aitex.Core.RT.Routine;
  2. using MECF.Framework.Common.Equipment;
  3. using System;
  4. using Aitex.Core.RT.SCCore;
  5. using FurnaceRT.Equipments.PMs.Routines;
  6. using System.Collections.Generic;
  7. namespace FurnaceRT.Equipments.PMs.RecipeExecutions
  8. {
  9. public class PreProcess : PMBaseRoutine, IRoutine
  10. {
  11. public enum Routine
  12. {
  13. ToReadyProcessState,
  14. Pump,
  15. PinDown,
  16. }
  17. private string _recipeName;
  18. private int _liftTimeout;
  19. private bool _isProcessRecipe;
  20. public PreProcess(ModuleName module, PMModule pm) : base(module, pm)
  21. {
  22. Module = module.ToString();
  23. Name = "PreProcess";
  24. }
  25. public void Init(string recipeName, bool isProcessRecipe = true)
  26. {
  27. _recipeName = recipeName;
  28. _isProcessRecipe = isProcessRecipe;
  29. }
  30. public override Result Start(params object[] objs)
  31. {
  32. RecipeHead recipeHead;
  33. List<RecipeStep> recipeSteps;
  34. Dictionary<int, List<RecipeStep>> abortRecipe;
  35. Dictionary<int, string> abortRecipeName;
  36. Dictionary<int, List<RecipeStep>> subRecipe;
  37. Dictionary<int, string> subRecipeName;
  38. string reason = string.Empty;
  39. if (_isProcessRecipe)
  40. {
  41. if (!RecipeParser.Parse(_recipeName, Module, out recipeHead, out recipeSteps, out reason, "Process"))
  42. {
  43. PMModule.PreprocessStartFailedWarning.Set($"Load process recipe {_recipeName} failed, {reason}");
  44. return Result.FAIL;
  45. }
  46. PMModule.RecipeRunningInfo.MainRecipeName = _recipeName;
  47. PMModule.RecipeRunningInfo.Head = recipeHead;
  48. PMModule.RecipeRunningInfo.RecipeStepList = recipeSteps;
  49. }
  50. Reset();
  51. Notify($"Start");
  52. return Result.RUN;
  53. }
  54. public override Result Monitor()
  55. {
  56. try
  57. {
  58. //ToReadyProcessState((int)Routine.ToReadyProcessState, PMModule, _liftTimeout);
  59. //ExecuteRoutine((int)Routine.Pump, _pumpRoutine);
  60. //MovePinDown((int)Routine.PinDown, PMModule, _liftTimeout);
  61. }
  62. catch (RoutineBreakException)
  63. {
  64. return Result.RUN;
  65. }
  66. catch (RoutineFaildException)
  67. {
  68. return Result.FAIL;
  69. }
  70. return Result.DONE;
  71. }
  72. public override void Abort()
  73. {
  74. }
  75. }
  76. }