From 0b5386e7314cc125c0808deec2d948281f397c0f Mon Sep 17 00:00:00 2001
From: 천호석 <hosuk1418@naver.com>
Date: 화, 01 11월 2022 16:46:12 +0900
Subject: [PATCH] 검사 개조, Measurement 후 Width 검사 불합리 제거.

---
 SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.cs                    |    7 +-
 SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.Designer.cs           |    3 
 SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Define.cs  |    7 -
 SHARP_CLAS_UI/500.Equipment/700.Unit/400.Unloader/ULD_Handler_1.cs  |   80 +++++++++++---------------
 SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Client_AOI.cs     |   26 ++++++--
 SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Control.cs |   10 ---
 SHARP_CLAS_UI/500.Equipment/600.Info/000.Panel_Info/Panel_Info.cs   |    7 ++
 7 files changed, 70 insertions(+), 70 deletions(-)

diff --git a/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.Designer.cs b/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.Designer.cs
index c2a5688..c447fc5 100644
--- a/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.Designer.cs
+++ b/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.Designer.cs
@@ -1239,7 +1239,8 @@
             this.cbb_AOI_SeqType.FormattingEnabled = true;
             this.cbb_AOI_SeqType.ItemHeight = 12;
             this.cbb_AOI_SeqType.Items.AddRange(new object[] {
-            "AOI Measurement"});
+            "AOI Measurement",
+            "Width Measurement"});
             this.cbb_AOI_SeqType.Location = new System.Drawing.Point(106, 51);
             this.cbb_AOI_SeqType.Name = "cbb_AOI_SeqType";
             this.cbb_AOI_SeqType.Size = new System.Drawing.Size(156, 20);
diff --git a/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.cs b/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.cs
index b97a39a..004ec9b 100644
--- a/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.cs
+++ b/SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.cs
@@ -378,7 +378,7 @@
 
         private void btn_AOI_Grab_Ready_Req_Click(object sender, EventArgs e)
         {
-            int Seq_Type = 3;
+            int Seq_Type = cbb_AOI_SeqType.SelectedIndex == 0 ? 3 : 4;
             int Module_Idx = rb_AOI_Left.Checked ? 0 : 1;
             int Grab_Dir = 1;
             int Pnl_Dir = rb_AOI_Short.Checked ? 0 : 1;
@@ -396,13 +396,13 @@
                 _Parent.sm.Set_Bit(Vision_Address.Measurement_Left_Ack, false);
             else
                 _Parent.sm.Set_Bit(Vision_Address.Measurement_Right_Ack, false);
-
+            
             _Parent._equip.Aoi_vision.SendData(vision_control.Send_Grab_Ready_Req(Seq_Type, Module_Idx, Grab_Dir, Pnl_Dir, Stage_No, Slot_No, Pnl_Idx, Panel_Id));
         }
 
         private void btn_AOI_Grab_Start_Req_Click(object sender, EventArgs e)
         {
-            int Seq_Type = 3;
+            int Seq_Type = cbb_AOI_SeqType.SelectedIndex == 0 ? 3 : 4;
             int Module_Idx = rb_AOI_Left.Checked ? 0 : 1;
             int Mark_Idx = rb_AOI_Mark_1.Checked ? 0 : 1;
             double Motor_Offset_X;
@@ -414,6 +414,7 @@
                 _Parent.sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Left_Ack, false);
             else
                 _Parent.sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Right_Ack, false);
+
             _Parent._equip.Aoi_vision.SendData(vision_control.Send_Grab_Start_Req(Seq_Type, Module_Idx, Mark_Idx, Motor_Offset_X, Motor_Offset_Y));
         }
 
diff --git a/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Client_AOI.cs b/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Client_AOI.cs
index 4dc7cad..f628700 100644
--- a/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Client_AOI.cs
+++ b/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Client_AOI.cs
@@ -354,6 +354,12 @@
                                         sm.Set_Bit(Vision_Address.Measurement_Grab_Ready_Ack, true);
                                         sm.Set_Bit(Vision_Address.Measurement_Grab_Ready_Result, grab_ready_Ack.result == 0 ? false : true);
                                     }
