71 lines
1.6 KiB
C#
71 lines
1.6 KiB
C#
|
|
|||
|
using Aitex.Core.RT.Routine;
|
|||
|
using Aitex.Core.RT.SCCore;
|
|||
|
|
|||
|
namespace Mainframe.Aligners
|
|||
|
{
|
|||
|
public class AlignerHomeRoutine : AlignerBaseRoutine
|
|||
|
{
|
|||
|
enum RoutineStep
|
|||
|
{
|
|||
|
ClearAlignerAlarm,
|
|||
|
ResetVar,
|
|||
|
Home,
|
|||
|
MoveToMeasure,
|
|||
|
CheckWafer,
|
|||
|
TimeDelay1,
|
|||
|
}
|
|||
|
|
|||
|
public AlignerHomeRoutine()
|
|||
|
{
|
|||
|
Name = "Home";
|
|||
|
}
|
|||
|
|
|||
|
public override Result Start(params object[] objs)
|
|||
|
{
|
|||
|
Reset();
|
|||
|
|
|||
|
Notify("Start");
|
|||
|
return Result.RUN;
|
|||
|
}
|
|||
|
|
|||
|
public override Result Monitor()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (SC.GetValue<bool>($"System.IsSimulatorMode"))
|
|||
|
{
|
|||
|
TimeDelay((int)RoutineStep.TimeDelay1, 3);
|
|||
|
return Result.DONE;
|
|||
|
}
|
|||
|
|
|||
|
//清除Aligner报警
|
|||
|
AlignerERS((int)RoutineStep.ClearAlignerAlarm, 3);
|
|||
|
|
|||
|
//初始化变量值Reset
|
|||
|
ResetVar((int)RoutineStep.ClearAlignerAlarm);
|
|||
|
|
|||
|
//三轴回原点
|
|||
|
Home((int)RoutineStep.Home, 20);
|
|||
|
|
|||
|
//移动到测量中心
|
|||
|
AlignerMoveToMeasure((int)RoutineStep.MoveToMeasure, 20);
|
|||
|
|
|||
|
//检查是否有Wafer
|
|||
|
CheckHaveWafer((int)RoutineStep.CheckWafer, 10);
|
|||
|
}
|
|||
|
catch (RoutineBreakException)
|
|||
|
{
|
|||
|
return Result.RUN;
|
|||
|
}
|
|||
|
catch (RoutineFaildException)
|
|||
|
{
|
|||
|
return Result.FAIL;
|
|||
|
}
|
|||
|
return Result.DONE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|