천호석
2022-11-01 0b5386e7314cc125c0808deec2d948281f397c0f
검사 개조, Measurement 후 Width 검사 불합리 제거.
7개 파일 변경됨
110 ■■■■ 파일 변경됨
SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.Designer.cs 3 ●●●● 패치 | 보기 | raw | blame | 히스토리
SHARP_CLAS_UI/300.Etc_Screen/Form_Vision_Test.cs 5 ●●●●● 패치 | 보기 | raw | blame | 히스토리
SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Client_AOI.cs 26 ●●●● 패치 | 보기 | raw | blame | 히스토리
SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Control.cs 10 ●●●● 패치 | 보기 | raw | blame | 히스토리
SHARP_CLAS_UI/500.Equipment/400.Module/000.Vision/Vision_Define.cs 7 ●●●● 패치 | 보기 | raw | blame | 히스토리
SHARP_CLAS_UI/500.Equipment/600.Info/000.Panel_Info/Panel_Info.cs 7 ●●●● 패치 | 보기 | raw | blame | 히스토리
SHARP_CLAS_UI/500.Equipment/700.Unit/400.Unloader/ULD_Handler_1.cs 52 ●●●●● 패치 | 보기 | raw | blame | 히스토리
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);
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;
@@ -402,7 +402,7 @@
        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));
        }
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;
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)
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;
        }
    }
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;
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;
                            }
                            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;
                            }
                        }
                        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,24 +2320,22 @@
                            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.Measurement_Result = result;
                                    info2.WidthMeasurement_Result = result;
                                        info2.End_Time = DateTime.Now;
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, out value);
                                        info2.Mark1Point1 = double.Parse(value.ToString());
                                    info2.Mark1Width = 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());
                                    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());
                                        aoistage.Panel2 = info2;
@@ -2360,7 +2344,6 @@
                                    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;
                    }