From b9110b7ca28fcb67703a4778a805a875d0e9b29f Mon Sep 17 00:00:00 2001 From: lhiven Date: Thu, 9 Oct 2025 09:50:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=85=A7=E7=A7=A6=E5=B7=A5=E7=9A=84?= =?UTF-8?q?=E9=9C=80=E6=B1=82=EF=BC=8C=E4=BC=98=E5=8C=96=E5=8F=96=E6=96=99?= =?UTF-8?q?=E7=9B=98=E5=92=8C=E6=94=BE=E6=96=99=E7=9B=98=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Flow/NormalFlow/StockFlowBase.cs | 14 +- .../Flow/NormalFlow/TakeTrayFlow.cs | 134 ++++++++++-------- 2 files changed, 80 insertions(+), 68 deletions(-) diff --git a/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs b/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs index bed5564..1921e0d 100644 --- a/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs +++ b/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs @@ -285,9 +285,9 @@ namespace Rs.MotionPlat.Flow.NormalFlow public void Up() { - if(CurrentLayer==1) + if(CurrentLayer==0) { - logInfo = $"{GetClassName()} 料仓{StockIndex}已处于第一层,不能再上升"; + logInfo = $"{GetClassName()} 料仓{StockIndex}已处于第{CurrentLayer}层,不能再上升"; MessageQueue.Instance.Warn(logInfo); return; } @@ -311,11 +311,11 @@ namespace Rs.MotionPlat.Flow.NormalFlow Thread.Sleep(500); logInfo = $"{GetClassName()} 料仓{StockIndex}已运动到{CurrentLayer}层,cz:{Ops.GetCurPosition($"StockZ{StockIndex}")}"; MessageQueue.Instance.Insert(logInfo); - if (HasTray()) - { - ClampTray(); - Thread.Sleep(GlobalVar.StepMotorMoveDelayTime); - } + //if (HasTray()) + //{ + // ClampTray(); + // Thread.Sleep(GlobalVar.StepMotorMoveDelayTime); + //} break; } else if (stopwatch.ElapsedMilliseconds > 5000) diff --git a/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs b/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs index d058564..852b5b5 100644 --- a/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs +++ b/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs @@ -25,6 +25,7 @@ namespace Rs.MotionPlat.Flow 到取料盘上方, 等待到取料盘上方, 等待料盘准备就绪, + 到下方取料位, 等待运动到取料位下方, //等待夹磁气缸松开, 取料盘完成抬起, @@ -185,6 +186,8 @@ namespace Rs.MotionPlat.Flow StockManager.CloseTray(fromStockIndex); } AxisPosPrint.PrintTakeTrayXCurrentPos($"已运动到料仓{m_fromTray}取料盘位上方", GetClassName()); + //松开夹爪 + StockManager.OpenTray(fromStockIndex); step = ETakeTrayFlowStep.等待料盘准备就绪; } } @@ -194,6 +197,7 @@ namespace Rs.MotionPlat.Flow } break; + case ETakeTrayFlowStep.等待料盘准备就绪: try { @@ -201,9 +205,9 @@ namespace Rs.MotionPlat.Flow { logInfo = GetClassName() + $"料仓{m_fromTray}料盘准备就绪"; MessageQueue.Instance.Insert(logInfo); - TakeTrayModule.CylinderGoDown(GetClassName()); - stopwatch.Restart(); - step = ETakeTrayFlowStep.等待运动到取料位下方; + + step = ETakeTrayFlowStep.上升一层; + //step = ETakeTrayFlowStep.等待运动到取料位下方; } else { @@ -216,6 +220,26 @@ namespace Rs.MotionPlat.Flow AlarmCollection.SystemExceptionAlarm(ex); } + break; + case ETakeTrayFlowStep.上升一层: + try + { + StockManager.Up(fromStockIndex); + logInfo = GetClassName() + $"料仓{fromTray}上升一层"; + MessageQueue.Instance.Insert(logInfo); + step = ETakeTrayFlowStep.到下方取料位; + } + catch (Exception ex) + { + AlarmCollection.SystemExceptionAlarm(ex); + } + + break; + case ETakeTrayFlowStep.到下方取料位: + { + TakeTrayModule.CylinderGoDown(GetClassName()); + stopwatch.Restart(); + } break; case ETakeTrayFlowStep.等待运动到取料位下方: try @@ -227,10 +251,8 @@ namespace Rs.MotionPlat.Flow stopwatch.Stop(); //打开真空 TakeTrayModule.VacOperation(EIoOperate.Open, GetClassName()); - //松开夹爪 - //StockModule.ClampTrayCylinder(EIoOperate.Open, fromStockIndex,GetClassName()); - StockManager.OpenTray(fromStockIndex); - stopwatch.Restart(); + StockManager.CloseTray(fromStockIndex); + //stopwatch.Restart(); step = ETakeTrayFlowStep.取料盘完成抬起; } else if (stopwatch.ElapsedMilliseconds > 5000) @@ -245,7 +267,7 @@ namespace Rs.MotionPlat.Flow { Msg.ShowError("翻译文件中未找到料盘搬运气缸动位异常"); } - stopwatch.Restart(); + //stopwatch.Restart(); } } catch (Exception ex) @@ -255,17 +277,18 @@ namespace Rs.MotionPlat.Flow break; case ETakeTrayFlowStep.取料盘完成抬起: - try { - TakeTrayModule.CylinderGoUp(GetClassName()); - stopwatch.Restart(); - step = ETakeTrayFlowStep.等待取料盘完成抬起; - } - catch (Exception ex) - { - AlarmCollection.SystemExceptionAlarm(ex); + try + { + TakeTrayModule.CylinderGoUp(GetClassName()); + stopwatch.Restart(); + step = ETakeTrayFlowStep.等待取料盘完成抬起; + } + catch (Exception ex) + { + AlarmCollection.SystemExceptionAlarm(ex); + } } - break; case ETakeTrayFlowStep.等待取料盘完成抬起: try @@ -305,14 +328,29 @@ namespace Rs.MotionPlat.Flow { logInfo = GetClassName() + $"料盘已被抓起 OK"; MessageQueue.Instance.Insert(logInfo); - if (StockManager.GetCurrentLayer(fromStockIndex) == 1) + if (fromTray == ETrayType.Input) { - step = ETakeTrayFlowStep.到放料盘上方; + step = ETakeTrayFlowStep.上料仓拍照处理; } else { - step = ETakeTrayFlowStep.上升一层; + if (placeTrayGrab && GlobalVar.EnableBeforePlaceTrayToOkGrab) + { + step = ETakeTrayFlowStep.放料盘前拍照; + } + else + { + step = ETakeTrayFlowStep.到放料盘上方; + } } + //if (StockManager.GetCurrentLayer(fromStockIndex) == 1) + //{ + // step = ETakeTrayFlowStep.到放料盘上方; + //} + //else + //{ + // step = ETakeTrayFlowStep.上升一层; + //} } else { @@ -320,7 +358,7 @@ namespace Rs.MotionPlat.Flow if (alarmEntity != null) { Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true); - step = ETakeTrayFlowStep.到取料盘上方; + step = ETakeTrayFlowStep.到下方取料位; } else { @@ -334,45 +372,18 @@ namespace Rs.MotionPlat.Flow } break; - case ETakeTrayFlowStep.上升一层: - try - { - StockManager.Up(fromStockIndex); - logInfo = GetClassName() + $"料仓{fromTray}上升一层"; - MessageQueue.Instance.Insert(logInfo); - step = ETakeTrayFlowStep.等待上升一层完成; - } - catch (Exception ex) - { - AlarmCollection.SystemExceptionAlarm(ex); - } - - break; - case ETakeTrayFlowStep.等待上升一层完成: - try - { - if (fromTray == ETrayType.Input) - { - step = ETakeTrayFlowStep.上料仓拍照处理; - } - else - { - if (placeTrayGrab && GlobalVar.EnableBeforePlaceTrayToOkGrab) - { - step = ETakeTrayFlowStep.放料盘前拍照; - } - else - { - step = ETakeTrayFlowStep.到放料盘上方; - } - } - } - catch (Exception ex) - { - AlarmCollection.SystemExceptionAlarm(ex); - } + + //case ETakeTrayFlowStep.等待上升一层完成: + // try + // { + + // } + // catch (Exception ex) + // { + // AlarmCollection.SystemExceptionAlarm(ex); + // } - break; + // break; case ETakeTrayFlowStep.上料仓拍照处理: try { @@ -501,13 +512,14 @@ namespace Rs.MotionPlat.Flow //logInfo = GetClassName() + $"料盘真空关 on"; //MessageQueue.Instance.Insert(logInfo); //Thread.Sleep(100); + //关闭真空吸 + TakeTrayModule.VacOperation(EIoOperate.Close, GetClassName()); if (isNeedGoDown) { StockManager.Down(toStockIndex); } StockManager.CloseTray(toStockIndex); - //关闭真空吸 - TakeTrayModule.VacOperation(EIoOperate.Close, GetClassName()); + step = ETakeTrayFlowStep.放料盘完成后抬起; } else if (stopwatch.ElapsedMilliseconds > 5000)