+                                    else if (grab_ready_Ack.SeqType == (int)En_SeqType.MeasurementWidth)
+                                    {
+                                        WriteClientLog($"[Recv]MeasurementWidth Grab Ready, Result : {grab_ready_Ack.result}");
+                                        sm.Set_Bit(Vision_Address.Measurement_Grab_Ready_Ack, true);
+                                        sm.Set_Bit(Vision_Address.Measurement_Grab_Ready_Result, grab_ready_Ack.result == 0 ? false : true);
+                                    }
 
                                     break;
                                 }
@@ -388,6 +394,12 @@
                                             sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Left_Ack, true);
                                             sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Left_Result, grab_start_Ack.result == 0 ? false : true);
                                         }
+                                        else if (grab_start_Ack.SeqType == (int)En_SeqType.MeasurementWidth)
+                                        {
+                                            WriteClientLog($"[Recv]MeasurementWidth Left Grab Start, Result : {grab_start_Ack.result}");
+                                            sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Left_Ack, true);
+                                            sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Left_Result, grab_start_Ack.result == 0 ? false : true);
+                                        }
                                     }
                                     else if (grab_start_Ack.ModuleIdx == (int)En_Module_Idx.Right)
                                     {
@@ -412,6 +424,12 @@
                                         else if (grab_start_Ack.SeqType == (int)En_SeqType.Measurement)
                                         {
                                             WriteClientLog($"[Recv]Measurement Right Grab Start, Result : {grab_start_Ack.result}");
+                                            sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Right_Ack, true);
+                                            sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Right_Result, grab_start_Ack.result == 0 ? false : true);
+                                        }
+                                        else if (grab_start_Ack.SeqType == (int)En_SeqType.MeasurementWidth)
+                                        {
+                                            WriteClientLog($"[Recv]MeasurementWidth Right Grab Start, Result : {grab_start_Ack.result}");
                                             sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Right_Ack, true);
                                             sm.Set_Bit(Vision_Address.Measurement_Grab_Start_Right_Result, grab_start_Ack.result == 0 ? false : true);
                                         }
@@ -623,12 +641,10 @@
 
                                     if (measurement_result_Ack.moduleIdx == (int)En_Module_Idx.Left)
                                     {
-                                        WriteClientLog($"[Recv]Width Measurement Left Result, Result : {measurement_result_Ack.measurement_result}, Mark1Width : {measurement_result_Ack.Mark1Width}, Mark2Width : {measurement_result_Ack.Mark2Width}, Mark3Width : {measurement_result_Ack.Mark3Width}, Mark4Width : {measurement_result_Ack.Mark4Width}");
+                                        WriteClientLog($"[Recv]Width Measurement Left Result, Result : {measurement_result_Ack.measurement_result}, Mark1Width : {measurement_result_Ack.Mark1Width}, Mark2Width : {measurement_result_Ack.Mark2Width}");
                                         sm.Set_Value(Vision_Address.Measurement_Left_Result, measurement_result_Ack.measurement_result);
                                         sm.Set_Value(Vision_Address.Measurement_Left_Mark_1_Point_1, measurement_result_Ack.Mark1Width);
                                         sm.Set_Value(Vision_Address.Measurement_Left_Mark_2_Point_1, measurement_result_Ack.Mark2Width);
-                                        sm.Set_Value(Vision_Address.Measurement_Left_Mark_3_Point_1, measurement_result_Ack.Mark3Width);
-                                        sm.Set_Value(Vision_Address.Measurement_Left_Mark_4_Point_1, measurement_result_Ack.Mark4Width);
                                         sm.Set_Bit(Vision_Address.Measurement_Left_Ack, true);
                                     }
                                     break;
