Esempio n. 1
0
        public fn VtmRobot_Unload_PMC()
        {
            if (!isAcceptRun())
            {
                return(fn.busy);
            }
            nPreSeqNo = nSeqNo;

            //PMC Load시 Low핸드 고정
            VtmRobot_Arm = CJ_Controls.Communication.QuadraVTM4.ARM.LOWER;

            switch (nSeqNo)
            {
            case 0:
                break;

            case 10:
                break;

            case 20:
                if (GlobalSeq.autoRun.prcVTM.Unload_PMC(VtmRobot_Arm) != fn.success)
                {
                    return(fn.busy);
                }
                break;

            case 50:
                nSeqNo = 0;
                return(fn.success);
            }

            //wrong seq check
            if (nSeqNo > 10000)
            {
                //error occur
                return(fn.err);
            }
            nSeqNo++;

            return(fn.busy);
        }
Esempio n. 2
0
        public fn VtmRobot_Place_Loadlock()
        {
            if (!isAcceptRun())
            {
                return(fn.busy);
            }
            nPreSeqNo = nSeqNo;

            //VTM은 Up핸드로만 LL플레이스 고정
            VtmRobot_Arm = CJ_Controls.Communication.QuadraVTM4.ARM.LOWER;
            VtmStage stage = GlobalVariable.manualInfo.mnlStageVTM; //매뉴얼에서 선택한 Stage 연결

            switch (nSeqNo)
            {
            case 0:
                break;

            case 10:
                //BD Place -> Unload
                //GlobalSeq.autoRun.procLoadlock.Move(MotionPos.Pos1);
                GlobalSeq.autoRun.procLoadlock.MoveExit((int)MotionPos.Pos1);
                break;

            case 15:
                //if (GlobalSeq.autoRun.procLoadlock.CheckComplete() != fn.success) return fn.busy;
                if (GlobalSeq.autoRun.procLoadlock.CheckMoveDone((int)MotionPos.Pos1) == false)
                {
                    return(fn.busy);
                }
                break;

            case 20:
                GlobalSeq.autoRun.prcVTM.MoveRobot(stage, VtmRobot_Arm);
                break;

            case 30:
                if (GlobalSeq.autoRun.prcVTM.CheckComplete() != fn.success)
                {
                    return(fn.busy);
                }
                break;

            case 35:
                GlobalSeq.autoRun.prcVTM.MoveRobot(stage, VtmRobot_Arm, true);
                break;

            case 40:
                if (GlobalSeq.autoRun.prcVTM.CheckComplete() != fn.success)
                {
                    return(fn.busy);
                }
                break;

            case 50:
                nSeqNo = 0;
                return(fn.success);
            }

            //wrong seq check
            if (nSeqNo > 10000)
            {
                //error occur
                return(fn.err);
            }
            nSeqNo++;

            return(fn.busy);
        }