public fn AtmRobot_Load_Lami() { if (!isAcceptRun()) { return(fn.busy); } nPreSeqNo = nSeqNo; AtmStage stage = GlobalVariable.manualInfo.mnlStageATM; //매뉴얼에서 선택한 Stage 연결 int nSlot = GlobalVariable.manualInfo.nSelectSource; AtmRobot_Arm = (CJ_Controls.Communication.CybogRobot_HTR.ARM)GlobalVariable.manualInfo.SelArmATM; switch (nSeqNo) { case 0: break; case 10: break; case 20: if (GlobalSeq.autoRun.prcATM.Load_Lami(AtmRobot_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 FmRobot_Place_Buffer() { if (!isAcceptRun()) { return(fn.busy); } nPreSeqNo = nSeqNo; FMStage stage = GlobalVariable.manualInfo.mnlStageFM; //매뉴얼에서 선택한 Stage 연결 int nSlot = GlobalVariable.manualInfo.nSelectSource; FmRobot_Arm = (CJ_Controls.Communication.CybogRobot_HTR.ARM)GlobalVariable.manualInfo.SelArmFM; FMStatus fmStatus = FMStatus.BUFFER_UNLOAD; switch (nSeqNo) { case 0: break; case 10: break; case 15: //Door Open Check break; case 20: GlobalSeq.autoRun.prcFM.MoveFmRobot(stage, nSlot, FmRobot_Arm, fmStatus); break; case 30: if (GlobalSeq.autoRun.prcFM.CheckCompl_FM() != fn.success) { return(fn.busy); } break; case 35: GlobalSeq.autoRun.prcFM.MoveFmRobot(stage, nSlot, FmRobot_Arm, fmStatus, true); break; case 40: if (GlobalSeq.autoRun.prcFM.CheckCompl_FM() != 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 FmRobot_Place_LPM() { if (!isAcceptRun()) { return(fn.busy); } nPreSeqNo = nSeqNo; FMStage stage = GlobalVariable.manualInfo.mnlStageFM; //매뉴얼에서 선택한 Stage 연결 int nSlot = GlobalVariable.manualInfo.nSelectSource; FmRobot_Arm = (CJ_Controls.Communication.CybogRobot_HTR.ARM)GlobalVariable.manualInfo.SelArmFM; EFEM Lpm = EFEM.LPMA; FMStatus fmStatus = FMStatus.LPM_UNLOAD; //LPM 구분 switch (stage) { case FMStage.LPMA: Lpm = EFEM.LPMA; break; case FMStage.LPMB: Lpm = EFEM.LPMB; break; case FMStage.LPMC: Lpm = EFEM.LPMC; break; case FMStage.LPMD: Lpm = EFEM.LPMD; break; default: //LPM Index Error return(fn.err); } switch (nSeqNo) { case 0: break; case 10: if (GlobalSeq.autoRun.prcFM.CheckUnload_LPM(Lpm) != fn.success) { return(fn.busy); } break; case 15: //Door Open Check break; case 20: GlobalSeq.autoRun.prcFM.MoveFmRobot(stage, nSlot, FmRobot_Arm, fmStatus); break; case 30: if (GlobalSeq.autoRun.prcFM.CheckCompl_FM() != fn.success) { return(fn.busy); } break; case 35: GlobalSeq.autoRun.prcFM.MoveFmRobot(stage, nSlot, FmRobot_Arm, fmStatus, true); break; case 40: if (GlobalSeq.autoRun.prcFM.CheckCompl_FM() != 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); }