From 56b5b6630b30e6b53cfd1d7cb1be0e1d220003a1 Mon Sep 17 00:00:00 2001 From: lhiven <2366881222@qq.com> Date: Wed, 27 Dec 2023 14:38:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=96=E6=94=BE=E6=96=99?= =?UTF-8?q?=E7=9C=9F=E7=A9=BA=E5=BC=80=E5=85=B3=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Commom/SourceHelper.cs | 23 ++++ Rs.SkyLine/Commom/VacManager.cs | 30 +++-- Rs.SkyLine/Entitys/TransitNozzleManager.cs | 4 +- Rs.SkyLine/Flow/AlarmConstID.cs | 15 +++ Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs | 114 +++++++++--------- Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs | 97 ++++++++++----- .../Flow/SubFlow/WarningSuckerNgFlow.cs | 6 +- Rs.SkyLine/Program.cs | 2 +- Rs.SkyLine/Rs.SkyLine.csproj | 1 + 9 files changed, 186 insertions(+), 106 deletions(-) create mode 100644 Rs.SkyLine/Commom/SourceHelper.cs diff --git a/Rs.SkyLine/Commom/SourceHelper.cs b/Rs.SkyLine/Commom/SourceHelper.cs new file mode 100644 index 0000000..1b6cc1d --- /dev/null +++ b/Rs.SkyLine/Commom/SourceHelper.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Rs.MotionPlat.Commom +{ + public static class SourceHelper + { + public static int GetLineNum() + { + System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true); + return st.GetFrame(0).GetFileLineNumber(); + } + + public static string GetCurSourceFileName() + { + System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true); + return st.GetFrame(0).GetFileName(); + } + } +} diff --git a/Rs.SkyLine/Commom/VacManager.cs b/Rs.SkyLine/Commom/VacManager.cs index 91565b3..78ac145 100644 --- a/Rs.SkyLine/Commom/VacManager.cs +++ b/Rs.SkyLine/Commom/VacManager.cs @@ -70,7 +70,7 @@ namespace Rs.MotionPlat.Commom /// /// /// - public static void DischargeVacBreak(EVacOperator eOperator, params int[] indexes) + public static void DischargeVacBreak(EVacOperator eOperator, bool needSleep, params int[] indexes) { if (indexes.Length > 0) { @@ -88,12 +88,14 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { - Thread.Sleep(GlobalVar.LoadNozzleOpenVacSuctionDelaytime); + if (needSleep) + Thread.Sleep(GlobalVar.LoadNozzleOpenVacSuctionDelaytime); MessageQueue.Instance.Insert($"打开排料{string.Join(",", indexes)}号吸嘴真空破"); } else { - Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); + if (needSleep) + Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); MessageQueue.Instance.Insert($"关闭排料{string.Join(",", indexes)}号吸嘴真空破"); } } @@ -140,7 +142,7 @@ namespace Rs.MotionPlat.Commom /// /// /// - public static void TurnoverTrayVacBreak(EVacOperator eOperator, params int[] indexes) + public static void TurnoverTrayVacBreak(EVacOperator eOperator,bool bNeedSleep, params int[] indexes) { if (indexes.Length > 0) { @@ -158,12 +160,14 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { - Thread.Sleep(GlobalVar.TurnoverTrayOpenVacBreakDelaytime); + if (bNeedSleep) + Thread.Sleep(GlobalVar.TurnoverTrayOpenVacBreakDelaytime); MessageQueue.Instance.Insert($"打开周转盘{indexes.ToJoinString()}号穴位真空破"); } else { - Thread.Sleep(GlobalVar.TurnoverTrayCloseVacBreakDelaytime); + if (bNeedSleep) + Thread.Sleep(GlobalVar.TurnoverTrayCloseVacBreakDelaytime); MessageQueue.Instance.Insert($"关闭周转盘{indexes.ToJoinString()}号穴位真空破"); } } @@ -174,7 +178,7 @@ namespace Rs.MotionPlat.Commom /// /// /// - public static void TransitNozzleVacSuction(EVacOperator eOperator, params int[] indexes) + public static void TransitNozzleVacSuction(EVacOperator eOperator, bool bNeedSleep, params int[] indexes) { if (indexes.Length > 0) { @@ -192,12 +196,14 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { + if(bNeedSleep) Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacSuctionDelaytime); MessageQueue.Instance.Insert($"打开周转吸嘴{string.Join(",", indexes)}号真空吸"); } else { - Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacSuctionDelaytime); + if (bNeedSleep) + Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacSuctionDelaytime); MessageQueue.Instance.Insert($"关闭周转吸嘴{string.Join(",", indexes)}号真空吸"); } } @@ -208,7 +214,7 @@ namespace Rs.MotionPlat.Commom /// /// /// - public static void TransitNozzleVacBreak(EVacOperator eOperator, params int[] indexes) + public static void TransitNozzleVacBreak(EVacOperator eOperator,bool bNeedSleep, params int[] indexes) { if (indexes.Length > 0) { @@ -226,12 +232,14 @@ namespace Rs.MotionPlat.Commom if (eOperator == EVacOperator.Open) { - Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacBreakDelaytime); + if (bNeedSleep) + Thread.Sleep(GlobalVar.TurnoverNozzleOpenVacBreakDelaytime); MessageQueue.Instance.Insert($"打开周转吸嘴{string.Join(",", indexes)}号真空破"); } else { - Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacBreakDelaytime); + if (bNeedSleep) + Thread.Sleep(GlobalVar.TurnoverNozzleCloseVacBreakDelaytime); MessageQueue.Instance.Insert($"关闭周转吸嘴{string.Join(",", indexes)}号真空破"); } } diff --git a/Rs.SkyLine/Entitys/TransitNozzleManager.cs b/Rs.SkyLine/Entitys/TransitNozzleManager.cs index af697ce..0072859 100644 --- a/Rs.SkyLine/Entitys/TransitNozzleManager.cs +++ b/Rs.SkyLine/Entitys/TransitNozzleManager.cs @@ -157,7 +157,7 @@ namespace Rs.MotionPlat.Commom /// public void OpenBreak() { - VacManager.TransitNozzleVacBreak(EVacOperator.Open, NozzleIndex); + VacManager.TransitNozzleVacBreak(EVacOperator.Open, true,NozzleIndex); } /// @@ -165,7 +165,7 @@ namespace Rs.MotionPlat.Commom /// public void CloseBreak() { - VacManager.TransitNozzleVacBreak(EVacOperator.Open, NozzleIndex); + VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, NozzleIndex); } } } diff --git a/Rs.SkyLine/Flow/AlarmConstID.cs b/Rs.SkyLine/Flow/AlarmConstID.cs index fa8fb61..79c91b8 100644 --- a/Rs.SkyLine/Flow/AlarmConstID.cs +++ b/Rs.SkyLine/Flow/AlarmConstID.cs @@ -267,5 +267,20 @@ namespace Rs.MotionPlat.Flow /// 排料吸嘴R9运动异常 /// public const int NozzleR9MoveFailAlarm = 54; + + /// + /// 镭射头检测异常 + /// + public const int LaserCheckFailAlarm = 55; + + /// + /// 轴不在原点报警 + /// + public const int AxisNotAtHomeAlarm = 56; + + /// + /// 测试治具光前异常报警 + /// + public const int TextFixtureFiberAlarm = 57; } } diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index 0c538c0..caadc6f 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -189,7 +189,7 @@ namespace Rs.MotionPlat.Flow { curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Turnover, curTask.FromIndex + 1); curNozzle.FromIndex = curTask.FromIndex; - logInfo = GetClassName()+ $"排料{curNozzle.NozzleIndex}号吸嘴到周转盘{curNozzle.FromIndex + 1}号穴位取料"; + logInfo = GetClassName()+ $"排料{curNozzle.NozzleIndex}号吸嘴到{curTask.FromType.ToString()}盘{curNozzle.FromIndex + 1}号穴位取料"; MessageQueue.Instance.Insert(logInfo); } else if (curTask.FromType == TurnoverType.ToBeTested) @@ -199,12 +199,12 @@ namespace Rs.MotionPlat.Flow { curSlotPoint = TrayPointManager.GetSlotPoint( ETrayType.Input, slot.Index); curNozzle.FromIndex= slot.Index-1; - logInfo =GetClassName()+ $"排料{curNozzle.NozzleIndex}号吸嘴到Input盘{curNozzle.FromIndex+1}号穴位取料"; + logInfo =GetClassName()+ $"排料{curNozzle.NozzleIndex}号吸嘴到{curTask.FromType.ToString()}盘{curNozzle.FromIndex+1}号穴位取料"; MessageQueue.Instance.Insert(logInfo); } else { - logInfo = GetClassName()+ $"检测到Input料盘无料,准备切换料盘"; + logInfo = GetClassName()+ $"{curTask.FromType.ToString()}盘无料,准备切换料盘"; MessageQueue.Instance.Insert(logInfo); TakeTrayFlow.Instance.Take(ETrayType.Input, ETrayType.Empty1, () => @@ -271,7 +271,7 @@ namespace Rs.MotionPlat.Flow } else { - logInfo = "x y r move isn't safe"; + logInfo = "x y r move is unsafe"; Msg.ShowError(logInfo); MessageQueue.Instance.Warn(logInfo); } @@ -293,6 +293,7 @@ namespace Rs.MotionPlat.Flow if (curTask.FromType == TurnoverType.Turnover) { targetPos = GetVacOffsetHeight(reFetchNum) + SysConfigParam.GetValue($"TurnoverNozzle{curNozzle.NozzleIndex}TakeHeight"); + //在周转盘取料,提前把真空吸打开 VacManager.DischargeVacSuction(EVacOperator.Open, false, curNozzle.NozzleIndex); VacManager.TurnoverTrayVacSuction(EVacOperator.Close, false, curNozzle.FromIndex + 1); } @@ -320,8 +321,7 @@ namespace Rs.MotionPlat.Flow { logInfo = GetClassName()+ $"NozzleZ{curNozzle.NozzleIndex} 不在原点,请手动回原后点击确定"; MessageQueue.Instance.Warn(logInfo); - TestCenterMessageBox.Show(1111, logInfo, ETipButton.Ok); - TestCenterMessageBox.WaitResult(1111); + MsgBox.ShowDialog(AlarmConstID.AxisNotAtHomeAlarm, logInfo, ETipButton.Ok); } break; @@ -354,7 +354,7 @@ namespace Rs.MotionPlat.Flow //Ops.On($"周转盘{curTask.FromIndex + 1}号穴位真空破"); //Thread.Sleep(GlobalVar.TurnoverTrayOpenVacBreakDelaytime); //MessageQueue.Instance.Insert(logInfo); - VacManager.TurnoverTrayVacBreak( EVacOperator.Open,curNozzle.FromIndex + 1); + VacManager.TurnoverTrayVacBreak( EVacOperator.Open,true,curNozzle.FromIndex + 1); /*关闭周转盘真空破*/ //logInfo = GetClassName() + $"关闭周转盘{curTask.FromIndex + 1}号穴位真空破"; //Ops.Off($"周转盘{curTask.FromIndex + 1}号穴位真空破"); @@ -377,7 +377,7 @@ namespace Rs.MotionPlat.Flow { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } - logInfo = GetClassName()+ $"取{WitchTrayWitchSlot(curNozzle.FromType, curNozzle.FromIndex)}号穴位产品完成准备抬起"; + logInfo = GetClassName()+ $"取{WitchTrayWitchSlot(curNozzle.FromType, curNozzle.FromIndex)}号穴位产品完成抬起"; MessageQueue.Instance.Insert(logInfo); flowStep = EDischargeFlowStep.等待取料完成抬起; } @@ -393,7 +393,8 @@ namespace Rs.MotionPlat.Flow MessageQueue.Instance.Insert(logInfo); if (curTask.FromType == TurnoverType.Turnover) { - VacManager.TurnoverTrayVacBreak(EVacOperator.Close, curNozzle.FromIndex + 1); + ///周转盘取料抬起后把真空破关闭,这里关破真空不等待 + VacManager.TurnoverTrayVacBreak(EVacOperator.Close,false, curNozzle.FromIndex + 1); } flowStep = EDischargeFlowStep.取料完成后真空检测; } @@ -408,7 +409,7 @@ namespace Rs.MotionPlat.Flow undoTaskNum = LoadAndUnloadTask.Instance.GetTaskNum(curTask.taskMode); if (undoTaskNum > 0 && NozzleManager.GetNozzlesByStatus(ENozzleStatus.IDLE).Count > 0) { - logInfo =GetClassName()+ $"检测到还有{undoTaskNum}条任务未执行,并且有空闲吸嘴,继续取料"; + logInfo =GetClassName()+ $"还有{undoTaskNum}条任务未执行,并且有空闲吸嘴,继续取料"; MessageQueue.Instance.Insert(logInfo); flowStep = EDischargeFlowStep.到取料位上方; } @@ -443,9 +444,8 @@ namespace Rs.MotionPlat.Flow buttonText.Add(ETipButton.No, "结束上料|EndInput"); btnText |= ETipButton.No; } - //alarmInfo = $"{curNozzle.NozzleIndex}排料吸嘴取料{reFetchNum}次失败"; - TestCenterMessageBox.Show(AlarmConstID.TrayTakeFailAlarm, alarmInfo, btnText, buttonText); - SchedulingMessageBox box = TestCenterMessageBox.WaitResult(AlarmConstID.TrayTakeFailAlarm); + //TestCenterMessageBox.Show(AlarmConstID.TrayTakeFailAlarm, alarmInfo, btnText, buttonText); + SchedulingMessageBox box = MsgBox.ShowDialog(AlarmConstID.TrayTakeFailAlarm, alarmInfo, btnText, buttonText);// TestCenterMessageBox.WaitResult(AlarmConstID.TrayTakeFailAlarm); switch (box.Button) { case ETipButton.Retry: @@ -580,17 +580,16 @@ namespace Rs.MotionPlat.Flow case EDischargeFlowStep.到下相机拍照起始位: if (XYCanMove() || GlobalVar.VirtualAxis) { - - logInfo = GetClassName() + $"到下相机拍照起始位"; - MessageQueue.Instance.Insert(logInfo); - if(!GlobalVar.VirtualAxis) - { - ImageProcess.ClearAutoTrigger(); - HikCamera.Instance.SetExposure("locationCamera", GlobalVar.FlyGrabExposureTime); - HikCamera.Instance.SetGain("locationCamera", GlobalVar.FlyGrabGain); - } - if(NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload).Count>0) + if (NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload).Count > 0) { + logInfo = GetClassName() + $"到下相机拍照起始位"; + MessageQueue.Instance.Insert(logInfo); + if(!GlobalVar.VirtualAxis) + { + ImageProcess.ClearAutoTrigger(); + HikCamera.Instance.SetExposure("locationCamera", GlobalVar.FlyGrabExposureTime); + HikCamera.Instance.SetGain("locationCamera", GlobalVar.FlyGrabGain); + } if (NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload)[0].ToType == TurnoverType.Turnover) { needGrabNum = NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload).Count(); @@ -627,6 +626,8 @@ namespace Rs.MotionPlat.Flow } else { + logInfo = GetClassName() + $"检测到排料吸嘴没有需要下料的产品,任务结束回安全位"; + MessageQueue.Instance.Insert(logInfo); flowStep = EDischargeFlowStep.任务结束到安全位; } } @@ -667,7 +668,7 @@ namespace Rs.MotionPlat.Flow } else { - //TestCenterMessageBox.Show(1,$"轴LoadX运动异常,ret={errCode}", ETipButton.Ok); + MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode); } } break; @@ -811,15 +812,15 @@ namespace Rs.MotionPlat.Flow reGrabCount = 0; alarmInfo = $"{string.Join(",", errCodeList)}号排料吸嘴拍照失败"; //DialogResult dr = Msg.ShowQuestion(, System.Windows.Forms.MessageBoxButtons.RetryCancel); - TestCenterMessageBox.Show(AlarmConstID.DownCameraFlyFailAlarm, alarmInfo, ETipButton.Retry | ETipButton.Cancel); - box = TestCenterMessageBox.WaitResult(AlarmConstID.DownCameraFlyFailAlarm); + //TestCenterMessageBox.Show(AlarmConstID.DownCameraFlyFailAlarm, alarmInfo, ETipButton.Retry | ETipButton.Cancel); + box = MsgBox.ShowDialog(AlarmConstID.DownCameraFlyFailAlarm, alarmInfo, ETipButton.Retry | ETipButton.Cancel);// TestCenterMessageBox.WaitResult(AlarmConstID.DownCameraFlyFailAlarm); if (box.Button== ETipButton.Cancel) { flowStep = EDischargeFlowStep.到放料位上方; } else if (box.Button == ETipButton.Retry) { - Thread.Sleep(1000); + Thread.Sleep(500); flowStep = EDischargeFlowStep.到下相机拍照起始位; } } @@ -959,7 +960,7 @@ namespace Rs.MotionPlat.Flow { curNozzle.ToIndex = downSlot.Index - 1; curSlotPoint = TrayPointManager.GetSlotPoint(ETrayType.Multi, downSlot.Index); - logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号到{curNozzle.ToType}盘{curNozzle.ToIndex + 1}号穴位上方"; + logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号到{curNozzle.ToType}盘{curNozzle.ToIndex + 1}号穴位上方,SN={curNozzle.SN}"; MessageQueue.Instance.Insert(logInfo); } else @@ -989,7 +990,7 @@ namespace Rs.MotionPlat.Flow if (curSlotPoint!=null) { nozzleDist = TrayPointManager.GetDistToNozzle1(curNozzle.NozzleIndex); - if(mrs[curNozzle.NozzleIndex - 1].OffsetRow <5 && mrs[curNozzle.NozzleIndex - 1].OffsetCol<5) + if(mrs[curNozzle.NozzleIndex - 1].OffsetRow <3 && mrs[curNozzle.NozzleIndex - 1].OffsetCol<3) { targetX = mrs[curNozzle.NozzleIndex -1].OffsetCol + curSlotPoint.X + nozzleDist.X+ turnoverOffsetPoint.X; targetY = mrs[curNozzle.NozzleIndex- 1].OffsetRow +curSlotPoint.Y + nozzleDist.Y + turnoverOffsetPoint.Y; @@ -999,6 +1000,8 @@ namespace Rs.MotionPlat.Flow targetX = curSlotPoint.X + nozzleDist.X + turnoverOffsetPoint.X; targetY = curSlotPoint.Y + nozzleDist.Y + turnoverOffsetPoint.Y; } + logInfo = $"运动到放料位上方 X:{targetX}Y:{targetY}"; + MessageQueue.Instance.Insert(logInfo); errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed); if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis ) { @@ -1034,7 +1037,7 @@ namespace Rs.MotionPlat.Flow { alarmInfo = "x y r move isn't safe"; MessageQueue.Instance.Warn(alarmInfo); - TestCenterMessageBox.Show(AlarmConstID.MoveUnsafeAlarm, alarmInfo, ETipButton.Ok); + MsgBox.ShowDialog(AlarmConstID.MoveUnsafeAlarm, alarmInfo, ETipButton.Ok); } break; case EDischargeFlowStep.等待到放料位上方: @@ -1052,9 +1055,9 @@ namespace Rs.MotionPlat.Flow while (!exit) { //弹框报警 - alarmInfo = $"检测到{curNozzle.NozzleIndex}吸嘴真空吸异常,可能丢料,请检查吸嘴的状态"; - TestCenterMessageBox.Show(AlarmConstID.DischargeNozzleLostProductAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); - msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.DischargeNozzleLostProductAlarm); + alarmInfo = $"{curNozzle.NozzleIndex}吸嘴真空吸异常,可能丢料,请检查吸嘴的状态"; + //TestCenterMessageBox.Show(AlarmConstID.DischargeNozzleLostProductAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); + msgBox = MsgBox.ShowDialog(AlarmConstID.DischargeNozzleLostProductAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());// TestCenterMessageBox.WaitResult(AlarmConstID.DischargeNozzleLostProductAlarm); switch (msgBox.Button) { case ETipButton.Skip: @@ -1158,9 +1161,7 @@ namespace Rs.MotionPlat.Flow if (curNozzle.ToType == TurnoverType.Turnover) { targetPos = SysConfigParam.GetValue($"TurnoverNozzle{curNozzle.NozzleIndex}TakeHeight"); - /*打开周转盘真空吸*/ - logInfo = GetClassName() + $"打开周转盘{curNozzle.ToIndex + 1}号穴位真空吸"; - MessageQueue.Instance.Insert(logInfo); + /*提前打开周转盘真空吸*/ VacManager.TurnoverTrayVacSuction(EVacOperator.Open, false, curNozzle.ToIndex + 1); } else @@ -1188,39 +1189,39 @@ namespace Rs.MotionPlat.Flow if (curNozzle.ToType == TurnoverType.Turnover) { /*关闭排料吸嘴真空吸*/ - logInfo = GetClassName() + $"关闭{curNozzle.NozzleIndex}号排料吸嘴真空吸"; - MessageQueue.Instance.Insert(logInfo); + //logInfo = GetClassName() + $"关闭{curNozzle.NozzleIndex}号排料吸嘴真空吸"; + //MessageQueue.Instance.Insert(logInfo); //Ops.Off($"{curNozzle.NozzleIndex}号吸嘴真空吸电磁阀");//关闭真空 //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); - VacManager.DischargeVacSuction(EVacOperator.Close, true, curNozzle.NozzleIndex); + VacManager.DischargeVacSuction(EVacOperator.Close, false, curNozzle.NozzleIndex); /*打开排料吸嘴真空破*/ - logInfo = GetClassName() + $"打开{curNozzle.NozzleIndex}号排料吸嘴真空破"; - MessageQueue.Instance.Insert(logInfo); + //logInfo = GetClassName() + $"打开{curNozzle.NozzleIndex}号排料吸嘴真空破"; + //MessageQueue.Instance.Insert(logInfo); //Ops.On($"{curNozzle.NozzleIndex}号吸嘴真空破电磁阀"); //Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); - VacManager.DischargeVacBreak(EVacOperator.Open, curNozzle.NozzleIndex); + VacManager.DischargeVacBreak(EVacOperator.Open, true,curNozzle.NozzleIndex); flowStep = EDischargeFlowStep.到放料关破真空位; } else { /*关闭排料吸嘴真空吸*/ - logInfo = GetClassName() + $"关闭{curNozzle.NozzleIndex}号排料吸嘴真空吸"; - MessageQueue.Instance.Insert(logInfo); + //logInfo = GetClassName() + $"关闭{curNozzle.NozzleIndex}号排料吸嘴真空吸"; + //MessageQueue.Instance.Insert(logInfo); //Ops.Off($"{curNozzle.NozzleIndex}号吸嘴真空吸电磁阀"); //Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime); - VacManager.DischargeVacSuction(EVacOperator.Close,true, curNozzle.NozzleIndex); + VacManager.DischargeVacSuction(EVacOperator.Close,false, curNozzle.NozzleIndex); /*打开排料吸嘴真空破*/ - logInfo = GetClassName() + $"打开{curNozzle.NozzleIndex}号排料吸嘴真空破"; - MessageQueue.Instance.Insert(logInfo); + //logInfo = GetClassName() + $"打开{curNozzle.NozzleIndex}号排料吸嘴真空破"; + //MessageQueue.Instance.Insert(logInfo); //Ops.On($"{curNozzle.NozzleIndex}号吸嘴真空破电磁阀"); //Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime); - VacManager.DischargeVacBreak(EVacOperator.Open, curNozzle.NozzleIndex); + VacManager.DischargeVacBreak(EVacOperator.Open,true, curNozzle.NozzleIndex); /*关闭排料吸嘴真空破*/ - logInfo = GetClassName() + $"关闭{curNozzle.NozzleIndex}号排料吸嘴真空破"; - MessageQueue.Instance.Insert(logInfo); + //logInfo = GetClassName() + $"关闭{curNozzle.NozzleIndex}号排料吸嘴真空破"; + //MessageQueue.Instance.Insert(logInfo); //Ops.Off($"{curNozzle.NozzleIndex}号吸嘴真空破电磁阀"); //Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); - VacManager.DischargeVacBreak(EVacOperator.Close, curNozzle.NozzleIndex); + VacManager.DischargeVacBreak(EVacOperator.Close,false, curNozzle.NozzleIndex); flowStep = EDischargeFlowStep.放料完成抬起; } } @@ -1245,7 +1246,7 @@ namespace Rs.MotionPlat.Flow /*关闭排料吸嘴真空破*/ //Ops.Off($"{curNozzle.NozzleIndex}号吸嘴真空破电磁阀"); //Thread.Sleep(GlobalVar.LoadNozzleCloseVacBreakDelaytime); - VacManager.DischargeVacBreak(EVacOperator.Close, curNozzle.NozzleIndex); + VacManager.DischargeVacBreak(EVacOperator.Close,false,curNozzle.NozzleIndex); logInfo = GetClassName() + $"关闭排料{curNozzle.NozzleIndex}号吸嘴真空破"; MessageQueue.Instance.Insert(logInfo); flowStep = EDischargeFlowStep.放料完成抬起; @@ -1287,8 +1288,8 @@ namespace Rs.MotionPlat.Flow //粘料报警,提示用户粘料,移动到安全位,或者点击跳过 alarmInfo = $"排料{curNozzle.NozzleIndex}号吸嘴可能粘料,请查看吸嘴状态后处理"; MessageQueue.Instance.Warn(GetClassName()+ alarmInfo); - TestCenterMessageBox.Show(AlarmConstID.NozzleTackinessAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); - msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.NozzleTackinessAlarm); + //TestCenterMessageBox.Show(AlarmConstID.NozzleTackinessAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); + msgBox = MsgBox.ShowDialog(AlarmConstID.NozzleTackinessAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());// TestCenterMessageBox.WaitResult(AlarmConstID.NozzleTackinessAlarm); switch (msgBox.Button) { case ETipButton.Skip: @@ -1350,8 +1351,8 @@ namespace Rs.MotionPlat.Flow { alarmInfo = $"周转盘{curNozzle.ToIndex + 1}号穴位真空吸异常"; MessageQueue.Instance.Warn(GetClassName() + alarmInfo); - TestCenterMessageBox.Show(AlarmConstID.TurnoverDumpFailAlarm, alarmInfo, ETipButton.Retry | ETipButton.Skip | ETipButton.Yes, buttons); - msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverDumpFailAlarm); + //TestCenterMessageBox.Show(AlarmConstID.TurnoverDumpFailAlarm, alarmInfo, ETipButton.Retry | ETipButton.Skip | ETipButton.Yes, buttons); + msgBox = MsgBox.ShowDialog(AlarmConstID.TurnoverDumpFailAlarm, alarmInfo, ETipButton.Retry | ETipButton.Skip | ETipButton.Yes, buttons);// TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverDumpFailAlarm); if (msgBox != null) { switch (msgBox.Button) @@ -1598,7 +1599,6 @@ namespace Rs.MotionPlat.Flow break; case EDischargeFlowStep.任务结束到安全位: - errCode = AxisControl.LoadX.MovePos(SysConfigParam.GetValue("LoadXStartPos"), GlobalVar.WholeSpeed); if(errCode== ErrorCode.Ok || GlobalVar.VirtualAxis) { diff --git a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs index 905d832..f6627bf 100644 --- a/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/TurnoverFlow.cs @@ -235,10 +235,10 @@ namespace Rs.MotionPlat.Flow bool exit = false; while (!exit) { - alarmInfo = GetClassName() + $"周转盘{string.Join(",", untestSlots.Select(s => s.Index))}号穴位异常"; - TestCenterMessageBox.Show(AlarmConstID.TurnoverTakeFailAlarm, alarmInfo, MessageButtonManager.GetRetry_Skip_MoveToSafe_Button(), - MessageButtonManager.GetRetry_Skip_MoveToSafe_ButtonText()); - msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverTakeFailAlarm); + alarmInfo = GetClassName() + $"周转盘{string.Join(",", untestSlots.Select(s => s.Index))}号穴位取料异常"; + //TestCenterMessageBox.Show(AlarmConstID.TurnoverTakeFailAlarm, alarmInfo, MessageButtonManager.GetRetry_Skip_MoveToSafe_Button(), + //MessageButtonManager.GetRetry_Skip_MoveToSafe_ButtonText()); + msgBox = MsgBox.ShowDialog(AlarmConstID.TurnoverTakeFailAlarm, alarmInfo, MessageButtonManager.GetRetry_Skip_MoveToSafe_Button(),MessageButtonManager.GetRetry_Skip_MoveToSafe_ButtonText());// TestCenterMessageBox.WaitResult(AlarmConstID.TurnoverTakeFailAlarm); switch (msgBox.Button) { case ETipButton.Retry: @@ -297,10 +297,19 @@ namespace Rs.MotionPlat.Flow break; case ETurnoverFlowStep.到周转盘下方取料位1: - targetPos = SysConfigParam.GetValue("TurnoverTakeZ") + GlobalVar.PressLowSpeedOffset; + if(GlobalVar.EnableTwoSpeed) + { + targetPos = SysConfigParam.GetValue("TurnoverTakeZ") + GlobalVar.PressLowSpeedOffset; + } + else + { + targetPos = SysConfigParam.GetValue("TurnoverTakeZ"); + } errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis) { + /*提前打开周转吸嘴真空吸*/ + VacManager.TransitNozzleVacSuction(EVacOperator.Open, false,undealTasks.Select(t => t.ToIndex + 1).ToArray()); if (GlobalVar.VirtualAxis) { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); @@ -347,17 +356,22 @@ namespace Rs.MotionPlat.Flow logInfo = GetClassName() + $"已运动到周转盘下方取料位2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; MessageQueue.Instance.Insert(logInfo); undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); - /*打开周转吸嘴真空吸*/ - VacManager.TransitNozzleVacSuction(EVacOperator.Open, undealTasks.Select(t => t.ToIndex + 1).ToArray()); /*关闭周转盘真空吸*/ - VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + VacManager.TurnoverTrayVacSuction(EVacOperator.Close, false, undealTasks.Select(t => t.FromIndex + 1).ToArray()); /*打开周转盘真空破*/ - VacManager.TurnoverTrayVacBreak(EVacOperator.Open, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + VacManager.TurnoverTrayVacBreak(EVacOperator.Open, true,undealTasks.Select(t => t.FromIndex + 1).ToArray()); Step = ETurnoverFlowStep.到周转盘取料破真空位; } break; case ETurnoverFlowStep.到周转盘取料破真空位: - targetPos = SysConfigParam.GetValue("TurnoverTakeZ")+GlobalVar.CloseVacOffsetHeight; + if(GlobalVar.EnableTwoSpeed) + { + targetPos = SysConfigParam.GetValue("TurnoverTakeZ") + GlobalVar.CloseVacOffsetHeight; + } + else + { + targetPos = SysConfigParam.GetValue("TurnoverSafeZ"); + } errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis) { @@ -381,7 +395,7 @@ namespace Rs.MotionPlat.Flow MessageQueue.Instance.Insert(logInfo); undealTasks = LoadAndUnloadTask.Instance.GetTurnoverToTestTasks(ETaskDealStatus.Undeal); /*关闭周转盘真空破*/ - VacManager.TurnoverTrayVacBreak(EVacOperator.Close, undealTasks.Select(t => t.FromIndex + 1).ToArray()); + VacManager.TurnoverTrayVacBreak(EVacOperator.Close,false,undealTasks.Select(t => t.FromIndex + 1).ToArray()); Step = ETurnoverFlowStep.周转盘取料完成抬起; } break; @@ -424,6 +438,10 @@ namespace Rs.MotionPlat.Flow GlobalTray.TurnoverTray.ChangeStatus(task.FromIndex + 1, ESlotStatus.NotHave); task.Dealed = true; } + else + { + MessageQueue.Instance.Warn($"周转{task.ToIndex + 1}号吸嘴真空吸检测异常"); + } } hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); if (hasProductNozzles.Count > 0) @@ -505,8 +523,8 @@ namespace Rs.MotionPlat.Flow while (!exit) { alarmInfo = $"周转{loseSlots.ToJoinString()}号吸嘴真空异常丢料,请处理"; - TestCenterMessageBox.Show(AlarmConstID.NozzlesLoseMaterialAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); - msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.NozzlesLoseMaterialAlarm); + //TestCenterMessageBox.Show(AlarmConstID.NozzlesLoseMaterialAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); + msgBox = MsgBox.ShowDialog(AlarmConstID.NozzlesLoseMaterialAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());// TestCenterMessageBox.WaitResult(AlarmConstID.NozzlesLoseMaterialAlarm); switch (msgBox.Button) { case ETipButton.Skip: @@ -515,11 +533,11 @@ namespace Rs.MotionPlat.Flow exit = true; List hasProducts = TransitNozzleManager.Instance.GetHasProductNozzles(); //把吸嘴的真空吸关闭 - VacManager.TransitNozzleVacSuction(EVacOperator.Close, loseSlots.ToArray()); + VacManager.TransitNozzleVacSuction(EVacOperator.Close,false, loseSlots.ToArray()); //打开周转吸嘴的真空破 - VacManager.TransitNozzleVacBreak(EVacOperator.Open, loseSlots.ToArray()); + VacManager.TransitNozzleVacBreak(EVacOperator.Open,true, loseSlots.ToArray()); //关闭周转吸嘴的真空破 - VacManager.TransitNozzleVacBreak(EVacOperator.Close, loseSlots.ToArray()); + VacManager.TransitNozzleVacBreak(EVacOperator.Close,false, loseSlots.ToArray()); foreach(int nozzleIndex in loseSlots) { TransitNozzleManager.Instance.Nozzle(nozzleIndex).Clear(); @@ -566,10 +584,21 @@ namespace Rs.MotionPlat.Flow break; case ETurnoverFlowStep.到测试放料位下方1: - targetPos = SysConfigParam.GetValue("PressDumpZ")+GlobalVar.PressLowSpeedOffset; + if(GlobalVar.EnableTwoSpeed) + { + targetPos = SysConfigParam.GetValue("PressDumpZ") + GlobalVar.PressLowSpeedOffset; + } + else + { + targetPos = SysConfigParam.GetValue("PressDumpZ"); + } errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed); if(errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis ) { + //获取需要放料的吸嘴 + hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); + /*打开测试穴位真空吸*/ + VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); if (GlobalVar.VirtualAxis) { Thread.Sleep(GlobalVar.VirtualAxisMoveTime); @@ -618,13 +647,12 @@ namespace Rs.MotionPlat.Flow logInfo =GetClassName()+ $"已运动到到测试放料位下方2 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}"; MessageQueue.Instance.Insert(logInfo); /*打开测试穴位真空吸*/ - VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + //VacManager.TestTrayVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); /*关闭周转吸头真空吸*/ - VacManager.TransitNozzleVacSuction(EVacOperator.Close, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + VacManager.TransitNozzleVacSuction(EVacOperator.Close, false,hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); /*打开周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); - /*关闭周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Close, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + VacManager.TransitNozzleVacBreak(EVacOperator.Open,true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + Step = ETurnoverFlowStep.测试位放料完成抬起; } break; @@ -649,6 +677,11 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.等待测试位放料完成抬起: if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis) { + //获取需要放料的吸嘴 + hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); + /*关闭周转吸头真空破*/ + VacManager.TransitNozzleVacBreak(EVacOperator.Close, false, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + logInfo = GetClassName()+$"测试位放料完成抬起完成"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.测试位放料完成粘料检测; @@ -658,7 +691,7 @@ namespace Rs.MotionPlat.Flow masticSlots.Clear(); hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); //打开全部吸嘴的真空吸 - VacManager.TransitNozzleVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + VacManager.TransitNozzleVacSuction(EVacOperator.Open,true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); foreach (var nozzle in TransitNozzleManager.Instance.GetHasProductNozzles()) { //nozzle.OpenVac(); @@ -675,8 +708,8 @@ namespace Rs.MotionPlat.Flow { //粘料报警 alarmInfo = $"周转吸头{masticSlots.ToJoinString()}号吸嘴真空异常粘料,请手工处理"; - TestCenterMessageBox.Show(AlarmConstID.NozzlesLoseMaterialAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); - msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.NozzlesLoseMaterialAlarm); + //TestCenterMessageBox.Show(AlarmConstID.NozzleTackinessAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText()); + msgBox = MsgBox.ShowDialog(AlarmConstID.NozzleTackinessAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());// TestCenterMessageBox.WaitResult(AlarmConstID.NozzleTackinessAlarm); switch (msgBox.Button) { case ETipButton.Skip: @@ -729,8 +762,8 @@ namespace Rs.MotionPlat.Flow { alarmInfo = $"测试治具{nozzle.NozzleIndex}号穴位光纤异常,有可能叠料,请处理"; MessageQueue.Instance.Warn(GetClassName() + alarmInfo); - TestCenterMessageBox.Show(AlarmConstID.NozzlesLoseMaterialAlarm, alarmInfo, MessageButtonManager.GetRetry_Skip_MoveToSafe_Button(), MessageButtonManager.GetRetry_Skip_MoveToSafe_ButtonText()); - msgBox = TestCenterMessageBox.WaitResult(AlarmConstID.NozzlesLoseMaterialAlarm); + //TestCenterMessageBox.Show(AlarmConstID.TextFixtureFiberAlarm, alarmInfo, MessageButtonManager.GetRetry_Skip_MoveToSafe_Button(), MessageButtonManager.GetRetry_Skip_MoveToSafe_ButtonText()); + msgBox = MsgBox.ShowDialog(AlarmConstID.TextFixtureFiberAlarm, alarmInfo, MessageButtonManager.GetRetry_Skip_MoveToSafe_Button(), MessageButtonManager.GetRetry_Skip_MoveToSafe_ButtonText());// TestCenterMessageBox.WaitResult(AlarmConstID.TextFixtureFiberAlarm); switch (msgBox.Button) { case ETipButton.Retry: @@ -1197,7 +1230,7 @@ namespace Rs.MotionPlat.Flow undealTasks = LoadAndUnloadTask.Instance.GetTestToTurnoverTasks(ETaskDealStatus.Undeal); int[] indexes = undealTasks.Select(t => t.FromIndex + 1).ToArray(); /*打开周转吸头真空吸*/ - VacManager.TransitNozzleVacSuction(EVacOperator.Open, indexes); + VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, indexes); /*关闭测试穴位真空吸*/ VacManager.TestTrayVacSuction(EVacOperator.Close, indexes); /*打开测试穴位真空破*/ @@ -1481,9 +1514,9 @@ namespace Rs.MotionPlat.Flow /*打开周转盘真空吸*/ VacManager.TurnoverTrayVacSuction(EVacOperator.Open, true, hasProductNozzles.Select(n => n.ToIndex+1).ToArray()); /*关闭周转吸头真空吸*/ - VacManager.TransitNozzleVacSuction( EVacOperator.Close,hasProductNozzles.Select(n=>n.FromIndex + 1).ToArray()); + VacManager.TransitNozzleVacSuction( EVacOperator.Close,true,hasProductNozzles.Select(n=>n.FromIndex + 1).ToArray()); /*打开周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Open, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); + VacManager.TransitNozzleVacBreak(EVacOperator.Open, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); Step = ETurnoverFlowStep.周转盘放料完成抬起1; } break; @@ -1511,7 +1544,7 @@ namespace Rs.MotionPlat.Flow { hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); /*关闭周转吸头真空破*/ - VacManager.TransitNozzleVacBreak(EVacOperator.Close, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); + VacManager.TransitNozzleVacBreak(EVacOperator.Close, true, hasProductNozzles.Select(n => n.FromIndex + 1).ToArray()); logInfo = GetClassName() + $"周转盘放料完成已抬起1"; MessageQueue.Instance.Insert(logInfo); Step = ETurnoverFlowStep.周转盘放料完成抬起2; @@ -1547,7 +1580,7 @@ namespace Rs.MotionPlat.Flow case ETurnoverFlowStep.周转盘放料完成粘料检测: masticSlots.Clear(); hasProductNozzles = TransitNozzleManager.Instance.GetHasProductNozzles(); - VacManager.TransitNozzleVacSuction(EVacOperator.Open, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); + VacManager.TransitNozzleVacSuction(EVacOperator.Open, true, hasProductNozzles.Select(n => n.NozzleIndex).ToArray()); foreach (var nozzle in TransitNozzleManager.Instance.GetHasProductNozzles()) { //nozzle.OpenVac(); diff --git a/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs b/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs index a6d2210..fec3753 100644 --- a/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs +++ b/Rs.SkyLine/Flow/SubFlow/WarningSuckerNgFlow.cs @@ -184,7 +184,7 @@ namespace Rs.MotionPlat.Flow.NgFlow //关闭周转盘真空吸 VacManager.TurnoverTrayVacSuction(EVacOperator.Close, true, exceptionSlotIndex); //打开周转盘这空破 - VacManager.TurnoverTrayVacBreak(EVacOperator.Open, exceptionSlotIndex); + VacManager.TurnoverTrayVacBreak(EVacOperator.Open, true,exceptionSlotIndex); step = EWarningSuckerNgFlowStep.取料完成到安全位; } else @@ -220,7 +220,7 @@ namespace Rs.MotionPlat.Flow.NgFlow logInfo = GetClassName() + "已运动到异常处理位安全位"; MessageQueue.Instance.Insert(logInfo); //关闭周转盘真空破 - VacManager.TurnoverTrayVacBreak(EVacOperator.Close, exceptionSlotIndex); + VacManager.TurnoverTrayVacBreak(EVacOperator.Close,true, exceptionSlotIndex); step = EWarningSuckerNgFlowStep.镭射头检测; } else @@ -262,7 +262,7 @@ namespace Rs.MotionPlat.Flow.NgFlow { TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.Socket); alarmInfo = $"{exceptionTray}盘{exceptionSlotIndex}穴位产品未取出,请人工处理"; - msgBox = MsgBox.ShowDialog(AlarmConstID.TurnoverTakeFailAlarm, alarmInfo, ETipButton.Ok); + msgBox = MsgBox.ShowDialog(AlarmConstID.LaserCheckFailAlarm, alarmInfo, ETipButton.Ok); step = EWarningSuckerNgFlowStep.手动处理后镭射头检测; } else diff --git a/Rs.SkyLine/Program.cs b/Rs.SkyLine/Program.cs index 305b633..b21d69d 100644 --- a/Rs.SkyLine/Program.cs +++ b/Rs.SkyLine/Program.cs @@ -5,6 +5,7 @@ using Rs.MotionPlat.Commom; using Rs.MotionPlat.Flow; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; @@ -24,7 +25,6 @@ namespace Rs.MotionPlat Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new FormIO2()); - Application.Run(new Home()); } } diff --git a/Rs.SkyLine/Rs.SkyLine.csproj b/Rs.SkyLine/Rs.SkyLine.csproj index 1e2e3b7..d84e8ff 100644 --- a/Rs.SkyLine/Rs.SkyLine.csproj +++ b/Rs.SkyLine/Rs.SkyLine.csproj @@ -132,6 +132,7 @@ +