65 lines
2.7 KiB
C#
65 lines
2.7 KiB
C#
using Aitex.Core.RT.Device;
|
|
using Aitex.Sorter.Common;
|
|
using MECF.Framework.Common.Equipment;
|
|
using MECF.Framework.Common.Fsm;
|
|
using MECF.Framework.Common.Schedulers;
|
|
using MECF.Framework.Common.SubstrateTrackings;
|
|
using MECF.Framework.RT.EquipmentLibrary.LogicUnits;
|
|
|
|
namespace Mainframe.LLs
|
|
{
|
|
public abstract class LoadLockModuleBase : ModuleFsmDevice, ITransferTarget, IModuleDevice
|
|
{
|
|
private int _slot = 1;
|
|
|
|
public LoadLockModuleBase(int slot)
|
|
{
|
|
_slot = slot;
|
|
}
|
|
|
|
public override bool Initialize()
|
|
{
|
|
WaferManager.Instance.SubscribeLocation(Module, _slot);
|
|
|
|
return base.Initialize();
|
|
}
|
|
|
|
public abstract bool IsIdle { get; }
|
|
|
|
//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 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 CheckReadyForMap(ModuleName robot, Hand blade, out string reason);
|
|
public abstract bool CheckSlitValveClosed();
|
|
|
|
public abstract bool CheckLiftUp();
|
|
public abstract bool CheckLiftDown();
|
|
public abstract bool CheckTrayClamped();
|
|
public abstract bool CheckTrayUnClamped();
|
|
public abstract bool CheckWaferClamped();
|
|
public abstract bool CheckWaferUnClamped();
|
|
public abstract bool CheckWaferPlaced();
|
|
public abstract bool CheckTrayPlaced();
|
|
|
|
|
|
public abstract int InvokeCooling(int time);
|
|
public abstract int InvokeVent();
|
|
public abstract int InvokePump();
|
|
public abstract int InvokePurge(params object[] objs);
|
|
public abstract int InvokeGroupWaferTray();
|
|
public abstract int InvokeSeparateWaferTray();
|
|
|
|
public abstract bool CheckAcked(int entityTaskToken);
|
|
}
|
|
}
|