@@ -639,12 +655,10 @@
                                     vision_control.Recv_WidthMeasurement_Result(Recvdata, out measurement_result_Ack);
                                     if (measurement_result_Ack.moduleIdx == (int)En_Module_Idx.Right)
                                     {
-                                        WriteClientLog($"[Recv]Width Measurement Right Result, Result : {measurement_result_Ack.measurement_result}, Mark1Width : {measurement_result_Ack.Mark1Width}, Mark2Width : {measurement_result_Ack.Mark2Width}, Mark3Width : {measurement_result_Ack.Mark3Width}, Mark4Width : {measurement_result_Ack.Mark4Width}");
+                                        WriteClientLog($"[Recv]Width Measurement Right Result, Result : {measurement_result_Ack.measurement_result}, Mark1Width : {measurement_result_Ack.Mark1Width}, Mark2Width : {measurement_result_Ack.Mark2Width}");
                                         sm.Set_Value(Vision_Address.Measurement_Right_Result, measurement_result_Ack.measurement_result);
                                         sm.Set_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, measurement_result_Ack.Mark1Width);
                                         sm.Set_Value(Vision_Address.Measurement_Right_Mark_2_Point_1, measurement_result_Ack.Mark2Width);
-                                        sm.Set_Value(Vision_Address.Measurement_Right_Mark_3_Point_1, measurement_result_Ack.Mark3Width);
-                                        sm.Set_Value(Vision_Address.Measurement_Right_Mark_4_Point_1, measurement_result_Ack.Mark4Width);
                                         sm.Set_Bit(Vision_Address.Measurement_Right_Ack, true);
                                     }
                                     break;
diff --git a/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Control.cs b/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Control.cs
index ad858db..d948f7d 100644
--- a/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Control.cs
+++ b/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Control.cs
@@ -482,8 +482,6 @@
             byte[] MeasureResult = new byte[4]; //0 : Fail, 1 : Success
             byte[] Mark1Width = new byte[8]; //Mark1�쓽 �꼻�씠
             byte[] Mark2Width = new byte[8]; //Mark2�쓽 �꼻�씠
-            byte[] Mark3Width = new byte[8]; //Mark3�쓽 �꼻�씠
-            byte[] Mark4Width = new byte[8]; //Mark4�쓽 �꼻�씠
 
             int copylength = 0;
             Array.Copy(Recvdata, size, size.Length);
@@ -500,20 +498,14 @@
             copylength += Mark1Width.Length;
             Array.Copy(Recvdata, copylength, Mark2Width, 0, Mark2Width.Length);
             copylength += Mark2Width.Length;
-            Array.Copy(Recvdata, copylength, Mark3Width, 0, Mark3Width.Length);
-            copylength += Mark3Width.Length;
-            Array.Copy(Recvdata, copylength, Mark4Width, 0, Mark4Width.Length);
-            copylength += Mark4Width.Length;
 
             int Result_MsgIndex = BitConverter.ToInt32(MsgIndex, 0);
             int Result_ModuleIdx = BitConverter.ToInt32(ModuleIdx, 0);
             int Result_MeasureResult = BitConverter.ToInt32(MeasureResult, 0);
             double Result_Mark1Width = BitConverter.ToDouble(Mark1Width, 0);
             double Result_Mark2Width = BitConverter.ToDouble(Mark2Width, 0);
-            double Result_Mark3Width = BitConverter.ToDouble(Mark3Width, 0);
-            double Result_Mark4Width = BitConverter.ToDouble(Mark4Width, 0);
 
-            Ack = new WidthMeasurementResultAck(Result_MsgIndex, Result_ModuleIdx, Result_MeasureResult, Result_Mark1Width, Result_Mark2Width, Result_Mark3Width, Result_Mark4Width);
+            Ack = new WidthMeasurementResultAck(Result_MsgIndex, Result_ModuleIdx, Result_MeasureResult, Result_Mark1Width, Result_Mark2Width);
         }
 
         public void Recv_Fine_Align_Result(byte[] Recvdata, out FineAlignResultAck Ack)
diff --git a/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Define.cs b/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Define.cs
index 413fba8..479cbf2 100644
--- a/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Define.cs
+++ b/SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Define.cs
@@ -6,6 +6,7 @@
         Pre_Align,
         Fine_Align,
         Measurement,
+        MeasurementWidth,
     }
 
     public enum En_Module_Idx : int
