TransferModule.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using MECF.Framework.Common.Equipment;
  2. using Venus_RT.Modules.Schedulers;
  3. using Venus_RT.Scheduler;
  4. using Aitex.Core.RT.Routine;
  5. using System.Collections.Generic;
  6. using Venus_Core;
  7. namespace Venus_RT.Modules
  8. {
  9. public class TransferModule
  10. {
  11. protected SchedulerEfemRobot _efemRobot = new SchedulerEfemRobot();
  12. protected SchedulerTMRobot _tmRobot = null;
  13. //protected SchedulerSETMRobot _setm = null;
  14. protected SchedulerLoadPort _lp1 = new SchedulerLoadPort(ModuleName.LP1);
  15. protected SchedulerLoadPort _lp2 = new SchedulerLoadPort(ModuleName.LP2);
  16. protected SchedulerLoadPort _lp3 = new SchedulerLoadPort(ModuleName.LP3);
  17. protected SchedulerLoadLock _lla = new SchedulerLoadLock(ModuleName.LLA);
  18. protected SchedulerLoadLock _llb = new SchedulerLoadLock(ModuleName.LLB);
  19. protected SchedulerAligner _aligner1 = new SchedulerAligner(ModuleName.Aligner1);
  20. protected SchedulerAligner _aligner2 = new SchedulerAligner(ModuleName.Aligner2);
  21. protected SchedulerAligner _cooling1 = new SchedulerAligner(ModuleName.Cooling1);
  22. protected SchedulerAligner _cooling2 = new SchedulerAligner(ModuleName.Cooling2);
  23. protected SchedulerPM _pma = new SchedulerPM(ModuleName.PMA);
  24. protected SchedulerPM _pmb = new SchedulerPM(ModuleName.PMB);
  25. protected SchedulerPM _pmc = new SchedulerPM(ModuleName.PMC);
  26. protected SchedulerPM _pmd = new SchedulerPM(ModuleName.PMD);
  27. public TransferModule()
  28. {
  29. }
  30. public SchedulerModule GetScheduler(ModuleName module)
  31. {
  32. if (!ModuleHelper.IsInstalled(module))
  33. return null;
  34. switch (module)
  35. {
  36. case ModuleName.LP1:
  37. return _lp1;
  38. case ModuleName.LP2:
  39. return _lp2;
  40. case ModuleName.LP3:
  41. return _lp3;
  42. case ModuleName.Aligner1:
  43. return _aligner1;
  44. case ModuleName.Aligner2:
  45. return _aligner2;
  46. case ModuleName.Cooling1:
  47. return _cooling1;
  48. case ModuleName.Cooling2:
  49. return _cooling2;
  50. case ModuleName.EfemRobot:
  51. return _efemRobot;
  52. case ModuleName.LLA:
  53. return _lla;
  54. case ModuleName.LLB:
  55. return _llb;
  56. case ModuleName.TMRobot:
  57. //switch(RtInstance.ConfigType)
  58. //{
  59. // case ConfigType.VenusSE:
  60. // case ConfigType.VenusDE:
  61. // {
  62. // if (_setm == null)
  63. // _setm = new SchedulerSETMRobot();
  64. // return _setm;
  65. // }
  66. // default:
  67. // {
  68. // if(_tmRobot == null)
  69. // _tmRobot = new SchedulerTMRobot();
  70. // return _tmRobot;
  71. // }
  72. //}
  73. if (_tmRobot == null)
  74. _tmRobot = new SchedulerTMRobot();
  75. return _tmRobot;
  76. case ModuleName.PMA:
  77. return _pma;
  78. case ModuleName.PMB:
  79. return _pmb;
  80. case ModuleName.PMC:
  81. return _pmc;
  82. case ModuleName.PMD:
  83. return _pmd;
  84. }
  85. return null;
  86. }
  87. }
  88. public interface IAutoTransfer
  89. {
  90. bool HasJobRunning
  91. {
  92. get;
  93. }
  94. Result Monitor();
  95. bool CheckAllJobDone();
  96. bool CheckJobJustDone(out string sJobName);
  97. Result Start(params object[] objs);
  98. void Map(string moduleName);
  99. bool CheckRecipeUsedInJob(string pathName);
  100. bool CheckSequenceUsedInJob(string pathName);
  101. void CreateJob(Dictionary<string, object> param);
  102. void AbortJob(string jobName);
  103. void StopJob(string jobName);
  104. void ResumeJob(string jobName);
  105. void PauseJob(string jobName);
  106. void StartJob(string jobName);
  107. void ResetIdlePurgeTime(string module);
  108. void ResetIdleCleanTime(string module);
  109. void Clear();
  110. }
  111. }