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($"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; } } }