using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using AR; namespace Project { public partial class FMain { void _BUTTON_START() { if (PUB.sm.Step == eSMStep.RUN) { //아무것도 하지 않는다 PUB.log.Add("START button is not available during operation"); } else if (PUB.sm.Step == eSMStep.IDLE) //일반대기상태 { if (DIO.isVacOKL() > 0) { DIO.SetBuzzer(true); PUB.popup.setMessage("PICKER ITEM DETECT\nItem detected in PICKER\nPress [Cancel Work] to DROP item and remove it."); return; } else if (DIO.getCartSize(1) == eCartSize.None) { DIO.SetBuzzer(true); PUB.popup.setMessage("Cart is not installed in loader"); return; } else if (DIO.GetIOInput(eDIName.PORTC_LIM_DN) == true && DIO.GetIOInput(eDIName.PORTC_DET_UP) == true) { //하단리밋과, 자재감지가 동시에 들어오면 overload 이다 DIO.SetBuzzer(true); PUB.popup.setMessage("Too many reels are loaded in the loader\n" + "Bottom limit sensor and top reel detection sensor are both active"); return; } //else if (Util_DO.getCartSize(0) == eCartSize.None && Util_DO.getCartSize(2) == eCartSize.None) //{ // Util_DO.SetBuzzer(true); // Pub.popup.setMessage("언로더에 카트가 장착되지 않았습니다"); // return; //} Func_start_job_select(); } else if (PUB.sm.Step == eSMStep.WAITSTART) //시작대기상태 { DIO.SetRoomLight(true); //새로시작하면 포트 얼라인을 해제 해준다 PUB.flag.set(eVarBool.FG_RDY_PORT_PL, false, "SW_START"); PUB.flag.set(eVarBool.FG_RDY_PORT_PC, false, "SW_START"); PUB.flag.set(eVarBool.FG_RDY_PORT_PR, false, "SW_START"); VAR.BOOL[eVarBool.FG_WAIT_INFOSELECTCLOSE] = false; //언로더 체크작업은 항상 다시 시작한다 if (PUB.Result.UnloaderSeq > 1) PUB.Result.UnloaderSeq = 1; //팝업메세지가 사라지도록 한다 PUB.popup.needClose = true; PUB.sm.SetNewStep(eSMStep.RUN); PUB.log.Add("[User pause] released => Work continues"); } else { //string msg = "SYSTEM {0}\n[RESET] 버튼을 누른 후 다시 시도하세요"; //msg = string.Format(msg, PUB.sm.Step); //PUB.popup.setMessage(msg); PUB.log.AddE($"Press [RESET] button and try again"); } } } }