ProcessDefine.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. using System;
  2. using System.Collections.Generic;
  3. //using System.
  4. using Venus_RT.Devices;
  5. using Venus_RT.Modules;
  6. using Aitex.Core.Util;
  7. using Venus_Core;
  8. //#pragma warning disable 0436
  9. namespace Venus_RT.Modules.PMs
  10. {
  11. class ProcessHelper
  12. {
  13. static protected JetPM Chamber;
  14. private Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>> startHelper = new Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>>
  15. {
  16. {"PressureUnitByPressureMode", PressureUnitByPressureMode_Start},
  17. {"PressureUnitByValveMode", PressureUnitByValveMode_Start},
  18. {"TCPUnit", TCPUnit_Start},
  19. {"BiasUnit", BiasUnit_Start},
  20. {"GasControlUnit", GasControlUnit_Start },
  21. {"ESCHVUnit", ESCHVUnit_Start },
  22. {"ProcessKitUnit", ProcessKitUnit_Start },
  23. };
  24. private Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>> checkerHelper = new Dictionary<string, Func<ProcessUnitBase, RecipeStep, RState>>
  25. {
  26. {"PressureUnitByPressureMode", PressureUnitByPressureMode_Check},
  27. {"PressureUnitByValveMode", PressureUnitByValveMode_Check},
  28. {"TCPUnit", TCPUnit_Check},
  29. {"BiasUnit", BiasUnit_Check},
  30. {"GasControlUnit", GasControlUnit_Check},
  31. {"ESCHVUnit", ESCHVUnit_Check},
  32. {"ProcessKitUnit", ProcessKitUnit_Check}
  33. };
  34. public ProcessHelper(JetPM pm)
  35. {
  36. Chamber = pm;
  37. }
  38. static private RState PressureUnitByPressureMode_Start(ProcessUnitBase unit, RecipeStep step)
  39. {
  40. var ProcessUnit = unit as PressureUnitByPressureMode;
  41. if (Chamber.SetPVPressure(ProcessUnit.StartPressure))
  42. {
  43. return RState.Running;
  44. }
  45. return RState.Failed;
  46. }
  47. static private RState PressureUnitByPressureMode_Check(ProcessUnitBase unit, RecipeStep step)
  48. {
  49. var ProcessUnit = unit as PressureUnitByPressureMode;
  50. if(ProcessUnit.EnableRamp)
  51. {
  52. if (Chamber.SetPVPressure(ProcessUnit.StartPressure + (int)((ProcessUnit.TargetPressure - ProcessUnit.StartPressure) * step.RampFactor())))
  53. return RState.Running;
  54. else
  55. return RState.Failed;
  56. }
  57. if(step.Type == StepType.Stable && Chamber.ChamberPressure == ProcessUnit.StartPressure)
  58. {
  59. return RState.End;
  60. }
  61. return RState.Running;
  62. }
  63. static private RState PressureUnitByValveMode_Start(ProcessUnitBase unit, RecipeStep step)
  64. {
  65. var ProcessUnit = unit as PressureUnitByValveMode;
  66. if(Chamber.SetPVPostion(ProcessUnit.StartPosition))
  67. {
  68. return RState.Running;
  69. }
  70. return RState.Failed;
  71. }
  72. static private RState PressureUnitByValveMode_Check(ProcessUnitBase unit, RecipeStep step)
  73. {
  74. var ProcessUnit = unit as PressureUnitByValveMode;
  75. if(ProcessUnit.EnableRamp)
  76. {
  77. if (Chamber.SetPVPostion(ProcessUnit.StartPosition + (int)((ProcessUnit.TargetPosition - ProcessUnit.StartPosition) * step.RampFactor())))
  78. return RState.Running;
  79. else
  80. return RState.Failed;
  81. }
  82. return RState.Running;
  83. }
  84. static private RState TCPUnit_Start(ProcessUnitBase unit, RecipeStep step)
  85. {
  86. var ProcessUnit = unit as TCPUnit;
  87. return RState.Running;
  88. }
  89. static private RState TCPUnit_Check(ProcessUnitBase unit, RecipeStep step)
  90. {
  91. var ProcessUnit = unit as TCPUnit;
  92. return RState.Running;
  93. }
  94. static private RState BiasUnit_Start(ProcessUnitBase unit, RecipeStep step)
  95. {
  96. var ProcessUnit = unit as BiasUnit;
  97. return RState.Running;
  98. }
  99. static private RState BiasUnit_Check(ProcessUnitBase unit, RecipeStep step)
  100. {
  101. var ProcessUnit = unit as BiasUnit;
  102. return RState.Running;
  103. }
  104. static private RState GasControlUnit_Start(ProcessUnitBase unit, RecipeStep step)
  105. {
  106. var ProcessUnit = unit as GasControlUnit;
  107. return RState.Running;
  108. }
  109. static private RState GasControlUnit_Check(ProcessUnitBase unit, RecipeStep step)
  110. {
  111. var ProcessUnit = unit as GasControlUnit;
  112. return RState.Running;
  113. }
  114. static private RState ESCHVUnit_Start(ProcessUnitBase unit, RecipeStep step)
  115. {
  116. var ProcessUnit = unit as ESCHVUnit;
  117. return RState.Running;
  118. }
  119. static private RState ESCHVUnit_Check(ProcessUnitBase unit, RecipeStep step)
  120. {
  121. var ProcessUnit = unit as ESCHVUnit;
  122. return RState.Running;
  123. }
  124. static private RState ProcessKitUnit_Start(ProcessUnitBase unit, RecipeStep step)
  125. {
  126. var ProcessUnit = unit as ProcessKitUnit;
  127. return RState.Running;
  128. }
  129. static private RState ProcessKitUnit_Check(ProcessUnitBase unit, RecipeStep step)
  130. {
  131. var ProcessUnit = unit as ProcessKitUnit;
  132. return RState.Running;
  133. }
  134. public bool LoadMethods(ProcessUnitBase unit)
  135. {
  136. var className = unit.GetType().Name;
  137. if(startHelper.ContainsKey(className) && checkerHelper.ContainsKey(className))
  138. {
  139. unit.starter = startHelper[className];
  140. unit.checker = checkerHelper[className];
  141. return true;
  142. }
  143. return false;
  144. }
  145. }
  146. public class test
  147. {
  148. test()
  149. {
  150. //PressureUnitByPressureMode mode = new PressureUnitByPressureMode();
  151. //mode.Start();
  152. //mode.Run();
  153. //mode.
  154. }
  155. }
  156. }