@@ -170,18 +171,14 @@
         public int measurement_result { get; private set; }
         public double Mark1Width { get; private set; }
         public double Mark2Width { get; private set; }
-        public double Mark3Width { get; private set; }
-        public double Mark4Width { get; private set; }
 
-        public WidthMeasurementResultAck(int msg_Index = 0, int moduleIdx = 0, int measurement_result = 0, double mark1Width = 0, double mark2Width = 0, double mark3Width = 0, double mark4Width = 0)
+        public WidthMeasurementResultAck(int msg_Index = 0, int moduleIdx = 0, int measurement_result = 0, double mark1Width = 0, double mark2Width = 0)
         {
             this.msg_Index = msg_Index;
             this.moduleIdx = moduleIdx;
             this.measurement_result = measurement_result;
             this.Mark1Width = mark1Width;
             this.Mark2Width = mark2Width;
-            this.Mark3Width = mark3Width;
-            this.Mark4Width = mark4Width;
         }
     }
 
diff --git a/SHARP_CLAS_UI/500.Equipment/600.Info/000.Panel_Info/Panel_Info.cs b/SHARP_CLAS_UI/500.Equipment/600.Info/000.Panel_Info/Panel_Info.cs
index 284caf7..50b7fa6 100644
--- a/SHARP_CLAS_UI/500.Equipment/600.Info/000.Panel_Info/Panel_Info.cs
+++ b/SHARP_CLAS_UI/500.Equipment/600.Info/000.Panel_Info/Panel_Info.cs
@@ -72,7 +72,6 @@
         public DateTime Start_Time { get; set; }
 
         public DateTime End_Time { get; set; }
-
         #endregion
 
         #region Construct
@@ -131,6 +130,12 @@
             info.Mark3Point2 = this.Mark3Point2;
             info.Mark4Point1 = this.Mark4Point1;
             info.Mark4Point2 = this.Mark4Point2;
+            info.WidthMeasurement_Ack = this.WidthMeasurement_Ack;
+            info.WidthMeasurement_Result = this.WidthMeasurement_Result;
+            info.Mark1Width = this.Mark1Width;
+            info.Mark2Width = this.Mark2Width;
+            info.Mark3Width = this.Mark3Width;
+            info.Mark4Width = this.Mark4Width;
             info.Stage_Num = this.Stage_Num;
             info.Start_Time = this.Start_Time;
             info.End_Time = this.End_Time;
diff --git a/SHARP_CLAS_UI/500.Equipment/700.Unit/400.Unloader/ULD_Handler_1.cs b/SHARP_CLAS_UI/500.Equipment/700.Unit/400.Unloader/ULD_Handler_1.cs
index 7c20ed7..3ccf432 100644
--- a/SHARP_CLAS_UI/500.Equipment/700.Unit/400.Unloader/ULD_Handler_1.cs
+++ b/SHARP_CLAS_UI/500.Equipment/700.Unit/400.Unloader/ULD_Handler_1.cs
@@ -2091,14 +2091,7 @@
                         {
                             sequenceChangedTime.Start();
 
-                            if (equipment.Cur_Main_Recipe.vision_info.AoiMark34Use)
-                            {
-                                Step = UnloaderHandler1Steps.S4630_MOVE_MEASUREMENT_MARK3_POSITION;
-                            }
-                            else
-                            {
-                                Step = UnloaderHandler1Steps.S4650_MEASUREMENT_CHECK;
-                            }
+                            Step = UnloaderHandler1Steps.S4650_MEASUREMENT_CHECK;
                             return;
                         }
 
