From d976a67daff1978c9f7253d854077bc77fd16855 Mon Sep 17 00:00:00 2001 From: lhiven <236881222@qq.com> Date: Fri, 12 Apr 2024 10:02:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AF=E4=BB=B6=E6=89=93=E5=BC=80=E5=90=8E?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=94=B6=E5=88=B0=E6=8E=92=E6=96=99?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=90=8E=E5=A2=9E=E5=8A=A0=E6=8E=92=E6=96=99?= =?UTF-8?q?=E5=90=B8=E5=98=B4=E3=80=81=E5=91=A8=E8=BD=AC=E5=90=B8=E5=98=B4?= =?UTF-8?q?=E3=80=81=E5=91=A8=E8=BD=AC=E7=9B=98=E3=80=81=E6=B2=BB=E5=85=B7?= =?UTF-8?q?=E4=B8=AD=E6=98=AF=E5=90=A6=E6=9C=89=E4=BA=A7=E5=93=81=E7=9A=84?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Commom/GlobalVar.cs | 5 + Rs.SkyLine/Commom/Ops.cs | 1 + Rs.SkyLine/Flow/AlarmConstID.cs | 4 + Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs | 14 +- Rs.SkyLine/Flow/WorkEnvironment.cs | 142 +++++++++++++++----- Rs.SkyLine/Properties/AssemblyInfo.cs | 2 +- 6 files changed, 125 insertions(+), 43 deletions(-) diff --git a/Rs.SkyLine/Commom/GlobalVar.cs b/Rs.SkyLine/Commom/GlobalVar.cs index 6881df2..bbac7fb 100644 --- a/Rs.SkyLine/Commom/GlobalVar.cs +++ b/Rs.SkyLine/Commom/GlobalVar.cs @@ -1651,5 +1651,10 @@ namespace Rs.Framework return SysConfigParam.GetValue(nameof(SocketHasProductCheck)); } } + + /// + /// 是否需要检测环境 + /// + public static bool NeedCheckEnvironment { get; set; } = true; } } diff --git a/Rs.SkyLine/Commom/Ops.cs b/Rs.SkyLine/Commom/Ops.cs index dd2db07..3c0b03b 100644 --- a/Rs.SkyLine/Commom/Ops.cs +++ b/Rs.SkyLine/Commom/Ops.cs @@ -30,6 +30,7 @@ namespace Rs.MotionPlat.Commom public static bool Pause { get; set; } = false; public static void Init() { + GlobalVar.NeedCheckEnvironment = true; InitDb(); SysConfigParam.Init(); int errNum = 0; diff --git a/Rs.SkyLine/Flow/AlarmConstID.cs b/Rs.SkyLine/Flow/AlarmConstID.cs index 83d07e1..8579bc3 100644 --- a/Rs.SkyLine/Flow/AlarmConstID.cs +++ b/Rs.SkyLine/Flow/AlarmConstID.cs @@ -395,6 +395,10 @@ namespace Rs.MotionPlat.Flow /// public const int 正压输入偏低 = 1091; + /// + /// 工作环境检测 + /// + public const int 工作环境检测 = 1092; /// diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index 8e340a9..80179af 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -149,6 +149,7 @@ namespace Rs.MotionPlat.Flow || LoadAndUnloadTask.Instance.GetTaskNum(ETaskType.Unload) > 0 || LoadAndUnloadTask.Instance.GetTaskNum(ETaskType.Change) > 0) { + StockTrayToTurnoverTray = true; logInfo = GetClassName() + $"接收到排料任务"; MessageQueue.Instance.Insert(logInfo); @@ -167,17 +168,12 @@ namespace Rs.MotionPlat.Flow } else { - if (GlobalVar.FirstDischarge) + if (GlobalVar.NeedCheckEnvironment) { - GlobalVar.FirstDischarge = false; - //设备遗留产品检测 - //吸嘴全部用真空吸检测,周转盘用上相机检测,SOCKET用镭射头检测 - flowStep = EDischargeFlowStep.到取料位上方; - } - else - { - flowStep = EDischargeFlowStep.到取料位上方; + WorkEnvironment.Instance.Check(); + GlobalVar.NeedCheckEnvironment = false; } + flowStep = EDischargeFlowStep.到取料位上方; } } diff --git a/Rs.SkyLine/Flow/WorkEnvironment.cs b/Rs.SkyLine/Flow/WorkEnvironment.cs index 8f712ca..6753ac6 100644 --- a/Rs.SkyLine/Flow/WorkEnvironment.cs +++ b/Rs.SkyLine/Flow/WorkEnvironment.cs @@ -1,4 +1,5 @@ -using Rs.AutoDischarge.V3.Flow; +using NPOI.SS.Formula.Functions; +using Rs.AutoDischarge.V3.Flow; using Rs.Framework; using Rs.MotionPlat.Commom; using Rs.MotionPlat.Flow.Camera; @@ -7,6 +8,7 @@ using Rs.MotionPlat.Flow.SubFlow; using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -280,46 +282,120 @@ namespace Rs.MotionPlat.Flow /// public void Check() { - List dischargeNozzles = new List(); - List turnoverNozzles = new List(); - List turnoverTraySlots = new List(); - List socketSlots = new List(); - - //1 吸嘴检测 - for(int i=1;i<9;i++) + while(true) { - VacManager.DischargeVacSuction(EVacOperator.Open,true, i); - if(Ops.IsOn("")) + List dischargeNozzles = new List(); + List turnoverNozzles = new List(); + List turnoverTraySlots = new List(); + List socketSlots = new List(); + MessageQueue.Instance.Insert("discharge nozzle have or not product check"); + //1 吸嘴检测 + for (int i = 1; i < 9; i++) { - dischargeNozzles.Add(i); + Ops.On($"{i}号吸嘴真空吸电磁阀"); + MessageQueue.Instance.Insert($"打开{i}号吸嘴真空吸电磁阀"); + Thread.Sleep(100); + if (Ops.IsOn($"{i}号吸嘴真空吸检测")) + { + MessageQueue.Instance.Insert($"{i}号吸嘴有料"); + dischargeNozzles.Add(i); + } + else + { + MessageQueue.Instance.Insert($"{i}号吸嘴无料"); + Ops.Off($"{i}号吸嘴真空吸电磁阀"); + MessageQueue.Instance.Insert($"关闭{i}号吸嘴真空吸电磁阀"); + } } - } - //2 周转吸头检测 - for (int i=1;i<17;i++) - { - VacManager.TransitNozzleVacSuction(ETurnoverNozzlePosition.TurnoverTray, EVacOperator.Open, true, i); - if (Ops.IsOn("")) + //2 周转吸头检测 + for (int i = 1; i < 17; i++) { - turnoverNozzles.Add(i); + Ops.On($"周转{i}号吸嘴真空吸"); + MessageQueue.Instance.Insert($"打开周转{i}号吸嘴真空吸"); + Thread.Sleep(100); + if (Ops.IsOn($"周转{i}号吸嘴真空吸检测")) + { + MessageQueue.Instance.Insert($"周转{i}号吸嘴有料"); + turnoverNozzles.Add(i); + } + else + { + MessageQueue.Instance.Insert($"周转{i}号吸嘴无料"); + Ops.Off($"周转{i}号吸嘴真空吸"); + MessageQueue.Instance.Insert($"关闭周转{i}号吸嘴真空吸"); + } } - } - // 3周转盘穴位检测 - for(int i=1;i<33;i++) - { - SlotProductHasOrNotResult result = UpCameraCheckFlow.Instance.CheckTurnoverTrayHasProduct(null, i, true); - if(result.HasProduct) + // 3周转盘穴位检测 + for (int i = 1; i < 33; i++) { - turnoverTraySlots.Add(i); + Ops.On($"周转盘{i}号穴位真空吸"); + MessageQueue.Instance.Insert($"打开周转盘{i}号穴位真空吸"); + Thread.Sleep(100); + if (Ops.IsOn($"周转盘{i}号穴位真空吸检测")) + { + Ops.Off($"周转盘{i}号穴位真空吸"); + MessageQueue.Instance.Insert($"周转盘{i}号穴位有料"); + turnoverTraySlots.Add(i); + } + else + { + MessageQueue.Instance.Insert($"周转盘{i}号穴位无料"); + Ops.Off($"周转盘{i}号穴位真空吸"); + MessageQueue.Instance.Insert($"关闭周转盘{i}号穴位真空吸"); + } + //SlotProductHasOrNotResult result = UpCameraCheckFlow.Instance.CheckTurnoverTrayHasProduct(null, i, true); + //if(result.HasProduct) + //{ + // turnoverTraySlots.Add(i); + //} } - } - DischargeModuleGoSafePosFlow.Instance.GoSafePostion(); - //4 SOCKET穴位检测 - for (int i = 1; i < 17; i++) - { - VacManager.TransitNozzleVacSuction( ETurnoverNozzlePosition.Socket, EVacOperator.Open, true, i); - if (Ops.IsOn("")) + //DischargeModuleGoSafePosFlow.Instance.GoSafePostion(); + //4 SOCKET穴位检测 + for (int i = 1; i < 17; i++) + { + Ops.On($"测试{i}号穴位真空吸"); + MessageQueue.Instance.Insert($"打开测试{i}号穴位真空吸"); + Thread.Sleep(100); + if (Ops.IsOn($"测试{i}号穴位真空吸检测")) + { + Ops.Off($"测试{i}号穴位真空吸"); + MessageQueue.Instance.Insert($"测试{i}号穴位有料"); + socketSlots.Add(i); + } + else + { + MessageQueue.Instance.Insert($"测试{i}号穴位无料"); + Ops.Off($"测试{i}号穴位真空吸"); + LogHelper.Debug($"关闭测试{i}号穴位真空吸"); + } + } + if (dischargeNozzles.Count>0 || turnoverNozzles.Count>0 || turnoverTraySlots.Count>0 || socketSlots.Count>0) + { + StringBuilder msg = new StringBuilder(); + if(dischargeNozzles.Count>0) + { + msg.AppendLine($"discharge nozzle {dischargeNozzles.ToJoinString()} has product"); + } + + if (turnoverNozzles.Count > 0) + { + msg.AppendLine($"turnover nozzle {turnoverNozzles.ToJoinString()} has product"); + } + + if (turnoverTraySlots.Count > 0) + { + msg.AppendLine($"turnover tray {turnoverTraySlots.ToJoinString()} has product"); + } + + if (socketSlots.Count > 0) + { + msg.AppendLine($"socket {socketSlots.ToJoinString()} has product"); + } + PromptMessageBox.ShowDialog(AlarmConstID.工作环境检测, msg.ToString(), SchedulingMessageBox.ETipButton.Retry); + } + else { - turnoverNozzles.Add(i); + break; } } } diff --git a/Rs.SkyLine/Properties/AssemblyInfo.cs b/Rs.SkyLine/Properties/AssemblyInfo.cs index 30f54d0..f992977 100644 --- a/Rs.SkyLine/Properties/AssemblyInfo.cs +++ b/Rs.SkyLine/Properties/AssemblyInfo.cs @@ -31,6 +31,6 @@ using System.Runtime.InteropServices; // //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //通过使用 "*",如下所示: - [assembly: AssemblyVersion("3.20.24.07")] + [assembly: AssemblyVersion("3.20.24.08")] //[assembly: AssemblyVersion("1.0.0.0")] //[assembly: AssemblyFileVersion("1.0.0.0")]