IEfemBase.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Aitex.Core.Common;
  7. using Aitex.Core.RT.Event;
  8. using Aitex.Sorter.Common;
  9. using MECF.Framework.Common.Device.Bases;
  10. using MECF.Framework.Common.Equipment;
  11. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts;
  12. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.TDK;
  13. namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Efems
  14. {
  15. public interface IEfemBase
  16. {
  17. }
  18. public interface IEfemController
  19. {
  20. //efem
  21. event Action<string/*ModuleName*/, EventLevel, string/*message*/> AlarmGenerated;
  22. bool IsInitialized { get; }
  23. void Initialize();
  24. void Terminate();
  25. bool AlarmIsTripped();
  26. bool IsOperable();
  27. bool CheckIsBusy(ModuleName module);
  28. bool Home(out string reason);
  29. bool QueryWaferPresence(out string reason);
  30. //loadport
  31. event Action<string/*ModuleName*/> CarrierArrived;
  32. event Action<string/*ModuleName*/> CarrierRemoved;
  33. event Action<string/*ModuleName*/, string /*message*/> CarrierPresenceStateError;
  34. event Action<string/*ModuleName*/, bool/*present*/> CarrierPresenceStateChanged;
  35. event Action<string/*ModuleName*/> CarrierDoorClosed;
  36. event Action<string/*ModuleName*/> CarrierDoorOpened;
  37. event Action<string/*ModuleName*/> E84HandOffStart;
  38. event Action<string/*ModuleName*/> E84HandOffComplete;
  39. bool HomeLoadPort(string lp, out string reason);
  40. bool LoadPortClearAlarm(string lp, out string reason);
  41. bool UnclampCarrier(string lp, out string reason);
  42. bool ClampCarrier(string lp, out string reason);
  43. bool MoveCarrierPort(string lp, string position, out string reason);
  44. bool OpenCarrierDoor(string lp, out string reason);
  45. bool OpenDoorAndMapCarrier(string lp, out string slotMap, out string reason);
  46. bool CloseCarrierDoor(string lp, out string reason);
  47. bool GetLoadPortStatus(string lp, out LoadportCassetteState cassetteState, out FoupClampState clampState, out FoupDockState dockState, out FoupDoorState doorState, out string reason);
  48. bool MapCarrier(string lp, out string slotMap, out string reason);
  49. bool QueryMapResult(string lp, out string reason, bool mapByRobot = true);
  50. //carrier ID
  51. bool ReadCarrierId(string lp, out string carrierId, out string reason);
  52. //aligner
  53. bool HomeWaferAligner(out string reason);
  54. bool AlignWafer(double angle, out string reason);
  55. bool AlignerMapWaferPresence(out string slotMap, out string reason);
  56. //robot
  57. bool HomeAllAxes(out string reason);
  58. bool QueryRobotWaferPresence(out string slotMap, out string reason);
  59. bool GetTwoWafers(ModuleName chamber, int slot, out string reason);
  60. bool PutTwoWafers(ModuleName chamber, int slot, out string reason);
  61. bool GetWafer(ModuleName chamber, int slot, Hand hand, out string reason);
  62. bool PutWafer(ModuleName chamber, int slot, Hand hand, out string reason);
  63. bool MoveToReadyGet(ModuleName chamber, int slot, Hand hand, out string reason);
  64. bool MoveToReadyPut(ModuleName chamber, int slot, Hand hand, out string reason);
  65. //signal tower
  66. bool SetSignalLight(LightType type, TowerLightStatus state, out string reason);
  67. [Obsolete]
  68. bool SetLoadPortLight(ModuleName chamber, Indicator light, IndicatorState state);
  69. bool SetLoadPortLight(ModuleName chamber, IndicatorType lightType, IndicatorState state, out string reason);
  70. bool SetE84Available(string lp, out string reason);
  71. bool SetE84Unavailable(string lp, out string reason);
  72. }
  73. }