namespace SHARP_CLAS_UI { #region Enum public enum TrayTransferSteps { S0000_WAIT, S1000_MOVE_STAY_POSITION_START, S1100_PICKER_UP, S1110_LIFT_LIMIT_SENSOR_CHECK, S1200_MOVE_STAY_POSITION, S1205_MOVE_STAY_POSITION_CHECK, S1999_MOVE_STAY_POSITION_END, S2000_PICK_TRAY_START, S2100_PICKER_UP, S2110_LIFT_LIMIT_SENSOR_CHECK, S2120_HANDLER_POSITION_CHECK, S2130_LIFT_IN_SENSOR_CHECK, S2200_MOVE_PICK_POSITION, S2205_MOVE_PICK_POSITION_CHECK, S2300_PICKER_DOWN, S2310_VACUUM_ON, S2320_ALIGN_TOP_BACKWARD, S2330_STACKER_BACKWARD, S2340_UNCLAMP, S2350_PICKER_UP, S2360_VACUUM_CHECK, S2370_TRAY_COUNT_SET, S2999_PICK_TRAY_END, S3000_PLACE_TRAY_START, S3100_PICKER_UP, S3110_LIFT_LIMIT_SENSOR_CHECK, S3120_HANDLER_POSITION_CHECK, S3200_MOVE_PLACE_POSITION, S3205_MOVE_PLACE_POSITION_CHECK, s3300_ALIGN_TOP_BACKWARD, s3310_STACKER_BACKWARD, s3320_UNCLAMP, S3330_PICKER_DOWN, S3340_VACUUM_OFF, S3350_PICKER_UP, S3360_VACUUM_CHECK, S3370_TRAY_COUNT_SET, S3999_PLACE_TRAY_END, S4000_PLACE_TRAY_START, S4100_PICKER_UP, S4110_LIFT_LIMIT_SENSOR_CHECK, S4120_HANDLER_POSITION_CHECK, S4200_MOVE_PLACE_POSITION, S4205_MOVE_PLACE_POSITION_CHECK, S4300_ALIGN_TOP_BACKWARD, S4310_STACKER_BACKWARD, S4320_UNCLAMP, S4330_PICKER_DOWN, S4340_VACUUM_OFF, S4350_PICKER_UP, S4360_VACUUM_CHECK, S4370_TRAY_COUNT_SET, S4999_PLACE_TRAY_END, } public enum TrayTransferHomeSteps { S0000_WAIT, S1000_STATUS_CHECK, S1100_LIFT_LIMIT_SENSOR_CHECK, S2000_X_HOME_START, S2100_X_HOME_CHECK, S3000_MOVE_STAY_POSITION, S3100_POSITION_CHECK, S9999_END, } #endregion public abstract class TrayTransfer : Unit { #region Property public Axis MotorX { get { return _motorX; } set { _motorX = value; } } public Picker Picker { get { return _picker; } set { _picker = value; } } public override bool IsHomeComplete { get { return MotorX.PowerOn && MotorX.IsHomed && MotorX.ErrorStop == false && isHomeComplete; } } public override bool IsExist { get { return Picker.IsVacuumSensor; } } #endregion #region Field private Axis _motorX; private Picker _picker; #endregion #region Construct public TrayTransfer(Equipment equipment, MotorAxis motorX, string unitName) : base(equipment, unitName) { MotorX = equipment.Board_Control.Motors[motorX]; Picker = new Picker(equipment); } #endregion } }