12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using Aitex.Core.Common;
- using Aitex.Core.RT.Device;
- using Aitex.Sorter.Common;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.Schedulers;
- using MECF.Framework.Common.SubstrateTrackings;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
- using MECF.Framework.RT.EquipmentLibrary.LogicUnits;
- using MECF.Framework.RT.ModuleLibrary.Commons;
- namespace MECF.Framework.RT.ModuleLibrary.PMModules
- {
- public abstract class PMModuleBase : ModuleFsmDevice, ITransferTarget, IModuleDevice
- {
- private int _slot = 1;
- public PMModuleBase(int slot)
- {
- _slot = slot;
- }
- public override bool Initialize()
- {
- WaferManager.Instance.SubscribeLocation(Module, _slot);
- return base.Initialize();
- }
- public abstract double ChamberPressure { get; }
- public abstract bool CheckAcked(int entityTaskToken);
- //IModuleDevice
- public abstract bool IsReady { get; }
- public abstract bool IsError { get; }
- public abstract bool IsInit { get; }
- public abstract bool Home(out string reason);
- //ITransferTarget
- public abstract bool PrepareTransfer(ModuleName robot, Hand blade, int[] targetSlot, EnumTransferType transferType, out string reason);
- public abstract bool PrepareTransfer(ModuleName robot, Hand blade, int[] targetSlot, EnumTransferType transferType, double temp1, double temp2, bool EanbleCheck, out string reason, EnumDualPM enumDual = EnumDualPM.None);
- public abstract bool TransferHandoff(ModuleName robot, Hand blade, int[] targetSlot, EnumTransferType transferType, out string reason);
- public abstract bool PostTransfer(ModuleName robot, Hand blade, int[] targetSlot, EnumTransferType transferType, out string reason);
- public abstract bool CheckReadyForTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
- public abstract void NoteTransferStart(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
- public abstract void NoteTransferStop(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
- public abstract bool CheckTempReady(double Temp1, double Temp2);
- public abstract bool CheckTransferTempReady(double Temp1, double Temp2);
- //Process
- public abstract bool Process(string recipeName, bool isCleanRecipe, bool withWafer, out string reason);
- //Pump
- public abstract bool PreparePump(out string reason);
- public abstract bool CheckPreparePump();
- public abstract bool SlowPump(int tvPosition, out string reason);
- public abstract bool FastPump(int tvPosition, out string reason);
- public abstract bool TurnOnPump(out string reason);
- public abstract bool CheckPumpIsOn();
- public abstract bool ShutDownPump(out string reason);
- public abstract bool AbortPump();
- //Vent
- public abstract bool PrepareVent(out string reason);
- public abstract bool CheckPrepareVent();
- public abstract bool Vent(out string reason);
- public abstract bool StopVent(out string reason);
- //PreHeat
- public abstract bool InvokePreHeat(double temperature1, double temperature2);
- //Leak check
- //public abstract bool PrepareLeakCheck(out string reason);
- //public abstract bool CheckPrepareLeakCheck();
- //public abstract bool AbortLeakCheck();
- //Slit Valve
- //public abstract bool OpenSlitValve(out string reason);
- //public abstract bool CheckSlitValveOpen();
- public abstract bool CloseSlitValve(out string reason);
- public abstract bool CheckSlitValveClose();
- public abstract bool CheckLiftUp(int _slot);
- public abstract bool CheckLiftDown(int _slot);
- public abstract bool IsPrepareTransferReady(EnumTransferType type, EnumDualPM pos, WaferSize waferSize);
- public abstract void AssertPMReady(string description);
- //Lid
- public abstract bool CheckLidClosed();
- public abstract bool CheckTemp1Alarm(double recipeTemp1);
- public abstract bool CheckTemp2Alarm(double recipeTemp2);
- }
- }
|