public ErrorInfoWithPause ActionRelease() { ErrorInfoWithPause res = null; //Z松开 ThisOutport(EnumOutportName.TopAlignSoftCyLeft).SetOutput(false); ThisOutport(EnumOutportName.TopAlignSoftCyMid).SetOutput(false); ThisOutport(EnumOutportName.TopAlignSoftCyRight).SetOutput(false); while (!AxisTopAlignZClamp.MoveTo(EnumPointAlign.Release, false)) //return DispMotionError(AxisTopAlignZClamp, EnumPointAlign.Release); { res = DispMotionError(AxisTopAlignZClamp, EnumPointAlign.Release); if (res != null) { return(res); } } //顶部松开 while (!AxisTopAlignTop.MoveTo(EnumPointAlign.Release, false)) //return DispMotionError(AxisTopAlignTop, EnumPointAlign.Release); { res = DispMotionError(AxisTopAlignTop, EnumPointAlign.Release); if (res != null) { return(res); } } //底部松开 while (!AxisTopAlignBottom.MoveTo(EnumPointAlign.Release, false)) //return DispMotionError(AxisTopAlignBottom, EnumPointAlign.Release); { res = DispMotionError(AxisTopAlignBottom, EnumPointAlign.Release); if (res != null) { return(res); } } //侧松开 while (!AxisTopAlignSide.MoveTo(EnumPointAlign.Release, false)) //return DispMotionError(AxisTopAlignSide, EnumPointAlign.Release); { res = DispMotionError(AxisTopAlignSide, EnumPointAlign.Release); if (res != null) { return(res); } } TimeClass time = new TimeClass(); time.StartAlarmClock(ClassErrorHandle.TIMEOUT); while (!ThisInport(EnumInportName.TopAlignSoftCySensLeft).status || !ThisInport(EnumInportName.TopAlignSoftCySensMid).status || !ThisInport(EnumInportName.TopAlignSoftCySensRight).status) { System.Threading.Thread.Sleep(1); if (time.TimeOut) //return new ErrorInfoWithPause("柔性气缸不动作。", ErrorLevel.Error); { res = WaitAlarmPause("顶封边定位", "柔性气缸不动作"); if (res != null) { return(res); } time.StartAlarmClock(ClassErrorHandle.TIMEOUT); } } time.StopAlarmClock(); //X走位 AxisTopAlignZClamp.WaitStop(ClassErrorHandle.TIMEOUT); while (!AxisTopAlignXSide.MoveTo(EnumPointX.Idle, false, offset[0])) //return DispMotionError(AxisTopAlignXSide, EnumPointX.Idle); { res = DispMotionError(AxisTopAlignXSide, EnumPointX.Idle); if (res != null) { return(res); } } //AxisTopAlignTop.WaitStop(ClassErrorInfo.TIMEOUT); //AxisTopAlignBottom.WaitStop(ClassErrorInfo.TIMEOUT); //AxisTopAlignSide.WaitStop(ClassErrorInfo.TIMEOUT); for (int i = 0; i < CELLCOUNT; i++) { TopAlignCellVacuums[i].SetOutPortStatus(false); } return(null); }
public ErrorInfoWithPause ActionAlign() { ErrorInfoWithPause res = null; ThisOutport(EnumOutportName.TopAlignSoftCyLeft).SetOutput(true); ThisOutport(EnumOutportName.TopAlignSoftCyMid).SetOutput(true); ThisOutport(EnumOutportName.TopAlignSoftCyRight).SetOutput(true); //侧定位 double offsetTemp = 0; double mainlenprod, mainlencali; offsetTemp = ClassCommonSetting.SysParam.CurrentProductParam.CellDataSpec.CellWidth.Mean - ClassCommonSetting.SysParam.Products[CALIBPROD].CellDataSpec.CellWidth.Mean; offsetTemp /= 2; while (!AxisTopAlignSide.MoveTo(EnumPointAlign.Clamp, false, -offsetTemp)) //return DispMotionError(AxisTopAlignSide, EnumPointAlign.Clamp); { res = DispMotionError(AxisTopAlignSide, EnumPointAlign.Clamp); if (res != null) { return(res); } } //底部定位 mainlenprod = ClassCommonSetting.SysParam.CurrentProductParam.CellDataSpec.CellLength.Mean - ClassCommonSetting.SysParam.CurrentProductParam.TopSealHeight; mainlencali = ClassCommonSetting.SysParam.Products[CALIBPROD].CellDataSpec.CellLength.Mean - ClassCommonSetting.SysParam.Products[CALIBPROD].TopSealHeight; offsetTemp = -1 * (mainlenprod - mainlencali); while (!AxisTopAlignBottom.MoveTo(EnumPointAlign.Clamp, false, offsetTemp)) //return DispMotionError(AxisTopAlignBottom, EnumPointAlign.Clamp); { res = DispMotionError(AxisTopAlignBottom, EnumPointAlign.Clamp); if (res != null) { return(res); } } //Z松开 while (!AxisTopAlignZClamp.MoveTo(EnumPointAlign.Release, false)) //return DispMotionError(AxisTopAlignZClamp, EnumPointAlign.Release); { res = DispMotionError(AxisTopAlignZClamp, EnumPointAlign.Release); if (res != null) { return(res); } } //顶部定位 if (!(ClassWorkFlow.Instance.IsGRR || ClassCommonSetting.SysParam.CurrentProductParam.ClampDisable)) { while (!AxisTopAlignTop.MoveTo(EnumPointAlign.Clamp)) //return DispMotionError(AxisTopAlignTop, EnumPointAlign.Clamp); { res = DispMotionError(AxisTopAlignTop, EnumPointAlign.Clamp); if (res != null) { return(res); } } } //X走位 while (!AxisTopAlignXSide.MoveTo(EnumPointX.Idle, true, offset[0])) //return DispMotionError(AxisTopAlignXSide, EnumPointX.Idle); { res = DispMotionError(AxisTopAlignXSide, EnumPointX.Idle); if (res != null) { return(res); } } //double zoffset = 0; //if (ClassCommonSetting.SysParam.CurrentProductParam.BackSideUp) // zoffset = ClassCommonSetting.SysParam.CurrentProductParam.TopHeight; //if (!AxisTopAlignZClamp.MoveTo(EnumPointAlign.Clamp, true, zoffset - 1)) // return DispMotionError(AxisTopAlignZClamp, EnumPointAlign.Clamp); AxisTopAlignBottom.WaitStop(ClassErrorHandle.TIMEOUT); if (ClassWorkFlow.Instance.WorkMode != EnumWorkMode.空跑) { for (int i = 0; i < CELLCOUNT; i++) { if (TopAlignDataStations[i].CellData != null) { TopAlignCellVacuums[i].SetOutPortStatus(true); } } } //Check vacuum //ErrorInfoWithPause temp; //temp = CheckVacuumStatus(); //if (temp != null) return temp; return(null); }