namespace SHARP_CLAS_UI { #region enum public enum PreAlignSteps { S0000_WAIT, //Panel 없는 상태, Paenl Exist 될때까지 대기. S1000_PANEL_LOAD_START, S1100_MOVE_STAY_POSITION, S1110_POSITION_CHECK, S1400_PANEL_EXIST_CHECK, S1999_PANEL_LOAD_END, //Film Judge 대기. S2000_FILM_JUDGE_START, S2100_FILM_JUDGE_CHECK, S2200_PANEL_EMPTY_CHECK, S2999_FILM_JUDGE_END, //Pre Align 대기. S3000_PRE_ALIGN_START, S3100_MOVE_X_BEFORE_POSITION, S3120_X_POSITION_CHECK, S3200_MOVE_Y_BEFORE_POSITION, S3220_Y_POSITION_CHECK, S3300_MOVE_T_BEFORE_POSITION, S3320_T_POSITION_CHECK, S3400_PRE_ALIGN_CHECK, S3999_PRE_ALIGN_END, //Pre Align 완료 후 언로딩. S4000_PANEL_UNLOAD_START, S4100_RESULT_OFFSET_GET, S4100_MOVE_X_UNLOAD_POSITION, S4200_MOVE_Y_UNLOAD_POSITION, S4300_MOVE_T_UNLOAD_POSITION, S4320_POSITION_CHECK, S4400_PANEL_EMPTY_CHECK, S4999_PANEL_UNLOAD_END, } public enum PreAlignHomeSteps { S0000_WAIT, S1000_STATUS_CHECK, S2000_X_HOME_START, S2100_X_HOME_CHECK, S2200_Y_HOME_START, S2300_Y_HOME_CHECK, S2400_T_HOME_START, S2500_T_HOME_CHECK, S3000_MOVE_LOAD_POSITION, S3100_POSITION_CHECK, S9999_END, } #endregion public abstract class PreAlign : Unit { #region Property public Axis MotorX1 { get { return _motorX1; } set { _motorX1 = value; } } public Axis MotorY1 { get { return _motorY1; } set { _motorY1 = value; } } public Axis MotorT1 { get { return _motorT1; } set { _motorT1 = value; } } public Axis MotorX2 { get { return _motorX2; } set { _motorX2 = value; } } public Axis MotorY2 { get { return _motorY2; } set { _motorY2 = value; } } public Axis MotorT2 { get { return _motorT2; } set { _motorT2 = value; } } public VacuumStageCh1 Stage1 { get { return _stage1; } set { _stage1 = value; } } public VacuumStageCh1 Stage2 { get { return _stage2; } set { _stage2 = value; } } public override bool IsHomeComplete { get { return isHomeComplete && _motorX1.IsHomed && _motorY1.IsHomed && _motorT1.IsHomed && _motorX2.IsHomed && _motorY2.IsHomed && _motorT2.IsHomed; } } public override bool IsExist { get { return Stage1.IsVacuumSensor || Stage2.IsVacuumSensor; } } public abstract Panel_Info Panel1 { get; set; } public abstract Panel_Info Panel2 { get; set; } #endregion #region Field private Axis _motorX1; private Axis _motorY1; private Axis _motorT1; private Axis _motorX2; private Axis _motorY2; private Axis _motorT2; private VacuumStageCh1 _stage1; private VacuumStageCh1 _stage2; #endregion #region Construct public PreAlign(Equipment equipment, MotorAxis motorX1, MotorAxis motorY1, MotorAxis motorT1, MotorAxis motorX2, MotorAxis motorY2, MotorAxis motorT2, string unitName = "PreAlign") : base (equipment, unitName) { MotorX1 = equipment.Board_Control.Motors[motorX1]; MotorY1 = equipment.Board_Control.Motors[motorY1]; MotorT1 = equipment.Board_Control.Motors[motorT1]; MotorX2 = equipment.Board_Control.Motors[motorX2]; MotorY2 = equipment.Board_Control.Motors[motorY2]; MotorT2 = equipment.Board_Control.Motors[motorT2]; Stage1 = new VacuumStageCh1(equipment); Stage2 = new VacuumStageCh1(equipment); } #endregion } }