TransferModule.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. namespace Venus_RT.Modules
  7. {
  8. public class TransferModule
  9. {
  10. protected SchedulerEfemRobot _efemRobot = new SchedulerEfemRobot();
  11. protected SchedulerLoadPort _lp1 = new SchedulerLoadPort(ModuleName.LP1);
  12. protected SchedulerLoadPort _lp2 = new SchedulerLoadPort(ModuleName.LP2);
  13. protected SchedulerAligner _aligner1 = new SchedulerAligner(ModuleName.Aligner1);
  14. protected SchedulerAligner _aligner2 = new SchedulerAligner(ModuleName.Aligner2);
  15. protected SchedulerAligner _cooling1 = new SchedulerAligner(ModuleName.Cooling1);
  16. protected SchedulerAligner _cooling2 = new SchedulerAligner(ModuleName.Cooling2);
  17. protected SchedulerPM _pma = new SchedulerPM(ModuleName.PMA);
  18. protected SchedulerPM _pmb = new SchedulerPM(ModuleName.PMB);
  19. public TransferModule()
  20. {
  21. }
  22. protected SchedulerModule GetModule(string name)
  23. {
  24. switch (ModuleHelper.Converter(name))
  25. {
  26. case ModuleName.LP1:
  27. return _lp1;
  28. case ModuleName.LP2:
  29. return _lp2;
  30. case ModuleName.Aligner1:
  31. return _aligner1;
  32. case ModuleName.Aligner2:
  33. return _aligner2;
  34. case ModuleName.Cooling1:
  35. return _cooling1;
  36. case ModuleName.Cooling2:
  37. return _cooling2;
  38. case ModuleName.EfemRobot:
  39. return _efemRobot;
  40. case ModuleName.PMA:
  41. return _pma;
  42. case ModuleName.PMB:
  43. return _pmb;
  44. }
  45. return null;
  46. }
  47. }
  48. public interface IAutoTransfer
  49. {
  50. bool HasJobRunning
  51. {
  52. get;
  53. }
  54. Result Monitor();
  55. bool CheckAllJobDone();
  56. bool CheckJobJustDone(out string sJobName);
  57. Result Start(params object[] objs);
  58. void Map(string moduleName);
  59. bool CheckRecipeUsedInJob(string pathName);
  60. bool CheckSequenceUsedInJob(string pathName);
  61. void CreateJob(Dictionary<string, object> param);
  62. void AbortJob(string jobName);
  63. void StopJob(string jobName);
  64. void ResumeJob(string jobName);
  65. void PauseJob(string jobName);
  66. void StartJob(string jobName);
  67. void ResetIdlePurgeTime(string module);
  68. void ResetIdleCleanTime(string module);
  69. void Clear();
  70. }
  71. }