TransferModule.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using MECF.Framework.Common.Equipment;
  2. using VirgoRT.Modules.Schedulers;
  3. using VirgoRT.Scheduler;
  4. using Aitex.Core.RT.Routine;
  5. using System.Collections.Generic;
  6. namespace VirgoRT.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. protected SchedulerBuffer _buffer = new SchedulerBuffer(ModuleName.Buffer);
  20. protected SchedulerFlipper _flipper = new SchedulerFlipper(ModuleName.Flipper);
  21. public TransferModule()
  22. {
  23. }
  24. protected SchedulerModule GetModule(string name)
  25. {
  26. switch (ModuleHelper.Converter(name))
  27. {
  28. case ModuleName.LP1:
  29. return _lp1;
  30. case ModuleName.LP2:
  31. return _lp2;
  32. case ModuleName.Aligner1:
  33. return _aligner1;
  34. case ModuleName.Aligner2:
  35. return _aligner2;
  36. case ModuleName.Cooling1:
  37. return _cooling1;
  38. case ModuleName.Cooling2:
  39. return _cooling2;
  40. case ModuleName.EfemRobot:
  41. return _efemRobot;
  42. case ModuleName.PMA:
  43. return _pma;
  44. case ModuleName.PMB:
  45. return _pmb;
  46. case ModuleName.Flipper:
  47. return _flipper;
  48. case ModuleName.Buffer:
  49. return _buffer;
  50. }
  51. return null;
  52. }
  53. }
  54. public interface IAutoTransfer
  55. {
  56. bool HasJobRunning
  57. {
  58. get;
  59. }
  60. bool IsEfemRobotAvavilable
  61. {
  62. get;
  63. }
  64. Result Monitor();
  65. bool CheckAllJobDone();
  66. bool CheckJobJustDone(out string sJobName);
  67. Result Start(params object[] objs);
  68. void Map(string moduleName);
  69. bool CheckRecipeUsedInJob(string pathName);
  70. bool CheckSequenceUsedInJob(string pathName);
  71. void CreateJob(Dictionary<string, object> param);
  72. void AbortJob(string jobName);
  73. void StopJob(string jobName);
  74. void ResumeJob(string jobName);
  75. void PauseJob(string jobName);
  76. void StartJob(string jobName);
  77. void ResetIdlePurgeTime(string module);
  78. void ResetIdleCleanTime(string module);
  79. void Clear();
  80. }
  81. }