diff --git a/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs b/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs index 12e7329..9bceca3 100644 --- a/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs @@ -116,7 +116,7 @@ namespace Rs.MotionPlat.Flow /// /// 最后一次换料的治具编号 /// - private int lastFixtureIndex = 0; + //private int lastFixtureIndex = 0; List checkFixtureList = new List(); public void Init() { @@ -152,13 +152,15 @@ namespace Rs.MotionPlat.Flow // GlobalTray.NgTray.ChangeStatus(ESlotStatus.NotHave); //} //EButtonType button = Msgbox.ShowDialog(EButtonType.Ok | EButtonType.Cancel, "请确认 LOT 信息 信息正确 选择OK 信息错误退出重写 选择Cancel"); - EButtonType button =Msgbox.ShowTipDialog(EButtonType.Ok | EButtonType.Cancel, "请确认 LOT信息\r\n信息正确 选择OK\r\n信息错误退出重写 选择Cancel"); + EButtonType button =Msgbox.ShowTipDialog(EButtonType.Ok | EButtonType.Cancel, $"请确认 LOT信息:{GlobalVar.LotName}\r\n信息正确 选择OK\r\n信息错误退出重写 选择Cancel"); if(button== EButtonType.Ok) { button = Msgbox.ShowTipDialog(EButtonType.Ok | EButtonType.Cancel, "是否清除之前数据?\r\n清除点击OK\r\n不清楚点击Cancel"); if(button== EButtonType.Ok) { - lastFixtureIndex = TestFixtureManager.Instance.GetEnableFixtureList().Select(f => f.Index).Min() - 1; + //lastFixtureIndex = TestFixtureManager.Instance.GetEnableFixtureList().Select(f => f.Index).Min() - 1; + CreateCheckFixtureQueue(6); + //lastFixtureIndex = checkFixtureList[0] - 1; TestFixtureManager.Instance.GetTestFixture(1).ClearData(); TestFixtureManager.Instance.GetTestFixture(2).ClearData(); TestFixtureManager.Instance.GetTestFixture(3).ClearData(); @@ -436,18 +438,23 @@ namespace Rs.MotionPlat.Flow //治具换料 case EDischargeFlowStep.到治具取料等待位: //先去第一个治具拍照位上方等待 - if(TestFixtureManager.Instance.GetTestFixture(lastFixtureIndex+1).Product==null) + //if(TestFixtureManager.Instance.GetTestFixture(lastFixtureIndex+1).Product==null) + if (TestFixtureManager.Instance.GetTestFixture(checkFixtureList[0]).Product == null) { - targetPosition = FixtureManager.GetFixtureGrabPos(lastFixtureIndex + 1); - + //targetPosition = FixtureManager.GetFixtureGrabPos(lastFixtureIndex + 1); + targetPosition = FixtureManager.GetFixtureGrabPos(checkFixtureList[0]); } else { - targetPosition = NozzleManager.GetNozzleToFixturePos(lastFixtureIndex + 1, NozzleManager.GetIdelNozzle().NozzleIndex); - targetPosition.X += TestFixtureManager.Instance.GetTestFixture(lastFixtureIndex + 1).PlaceProductOffsetX; - targetPosition.Y2 += TestFixtureManager.Instance.GetTestFixture(lastFixtureIndex + 1).PlaceProductOffsetY; + //targetPosition = NozzleManager.GetNozzleToFixturePos(lastFixtureIndex + 1, NozzleManager.GetIdelNozzle().NozzleIndex); + //targetPosition.X += TestFixtureManager.Instance.GetTestFixture(lastFixtureIndex + 1).PlaceProductOffsetX; + //targetPosition.Y2 += TestFixtureManager.Instance.GetTestFixture(lastFixtureIndex + 1).PlaceProductOffsetY; + + targetPosition = NozzleManager.GetNozzleToFixturePos(checkFixtureList[0], NozzleManager.GetIdelNozzle().NozzleIndex); + targetPosition.X += TestFixtureManager.Instance.GetTestFixture(checkFixtureList[0]).PlaceProductOffsetX; + targetPosition.Y2 += TestFixtureManager.Instance.GetTestFixture(checkFixtureList[0]).PlaceProductOffsetY; } - if(targetPosition.X-GlobalVar.FixtureSafePosX>50) + if (targetPosition.X-GlobalVar.FixtureSafePosX>50) { DischargeModuleGoSafePosFlow.Instance.GoSafePostion(ESafePosSide.PlaceToFixture); } @@ -463,7 +470,7 @@ namespace Rs.MotionPlat.Flow AxisPosPrint.PrintXY1Y2CurrentPos("轴loadx,loady1,loady2已停止运动,",GetClassName()); if(AxisArrived.LoadXY1Y2IsArrived(targetPosition.X, targetPosition.Y1, targetPosition.Y2)) { - CreateCheckFixtureQueue(); + //CreateCheckFixtureQueue(); AxisPosPrint.PrintXY1Y2CurrentPos("已运动到放料缓冲位,", GetClassName()); flowStep = EDischargeFlowStep.等待治具测试完成换料; } @@ -556,7 +563,9 @@ namespace Rs.MotionPlat.Flow if(needPlaceNozzle!=null) { FixturePlaceFlow.Instance.Place(curFixture.Index, needPlaceNozzle.NozzleIndex); - lastFixtureIndex = curFixture.Index == checkFixtureList.Max() ? checkFixtureList.Min()-1 : curFixture.Index; + CreateCheckFixtureQueue(curFixture.Index); + //lastFixtureIndex = checkFixtureList[0] - 1; + //lastFixtureIndex = curFixture.Index == checkFixtureList.Max() ? checkFixtureList.Min()-1 : curFixture.Index; //lastFixtureIndex = curFixture.Index == 6 ? 0 : curFixture.Index; if (NozzleManager.GetToTestNozzle() != null || (GlobalVar.Clear && TestFixtureManager.Instance.GetHasProuctFixtureCount()>0)) { @@ -841,12 +850,12 @@ namespace Rs.MotionPlat.Flow /// /// 生成检测治具状态的队列 /// - void CreateCheckFixtureQueue() + void CreateCheckFixtureQueue(int lastIndex) { checkFixtureList.Clear(); for (int i = 0; i < 6; i++) { - int number = ((lastFixtureIndex+1) + i - 1) % 6 + 1; + int number = ((lastIndex + 1) + i - 1) % 6 + 1; if(TestFixtureManager.Instance.GetTestFixture(number).Enable) { checkFixtureList.Add(number);