From f6f19d992c56e5942b7ba69be7b181b444115705 Mon Sep 17 00:00:00 2001 From: lhiven Date: Thu, 4 Jul 2024 10:49:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BD=93=E6=8E=92=E6=96=99?= =?UTF-8?q?=E5=88=B0=E5=AE=89=E5=85=A8=E4=BD=8D=E4=B9=8B=E5=90=8E=E6=89=8D?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E4=B8=AD=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs | 217 +++++++++++--------- 1 file changed, 125 insertions(+), 92 deletions(-) diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index 8b3633f..74c0923 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -1285,7 +1285,7 @@ namespace Rs.MotionPlat.Flow else if (curNozzle.ToType == TurnoverType.Multifunction) { //如果吸嘴是1,并且最后一列 - downSlot = GlobalTray.MultiTray.GetSlot(ESlotStatus.NotHave,true); + downSlot = GlobalTray.MultiTray.GetSlot(ESlotStatus.NotHave); #region 为了解决第一个吸嘴到不了最后一列的问题 if (curNozzle.NozzleIndex == 1 && downSlot != null && (downSlot.Column == 7)) { @@ -2067,55 +2067,80 @@ namespace Rs.MotionPlat.Flow //检测一下是否需要换盘 { #region 通知中控排料任务结束 - if (curNozzle.ToType != TurnoverType.Turnover && !GlobalVar.CleanOut) - { - if (TestCenter.Instance.LoadResult()) - { - logInfo = GetClassName() + $"通知中控任务完成"; - MessageQueue.Instance.Insert(logInfo); - LoadAndUnloadTask.Instance.Clear(); - logInfo = GetClassName() + $"任务完成,清除任务"; - MessageQueue.Instance.Insert(logInfo); - MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); - } - } + //if (curNozzle.ToType != TurnoverType.Turnover && !GlobalVar.CleanOut) + //{ + // if (TestCenter.Instance.LoadResult()) + // { + // logInfo = GetClassName() + $"通知中控任务完成"; + // MessageQueue.Instance.Insert(logInfo); + // LoadAndUnloadTask.Instance.Clear(); + // logInfo = GetClassName() + $"任务完成,清除任务"; + // MessageQueue.Instance.Insert(logInfo); + // MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); + // } + //} #endregion + //先运动到安全位,再处理料盘有无 - TraySlot slot = GlobalTray.InputTray.GetSlot(ESlotStatus.Have); - if (slot != null) + targetX = SysConfigParam.GetValue("LoadXStartPos"); + targetY = SysConfigParam.GetValue("LoadYStartPos"); + errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed); + if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) { - targetX = SysConfigParam.GetValue("LoadXStartPos"); - targetY = SysConfigParam.GetValue("LoadYStartPos"); - errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed); + errCode = AxisControl.LoadY.MovePos(targetY, GlobalVar.WholeSpeed); if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) { - errCode = AxisControl.LoadY.MovePos(targetY, GlobalVar.WholeSpeed); - if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) + if (GlobalVar.VirtualAxis) { - if (GlobalVar.VirtualAxis) - { - Thread.Sleep(GlobalVar.VirtualAxisMoveTime); - } - logInfo = GetClassName() + $"排料任务结束到安全位,tx:{targetX},ty:{targetY}"; - MessageQueue.Instance.Insert(logInfo); - flowStep = EDischargeFlowStep.等待任务结束到安全位; - } - else - { - //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode); - alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString()); - AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null); + Thread.Sleep(GlobalVar.VirtualAxisMoveTime); } + logInfo = GetClassName() + $"排料任务结束到安全位,tx:{targetX},ty:{targetY}"; + MessageQueue.Instance.Insert(logInfo); + flowStep = EDischargeFlowStep.等待任务结束到安全位; } else { - //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode); - alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString()); + //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode); + //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadY}", errCode.ToString()); + alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString()); AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null); } } else + { + //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode); + //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadX}", errCode.ToString()); + alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString()); + AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null); + } + } + + break; + case EDischargeFlowStep.等待任务结束到安全位: + if (Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis) + { + PrintXYCurrentPos("轴XY已停止运动,"); + //if (curNozzle.ToType == TurnoverType.Turnover) + { + if(!GlobalVar.CleanOut) + { + if (TestCenter.Instance.LoadResult()) + { + logInfo = GetClassName() + $"通知中控任务完成"; + MessageQueue.Instance.Insert(logInfo); + LoadAndUnloadTask.Instance.Clear(); + logInfo = GetClassName() + $"任务完成,清除任务"; + MessageQueue.Instance.Insert(logInfo); + MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); + } + } + TurnoverFlow.Instance.CanMoveFromTestTrayToTurnoverTray(); + } + logInfo = GetClassName() + $"任务结束已回到安全位"; + MessageQueue.Instance.Insert(logInfo); + TraySlot slot = GlobalTray.InputTray.GetSlot(ESlotStatus.Have); + if (slot == null) { if (Ops.IsOn("2号料仓缺盘光电检测")) { @@ -2138,65 +2163,73 @@ namespace Rs.MotionPlat.Flow }); StockManager.Instance.GetStock(ETrayType.Input).WaitFinished(); } - else - { - targetX = SysConfigParam.GetValue("LoadXStartPos"); - targetY = SysConfigParam.GetValue("LoadYStartPos"); - errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed); - if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) - { - errCode = AxisControl.LoadY.MovePos(targetY, GlobalVar.WholeSpeed); - if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) - { - if (GlobalVar.VirtualAxis) - { - Thread.Sleep(GlobalVar.VirtualAxisMoveTime); - } - logInfo = GetClassName() + $"排料任务结束到安全位,tx:{targetX},ty:{targetY}"; - MessageQueue.Instance.Insert(logInfo); - flowStep = EDischargeFlowStep.等待任务结束到安全位; - } - else - { - //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode); - //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadY}", errCode.ToString()); - alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString()); - AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null); - } - } - else - { - //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode); - //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadX}", errCode.ToString()); - alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString()); - AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null); - } - } - flowStep = EDischargeFlowStep.等待任务结束到安全位; - } - } - - break; - case EDischargeFlowStep.等待任务结束到安全位: - if (Ops.IsStop("LoadX", "LoadY") || GlobalVar.VirtualAxis) - { - PrintXYCurrentPos("轴XY已停止运动,"); - if (curNozzle.ToType == TurnoverType.Turnover) - { - if (TestCenter.Instance.LoadResult()) - { - logInfo = GetClassName() + $"通知中控任务完成"; - MessageQueue.Instance.Insert(logInfo); - LoadAndUnloadTask.Instance.Clear(); - logInfo = GetClassName() + $"任务完成,清除任务"; - MessageQueue.Instance.Insert(logInfo); - MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); - } - TurnoverFlow.Instance.CanMoveFromTestTrayToTurnoverTray(); } - logInfo = GetClassName() + $"任务结束已回到安全位"; - MessageQueue.Instance.Insert(logInfo); flowStep = EDischargeFlowStep.等待任务; + //else + //{ + // if (Ops.IsOn("2号料仓缺盘光电检测")) + // { + // logInfo = GetClassName() + $"{curTask.FromType.ToString()}盘无料,准备切换料盘"; + // MessageQueue.Instance.Insert(logInfo); + // TakeTrayFlow.Instance.Take(ETrayType.Input, ETrayType.Empty1, + // () => + // { + // Task.Run(() => + // { + // StockManager.Instance.GetStock(ETrayType.Input).Load(EStockTrayLoadMode.Whole, null); + // }); + // }, null, + // () => + // { + // Task.Run(() => + // { + // StockManager.Instance.GetStock(ETrayType.Empty1).Unload(EStockTrayUnLoadMode.Whole, null); + // }); + // }); + // StockManager.Instance.GetStock(ETrayType.Input).WaitFinished(); + // } + // else + // { + // targetX = SysConfigParam.GetValue("LoadXStartPos"); + // targetY = SysConfigParam.GetValue("LoadYStartPos"); + // errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed); + // if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) + // { + // errCode = AxisControl.LoadY.MovePos(targetY, GlobalVar.WholeSpeed); + // if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) + // { + // if (GlobalVar.VirtualAxis) + // { + // Thread.Sleep(GlobalVar.VirtualAxisMoveTime); + // } + // logInfo = GetClassName() + $"排料任务结束到安全位,tx:{targetX},ty:{targetY}"; + // MessageQueue.Instance.Insert(logInfo); + // flowStep = EDischargeFlowStep.等待任务结束到安全位; + // } + // else + // { + // //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadY, errCode); + // //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadY}", errCode.ToString()); + // alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString()); + // AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null); + // } + // } + // else + // { + // //MsgBox.ShowAxisAlarmDialog(AxisControl.LoadX, errCode); + // //AlarmMessageBox.ShowDialog(true, ETipButton.Ok, null, AlarmConstID.轴运动异常, $"{AxisAlias.LoadX}", errCode.ToString()); + // alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString()); + // AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null); + // } + // } + // flowStep = EDischargeFlowStep.等待任务结束到安全位; + //} + + + + + + } break; default: