From 2cb613f38878ce005cc7c29a97b2ffacf2ec9881 Mon Sep 17 00:00:00 2001 From: lhiven <236881222@qq.com> Date: Sat, 30 Dec 2023 11:34:11 +0900 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0GRR=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E5=9C=A8GRR=E6=A8=A1=E5=BC=8F=E4=B8=8B=EF=BC=8C?= =?UTF-8?q?=E5=8F=AA=E6=9C=89=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=89=8D=E6=89=AB?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E5=90=8E=E9=9D=A2=E5=B0=B1=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E6=89=AB=E7=A0=81=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Commom/GlobalVar.cs | 11 + Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs | 244 +++++++++--------- Rs.SkyLine/SysConfig/CommonConfig.Designer.cs | 31 ++- 3 files changed, 159 insertions(+), 127 deletions(-) diff --git a/Rs.SkyLine/Commom/GlobalVar.cs b/Rs.SkyLine/Commom/GlobalVar.cs index 39de177..57c478b 100644 --- a/Rs.SkyLine/Commom/GlobalVar.cs +++ b/Rs.SkyLine/Commom/GlobalVar.cs @@ -763,5 +763,16 @@ namespace Rs.Framework return SysConfigParam.GetValue(nameof(EnableTwoSpeed)); } } + + /// + /// GRR + /// + public static bool GRR + { + get + { + return SysConfigParam.GetValue(nameof(GRR)); + } + } } } diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index 322c6d2..aca97bf 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -128,6 +128,7 @@ namespace Rs.MotionPlat.Flow /// 未执行的任务数量 /// private int undoTaskNum = 0; + int scanNum = 0; public override void Run() { switch (flowStep) @@ -1469,179 +1470,186 @@ namespace Rs.MotionPlat.Flow { if (LoadAndUnloadTask.Instance.GetUndealedLoadToTurnoverTask().Count == 0 && !GlobalVar.VirtualAxis) { - //没有需要给周转盘上料的任务后,就开始上相机扫码 - //判断周转盘第一行有没有产品,如果有产品则拍第一行 - if(TurnoverTrayManager.Instance.HasProduct(ETrayRow.One)) + if(GlobalVar.GRR) { - //找拍照起点和终点 - SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 1); - SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 8); - UpCameraScanBarCodeFlow.Instance.ScanMulti(1, false); - List result = UpCameraScanBarCodeFlow.Instance.Wait(); - foreach (var vr in result) + scanNum++; + } + if(scanNum==1 || !GlobalVar.GRR) + { + //没有需要给周转盘上料的任务后,就开始上相机扫码 + //判断周转盘第一行有没有产品,如果有产品则拍第一行 + if (TurnoverTrayManager.Instance.HasProduct(ETrayRow.One)) { - if(TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct) + //找拍照起点和终点 + SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 1); + SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 8); + UpCameraScanBarCodeFlow.Instance.ScanMulti(1, false); + List result = UpCameraScanBarCodeFlow.Instance.Wait(); + foreach (var vr in result) { - if (vr.SearchModelOK)//定位成功 + if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct) { - if(!GlobalVar.EnableScanBarCodeByDownCamera) + if (vr.SearchModelOK)//定位成功 { - if(GlobalVar.RunSpace) - { - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex-1, VirtualBarCode.Code); - } - else + if (!GlobalVar.EnableScanBarCodeByDownCamera) { - if(vr.ScanBarCodeOK) + if (GlobalVar.RunSpace) { - OnShowGrabResult?.Invoke(vr,true); - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex-1, vr.SN); + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, VirtualBarCode.Code); } else { - int failNum = 1; - while(true) + if (vr.ScanBarCodeOK) { - if(failNum<4) - { - //如果扫码失败再重扫一次 - UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); - VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); - if (vrsigle.ScanBarCodeOK) - { - OnShowGrabResult?.Invoke(vrsigle, true); - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); - break; - } - else - { - failNum++; - OnShowGrabResult?.Invoke(vrsigle, true); - //复制二维码 - //LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); - Thread.Sleep(1000); - } - } - else + OnShowGrabResult?.Invoke(vr, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); + } + else + { + int failNum = 1; + while (true) { - box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Cancel); - if(box.Button== ETipButton.Retry) + if (failNum < 4) { - failNum = 1; + //如果扫码失败再重扫一次 + UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); + VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); + if (vrsigle.ScanBarCodeOK) + { + OnShowGrabResult?.Invoke(vrsigle, true); + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); + break; + } + else + { + failNum++; + OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + //LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + Thread.Sleep(1000); + } } else { - //OnShowGrabResult?.Invoke(vrsigle, true); - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); - break; + box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Cancel); + if (box.Button == ETipButton.Retry) + { + failNum = 1; + } + else + { + //OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + break; + } } } } } } } + else + { + //定位失败,或者超出指定范围 + } } else { - //定位失败,或者超出指定范围 + OnShowGrabResult?.Invoke(vr, false); } } - else - { - OnShowGrabResult?.Invoke(vr,false); - } + //OnUpCameraGrabResult?.Invoke(result); } - //OnUpCameraGrabResult?.Invoke(result); - } - //判断周转盘第三行有没有产品,如果有产品则拍第三行 - if (TurnoverTrayManager.Instance.HasProduct(ETrayRow.Three)) - { - //找拍照起点和终点 - SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 17); - SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 24); - UpCameraScanBarCodeFlow.Instance.ScanMulti(24, true); - List result = UpCameraScanBarCodeFlow.Instance.Wait(); - foreach (var vr in result) + //判断周转盘第三行有没有产品,如果有产品则拍第三行 + if (TurnoverTrayManager.Instance.HasProduct(ETrayRow.Three)) { - if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct) + //找拍照起点和终点 + SlotPoint grabStartPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 17); + SlotPoint grabEndPoint = TrayPointManager.GetSlotPoint(ETrayType.Turnover, 24); + UpCameraScanBarCodeFlow.Instance.ScanMulti(24, true); + List result = UpCameraScanBarCodeFlow.Instance.Wait(); + foreach (var vr in result) { - - if (vr.SearchModelOK)//定位成功 + if (TurnoverTrayManager.Instance.Slot(vr.SlotIndex).IsHasProduct) { - if (!GlobalVar.EnableScanBarCodeByDownCamera) + + if (vr.SearchModelOK)//定位成功 { - if (GlobalVar.RunSpace) - { - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex-1, VirtualBarCode.Code); - } - else + if (!GlobalVar.EnableScanBarCodeByDownCamera) { - if (vr.ScanBarCodeOK) + if (GlobalVar.RunSpace) { - OnShowGrabResult?.Invoke(vr, true); - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex- 1, vr.SN); + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, VirtualBarCode.Code); } else { - int failNum = 1; - while (true) + if (vr.ScanBarCodeOK) { - if (failNum < 4) + OnShowGrabResult?.Invoke(vr, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); + } + else + { + int failNum = 1; + while (true) { - - //如果扫码失败再重扫一次 - UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); - VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); - if (vrsigle.ScanBarCodeOK) + if (failNum < 4) { - OnShowGrabResult?.Invoke(vrsigle, true); - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); - break; + + //如果扫码失败再重扫一次 + UpCameraScanBarCodeFlow.Instance.ScanSingle(vr.SlotIndex, true); + VisionResult vrsigle = UpCameraScanBarCodeFlow.Instance.WaitSingle(); + if (vrsigle.ScanBarCodeOK) + { + OnShowGrabResult?.Invoke(vrsigle, true); + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, vr.SN); + break; + } + else + { + failNum++; + OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + //LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + Thread.Sleep(1000); + } } else { - failNum++; - OnShowGrabResult?.Invoke(vrsigle, true); - //复制二维码 - //LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); - Thread.Sleep(1000); - } - } - else - { - box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Skip); - if (box.Button == ETipButton.Retry) - { - failNum = 1; - } - else if(box.Button== ETipButton.Skip) - { - //OnShowGrabResult?.Invoke(vrsigle, true); - //复制二维码 - LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); - break; + box = MsgBox.ShowDialog(AlarmConstID.ScanBarCodeFailAlarm, $"{vr.SlotIndex}穴位扫码失败", ETipButton.Retry | ETipButton.Skip); + if (box.Button == ETipButton.Retry) + { + failNum = 1; + } + else if (box.Button == ETipButton.Skip) + { + //OnShowGrabResult?.Invoke(vrsigle, true); + //复制二维码 + LoadAndUnloadTask.Instance.CopyBarcodeToTask(vr.SlotIndex - 1, ""); + break; + } } } } } } } + else + { + //定位失败,或者超出指定范围 + } } else { - //定位失败,或者超出指定范围 + OnShowGrabResult?.Invoke(vr, false); } } - else - { - OnShowGrabResult?.Invoke(vr,false); - } - } - //OnUpCameraGrabResult?.Invoke(result); + //OnUpCameraGrabResult?.Invoke(result); + } } } } diff --git a/Rs.SkyLine/SysConfig/CommonConfig.Designer.cs b/Rs.SkyLine/SysConfig/CommonConfig.Designer.cs index 04702b2..48eb6ea 100644 --- a/Rs.SkyLine/SysConfig/CommonConfig.Designer.cs +++ b/Rs.SkyLine/SysConfig/CommonConfig.Designer.cs @@ -58,6 +58,7 @@ this.label6 = new System.Windows.Forms.Label(); this.cboxVirtualAxis = new System.Windows.Forms.CheckBox(); this.cboxCheckSafeEnable = new System.Windows.Forms.CheckBox(); + this.cboxEnableTestFixtureFiberCheck = new System.Windows.Forms.CheckBox(); this.cboxEnableTwoSpeed = new System.Windows.Forms.CheckBox(); this.cboxEnableScanBarCodeByDownCamera = new System.Windows.Forms.CheckBox(); this.cboxEnableExceptionHandlingNozzle = new System.Windows.Forms.CheckBox(); @@ -82,7 +83,7 @@ this.label27 = new System.Windows.Forms.Label(); this.txtControlCenterIP = new System.Windows.Forms.TextBox(); this.label26 = new System.Windows.Forms.Label(); - this.cboxEnableTestFixtureFiberCheck = new System.Windows.Forms.CheckBox(); + this.cboxGRR = new System.Windows.Forms.CheckBox(); this.tableLayoutPanel1.SuspendLayout(); this.groupBox3.SuspendLayout(); this.groupBox10.SuspendLayout(); @@ -331,6 +332,7 @@ this.groupBox1.Controls.Add(this.label6); this.groupBox1.Controls.Add(this.cboxVirtualAxis); this.groupBox1.Controls.Add(this.cboxCheckSafeEnable); + this.groupBox1.Controls.Add(this.cboxGRR); this.groupBox1.Controls.Add(this.cboxEnableTestFixtureFiberCheck); this.groupBox1.Controls.Add(this.cboxEnableTwoSpeed); this.groupBox1.Controls.Add(this.cboxEnableScanBarCodeByDownCamera); @@ -473,6 +475,16 @@ this.cboxCheckSafeEnable.Text = "安全检查"; this.cboxCheckSafeEnable.UseVisualStyleBackColor = true; // + // cboxEnableTestFixtureFiberCheck + // + this.cboxEnableTestFixtureFiberCheck.AutoSize = true; + this.cboxEnableTestFixtureFiberCheck.Location = new System.Drawing.Point(294, 277); + this.cboxEnableTestFixtureFiberCheck.Name = "cboxEnableTestFixtureFiberCheck"; + this.cboxEnableTestFixtureFiberCheck.Size = new System.Drawing.Size(96, 16); + this.cboxEnableTestFixtureFiberCheck.TabIndex = 8; + this.cboxEnableTestFixtureFiberCheck.Text = "启用光纤检测"; + this.cboxEnableTestFixtureFiberCheck.UseVisualStyleBackColor = true; + // // cboxEnableTwoSpeed // this.cboxEnableTwoSpeed.AutoSize = true; @@ -728,15 +740,15 @@ this.label26.TabIndex = 0; this.label26.Text = "中控IP:"; // - // cboxEnableTestFixtureFiberCheck + // cboxGRR // - this.cboxEnableTestFixtureFiberCheck.AutoSize = true; - this.cboxEnableTestFixtureFiberCheck.Location = new System.Drawing.Point(294, 277); - this.cboxEnableTestFixtureFiberCheck.Name = "cboxEnableTestFixtureFiberCheck"; - this.cboxEnableTestFixtureFiberCheck.Size = new System.Drawing.Size(96, 16); - this.cboxEnableTestFixtureFiberCheck.TabIndex = 8; - this.cboxEnableTestFixtureFiberCheck.Text = "启用光纤检测"; - this.cboxEnableTestFixtureFiberCheck.UseVisualStyleBackColor = true; + this.cboxGRR.AutoSize = true; + this.cboxGRR.Location = new System.Drawing.Point(391, 277); + this.cboxGRR.Name = "cboxGRR"; + this.cboxGRR.Size = new System.Drawing.Size(42, 16); + this.cboxGRR.TabIndex = 8; + this.cboxGRR.Text = "GRR"; + this.cboxGRR.UseVisualStyleBackColor = true; // // CommonConfig // @@ -824,5 +836,6 @@ private System.Windows.Forms.Label label9; private System.Windows.Forms.CheckBox cboxEnableTwoSpeed; private System.Windows.Forms.CheckBox cboxEnableTestFixtureFiberCheck; + private System.Windows.Forms.CheckBox cboxGRR; } } \ No newline at end of file