using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using UIControl; using AR; namespace Project { public partial class FMain { void _BUTTON_RESET() { //Common processing when RESET button is pressed DIO.SetBuzzer(false); //buzzer off if (PUB.popup.Visible) PUB.popup.needClose = true; if ( hmi1.Scean == HMI.eScean.xmove) hmi1.Scean = UIControl.HMI.eScean.Nomal; PUB.flag.set(eVarBool.FG_KEYENCE_OFFF, false, "USER"); PUB.flag.set(eVarBool.FG_KEYENCE_OFFR, false, "USER"); //Remove popup message if it's a removable message. if (hmi1.HasPopupMenu && hmi1.PopupMenuRequireInput == false) hmi1.DelMenu(); //Alarm clear work (only when motion has error) if (PUB.mot.IsInit && PUB.mot.HasServoAlarm) { PUB.mot.SetAlarmClearOn(); System.Threading.Thread.Sleep(200); PUB.mot.SetAlarmClearOff(); } //If there's no material and sensor doesn't respond but vacuum is on, turn it off if (DIO.isVacOKL() == 0 && PUB.flag.get(eVarBool.FG_PK_ITEMON) == false && DIO.GetIOOutput(eDOName.PICK_VAC1) == false) DIO.SetPickerVac(false, true); //This reset is meaningful in stop and error mode. if (PUB.sm.Step == eSMStep.RUN) { PUB.log.Add("[RESET] button does not work during operation"); } else if (PUB.sm.Step == eSMStep.PAUSE) { //Switch to start waiting state (execution starts when start key is pressed in waiting state) PUB.sm.SetNewStep(eSMStep.WAITSTART); PUB.log.AddAT("Reset Clear System Resume & Pause ON"); } else if (PUB.sm.Step == eSMStep.EMERGENCY) { PUB.popup.setMessage("EMERGENCY RESET\n" + "[Emergency Stop] state requires [System Initialization]\n" + "Execute [Initialize] from the top menu"); PUB.log.Add("RESET button caused transition from EMG situation to IDLE"); PUB.sm.SetNewStep(eSMStep.IDLE); } else if (PUB.sm.Step == eSMStep.ERROR) { PUB.log.Add("RESET button caused transition from ERR situation to IDLE"); PUB.sm.SetNewStep(eSMStep.IDLE); } else if (PUB.sm.Step == eSMStep.WAITSTART) { //No processing even when waiting for start //Pub.log.Add("[RESET] button does not work while waiting for start button"); } else if (PUB.sm.Step == eSMStep.IDLE) { //Pub.log.Add("[RESET] button does not work during standby"); } else { //Pub.log.AddE("REST key button input from undefined state - switching to standby state"); PUB.sm.SetNewStep(eSMStep.IDLE); } } } }