using System; namespace SHARP_CLAS_UI { #region Enum public enum LoaderReverseStageSteps { S0000_WAIT, S1000_PANEL_LOAD_START, S1100_HANDLER1_POSITION_CHECK, S1110_HANDLER2_POSITION_CHECK, S1200_MOVE_Z_UP_POSITION, S1205_Z_POSITION_CHECK, S1210_MOVE_R_DEG_180, S1215_R_POSITION_CHECK, S1220_MOVE_Z_DOWN, S1225_Z_POSITION_CHECK, S1230_PANEL_EXIST_CHECK, S1999_PANEL_LOAD_END, S2000_PANEL_UNLOAD_START, S2100_HANDLER1_POSITION_CHECK, S2110_HANDLER2_POSITION_CHECK, S2200_MOVE_Z_UP, S2205_Z_POSITION_CHECK, S2210_MOVE_R_DEG_0, S2215_R_POSITION_CHECK, S2220_MOVE_Z_DOWN, S2225_Z_POSITION_CHECK, S2300_PLACE_START, S2310_PLACE_WAIT, S2999_PANEL_UNLOAD_END, } public enum UnloaderReverseStageSteps { S0000_WAIT, S1000_PICK_AOI_STAGE_START, S1100_HANDLER_1_POSITION_CHECK, S1110_HANDLER_2_POSITION_CHECK, S1200_MOVE_Z_UP_POSITION, S1205_Z_POSITION_CHECK, S1210_MOVE_R_DEG_0, S1215_R_POSITION_CHECK, S1220_MOVE_Z_DOWN, S1225_Z_POSITION_CHECK, S1300_PICK_START, S1310_PICK_WAIT, S1999_PICK_AOI_STAGE_END, S2000_PANEL_UNLOAD_START, S2100_STAY_POSITION_CHECK, S2110_HANDLER_1_POSITION_CHECK, S2120_HANDLER_2_POSITION_CHECK, S2200_MOVE_Z_UP_POSITION, S2205_Z_POSITION_CHECK, S2210_MOVE_R_DEG_180, S2215_R_POSITION_CHECK, S2220_MOVE_Z_DOWN, S2225_Z_POSITION_CHECK, S2230_PANEL_EXIST_CHECK, S2999_PANEL_UNLOAD_END, } public enum ReverseStageHomeSteps { S0000_WAIT, S1000_STATUS_CHECK, S2000_Z_HOME_START, S2100_Z_HOME_CHECK, S2200_R_HOME_START, S2300_R_HOME_CHECK, S3000_R_MOVE_180_DEG, S3100_R_POSITION_CHECK, S3200_Z_MOVE_DOWN_POSITION, S3300_Z_POSITION_CHECK, S9999_END, } #endregion public abstract class ReverseStage : Unit { #region Property public Axis MotorZ1 { get { return _motorZ1; } set { _motorZ1 = value; } } public Axis MotorR1 { get { return _motorR1; } set { _motorR1 = value; } } public Axis MotorZ2 { get { return _motorZ2; } set { _motorZ2 = value; } } public Axis MotorR2 { get { return _motorR2; } set { _motorR2 = value; } } public VacuumStageCh1 Stage1 { get { return _stage1; } set { _stage1 = value; } } public VacuumStageCh1 Stage2 { get { return _stage2; } set { _stage2 = value; } } public abstract Panel_Info Panel1 { get; set; } public abstract Panel_Info Panel2 { get; set; } public override bool IsHomeComplete { get { if(isHomeComplete && MotorZ1.IsHomed && MotorR1.IsHomed && MotorZ2.IsHomed && MotorR2.IsHomed) { return true; } else { return false; } } } public override bool IsExist { get { if(Stage1.IsExist || Stage2.IsExist) { return true; } else { return false; } } } #endregion #region Field private Axis _motorZ1; private Axis _motorR1; private Axis _motorZ2; private Axis _motorR2; private VacuumStageCh1 _stage1; private VacuumStageCh1 _stage2; #endregion #region Construct public ReverseStage(Equipment equipment, MotorAxis motorZ1, MotorAxis motorR1, MotorAxis motorZ2, MotorAxis motorR2, string unitName) : base(equipment, unitName) { MotorZ1 = equipment.Board_Control.Motors[motorZ1]; MotorR1 = equipment.Board_Control.Motors[motorR1]; MotorZ2 = equipment.Board_Control.Motors[motorZ2]; MotorR2 = equipment.Board_Control.Motors[motorR2]; Stage1 = new VacuumStageCh1(equipment); Stage2 = new VacuumStageCh1(equipment); } #endregion } }