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); }
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); }