@@ -2111,14 +2104,7 @@
                     {
                         if (equipment.sm.Get_Bit(Vision_Address.Measurement_Grab_Start_Right_Ack))
                         {
-                            if (equipment.Cur_Main_Recipe.vision_info.AoiMark34Use)
-                            {
-                                Step = UnloaderHandler1Steps.S4630_MOVE_MEASUREMENT_MARK3_POSITION;
-                            }
-                            else
-                            {
-                                Step = UnloaderHandler1Steps.S4650_MEASUREMENT_CHECK;
-                            }
+                            Step = UnloaderHandler1Steps.S4650_MEASUREMENT_CHECK;
                         }
                         else if (sequenceChangedTime.Seconds > equipment.Setting.Vision_Timeout)
                         {
@@ -2314,13 +2300,13 @@
                                     info1.End_Time = DateTime.Now;
 
                                     equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_1_Point_1, out value);
-                                    info1.Mark1Point1 = double.Parse(value.ToString());
+                                    info1.Mark1Width = double.Parse(value.ToString());
                                     equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_2_Point_1, out value);
-                                    info1.Mark2Point1 = double.Parse(value.ToString());
-                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_3_Point_1, out value);
-                                    info1.Mark3Point1 = double.Parse(value.ToString());
-                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_4_Point_1, out value);
-                                    info1.Mark4Point1 = double.Parse(value.ToString());
+                                    info1.Mark2Width = double.Parse(value.ToString());
+                                    //equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_3_Point_1, out value);
+                                    //info1.Mark3Point1 = double.Parse(value.ToString());
+                                    //equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_4_Point_1, out value);
+                                    //info1.Mark4Point1 = double.Parse(value.ToString());
 
                                     aoistage.Panel1 = info1;
 
@@ -2334,33 +2320,30 @@
 
                             if (aoistage.Stage2.IsExist && info2.WidthMeasurement_Ack == false)
                             {
-                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Align_Result))
+                                info2.WidthMeasurement_Ack = true;
+
+                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Result, out result))
                                 {
-                                    info2.WidthMeasurement_Ack = true;
+                                    info2.WidthMeasurement_Result = result;
 
-                                    if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Result, out result))
-                                    {
-                                        info2.Measurement_Result = result;
+                                    info2.End_Time = DateTime.Now;
 
-                                        info2.End_Time = DateTime.Now;
+                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, out value);
+                                    info2.Mark1Width = double.Parse(value.ToString());
+                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_2_Point_1, out value);
+                                    info2.Mark2Width = double.Parse(value.ToString());
+                                    //equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_3_Point_1, out value);
+                                    //info2.Mark3Point1 = double.Parse(value.ToString());
+                                    //equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_4_Point_1, out value);
+                                    //info2.Mark4Point1 = double.Parse(value.ToString());
 
-                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, out value);
-                                        info2.Mark1Point1 = double.Parse(value.ToString());
-                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_2_Point_1, out value);
-                                        info2.Mark2Point1 = double.Parse(value.ToString());
-                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_3_Point_1, out value);
-                                        info2.Mark3Point1 = double.Parse(value.ToString());
-                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_4_Point_1, out value);
-                                        info2.Mark4Point1 = double.Parse(value.ToString());
+                                    aoistage.Panel2 = info2;
 
-                                        aoistage.Panel2 = info2;
-
-                                        isAoiPanel2WidthMeasurementAck = aoiStage.Stage2.IsExist == false || aoiStage.Panel2.WidthMeasurement_Ack;
-                                    }
-                                    else
-                                    {
-                                        return;
-                                    }
+                                    isAoiPanel2WidthMeasurementAck = aoiStage.Stage2.IsExist == false || aoiStage.Panel2.WidthMeasurement_Ack;
+                                }
+                                else
+                                {
+                                    return;
                                 }
                             }
 
@@ -2501,7 +2484,14 @@
                                 equipment.Aoi_vision.Send_Measurement_Command_Req(2, 1, info2.Tray_Num, info2.Panel_Num, info2.Panel_ID);
                             }
 
-                            Step = UnloaderHandler1Steps.S4650_MEASUREMENT_CHECK;
+                            if (equipment.cim_mode == En_Cim_Mode.Online)
+                            {
+                                Step = UnloaderHandler1Steps.S4800_PANEL_LEFT_CIM_SEND;
+                            }
+                            else
+                            {
+                                Step = UnloaderHandler1Steps.S4999_MEASUREMENT_END;
+                            }
                         }
                         break;
                     }

--
Gitblit v1.9.3