diff --git a/JinYuan.ControlCenter/ControlCenter_Plc.cs b/JinYuan.ControlCenter/ControlCenter_Plc.cs index f91c619..24bbecd 100644 --- a/JinYuan.ControlCenter/ControlCenter_Plc.cs +++ b/JinYuan.ControlCenter/ControlCenter_Plc.cs @@ -6,6 +6,7 @@ using JinYuan.MES.Enums; using JinYuan.Models; using JinYuan.VirtualDataLibrary; using PLCCommunication; +using SqlSugar; using System; using System.Collections.Generic; using System.Diagnostics; @@ -267,7 +268,7 @@ namespace JinYuan.ControlCenters short Result = 1; var OK_NG = "OK"; var NG_Type = ""; - for (int i = 0; i < 20; i++) + for (int i = 0; i < ConstValue.COUNT_CCD; i++) { if (B[C, i] != 1) { @@ -1367,6 +1368,11 @@ namespace JinYuan.ControlCenters m.CCD_Data[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 200 + i * 30 * 2 + j * 2, DataFormat.CDAB); } + //3400 + m.CCD_FLATNESS = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2, DataFormat.CDAB); + + short fatResult = ShortLib.GetShortFromByteArray(bArrays.Content, 600 + i * 30 * 2, DataFormat.CDAB); + m.CCD_FLATNESS_Result = ConstValue.JudgeResult(fatResult); #region 注释掉的采集数æ�® by clm 20260812 //3400 //m.Thickness1 = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2, DataFormat.CDAB); @@ -1466,13 +1472,13 @@ namespace JinYuan.ControlCenters m.CCD11 = m.CCD_Data[i, 10]; m.CCD12 = m.CCD_Data[i, 11]; m.CCD13 = m.CCD_Data[i, 12]; - m.CCD14 = m.CCD_Data[i, 13]; - m.CCD15 = m.CCD_Data[i, 14]; - m.CCD16 = m.CCD_Data[i, 15]; - m.CCD17 = m.CCD_Data[i, 16]; - m.CCD18 = m.CCD_Data[i, 17]; - m.CCD19 = m.CCD_Data[i, 18]; - m.CCD20 = m.CCD_Data[i, 19]; + //m.CCD14 = m.CCD_Data[i, 13]; + //m.CCD15 = m.CCD_Data[i, 14]; + //m.CCD16 = m.CCD_Data[i, 15]; + //m.CCD17 = m.CCD_Data[i, 16]; + //m.CCD18 = m.CCD_Data[i, 17]; + //m.CCD19 = m.CCD_Data[i, 18]; + //m.CCD20 = m.CCD_Data[i, 19]; m.CCDResult1 = m.CCD_Data[i, 0] == 1 ? "OK" : (m.CCD_Data[i, 0] == 0 ? "NG" : "缺图"); m.CCDResult2 = m.CCD_Data[i, 1] == 1 ? "OK" : (m.CCD_Data[i, 1] == 0 ? "NG" : "缺图"); @@ -1487,13 +1493,13 @@ namespace JinYuan.ControlCenters m.CCDResult11 = m.CCD_Data[i, 10] == 1 ? "OK" : (m.CCD_Data[i, 10] == 0 ? "NG" : "缺图"); m.CCDResult12 = m.CCD_Data[i, 11] == 1 ? "OK" : (m.CCD_Data[i, 11] == 0 ? "NG" : "缺图"); m.CCDResult13 = m.CCD_Data[i, 12] == 1 ? "OK" : (m.CCD_Data[i, 12] == 0 ? "NG" : "缺图"); - m.CCDResult14 = m.CCD_Data[i, 13] == 1 ? "OK" : (m.CCD_Data[i, 13] == 0 ? "NG" : "缺图"); - m.CCDResult15 = m.CCD_Data[i, 14] == 1 ? "OK" : (m.CCD_Data[i, 14] == 0 ? "NG" : "缺图"); - m.CCDResult16 = m.CCD_Data[i, 15] == 1 ? "OK" : (m.CCD_Data[i, 15] == 0 ? "NG" : "缺图"); - m.CCDResult17 = m.CCD_Data[i, 16] == 1 ? "OK" : (m.CCD_Data[i, 16] == 0 ? "NG" : "缺图"); - m.CCDResult18 = m.CCD_Data[i, 17] == 1 ? "OK" : (m.CCD_Data[i, 17] == 0 ? "NG" : "缺图"); - m.CCDResult19 = m.CCD_Data[i, 18] == 1 ? "OK" : (m.CCD_Data[i, 18] == 0 ? "NG" : "缺图"); - m.CCDResult20 = m.CCD_Data[i, 19] == 1 ? "OK" : (m.CCD_Data[i, 19] == 0 ? "NG" : "缺图"); + //m.CCDResult14 = m.CCD_Data[i, 13] == 1 ? "OK" : (m.CCD_Data[i, 13] == 0 ? "NG" : "缺图"); + //m.CCDResult15 = m.CCD_Data[i, 14] == 1 ? "OK" : (m.CCD_Data[i, 14] == 0 ? "NG" : "缺图"); + //m.CCDResult16 = m.CCD_Data[i, 15] == 1 ? "OK" : (m.CCD_Data[i, 15] == 0 ? "NG" : "缺图"); + //m.CCDResult17 = m.CCD_Data[i, 16] == 1 ? "OK" : (m.CCD_Data[i, 16] == 0 ? "NG" : "缺图"); + //m.CCDResult18 = m.CCD_Data[i, 17] == 1 ? "OK" : (m.CCD_Data[i, 17] == 0 ? "NG" : "缺图"); + //m.CCDResult19 = m.CCD_Data[i, 18] == 1 ? "OK" : (m.CCD_Data[i, 18] == 0 ? "NG" : "缺图"); + //m.CCDResult20 = m.CCD_Data[i, 19] == 1 ? "OK" : (m.CCD_Data[i, 19] == 0 ? "NG" : "缺图"); #region 注释代ç � //m.CCDResult21 = m.CCD_Data[i, 20] == 1 ? "OK" : (m.CCD_Data[i, 20] == 0 ? "NG" : "缺图"); @@ -1567,6 +1573,16 @@ namespace JinYuan.ControlCenters else MyRes[i] = 2;//扫ç �NG var judementResult = JudgmentWGJResult(1, m.CCD_Data, i); + + if (m.CCD_FLATNESS_Result != "OK") + { + //1OK,2扫ç �NG,3MESå��馈NG,4å…¶ä»–NG + judementResult.Item1 = 4; + OK_NG = "NG"; + NG_Type += $"{ConstValue.CCDSpecialDic["CCD_FLATNESS_RESULT"]}(NG),"; + } + + MyRes[i] = judementResult.Item1; OK_NG = judementResult.Item2; NG_Type = judementResult.Item3; diff --git a/JinYuan.MES/MesDataProcess.cs b/JinYuan.MES/MesDataProcess.cs index 21f7867..795704d 100644 --- a/JinYuan.MES/MesDataProcess.cs +++ b/JinYuan.MES/MesDataProcess.cs @@ -1226,8 +1226,14 @@ namespace JinYuan.MES string[] keys = line.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (keys.Length == 3) { - var temp = m.GetType().GetProperty(keys[1]).GetValue(m, null); + var prop = m.GetType().GetProperty(keys[1]); + if (prop == null) + { + continue; + } + + var temp = prop.GetValue(m, null); datavolist.Add(new TagDataVOListItem() { tagCode = keys[0], diff --git a/JinYuan.Models/BGearEntity.cs b/JinYuan.Models/BGearEntity.cs index 6b8e496..80dcfa3 100644 --- a/JinYuan.Models/BGearEntity.cs +++ b/JinYuan.Models/BGearEntity.cs @@ -82,6 +82,18 @@ namespace JinYuan.Models //public int CCD27 { get; set; } #endregion + #region CCDçš„å�•独地å�€ + /// + /// 测厚(å¹³é�¢åº¦) + /// + public float CCD_FLATNESS { get; set; } + + /// + /// 测厚(å¹³é�¢åº¦)结果 + /// + public string CCD_FLATNESS_Result { get; set; } + #endregion + public string CCD1NgCode { get; set; } public string CCD2NgCode { get; set; } public string CCD3NgCode { get; set; } diff --git a/JinYuan.Models/ConstValue.cs b/JinYuan.Models/ConstValue.cs index b2a6773..94865c8 100644 --- a/JinYuan.Models/ConstValue.cs +++ b/JinYuan.Models/ConstValue.cs @@ -11,32 +11,53 @@ namespace JinYuan.Models /// /// CCD采集项数 /// - public const int COUNT_CCD = 20; + public const int COUNT_CCD = 13; /// /// CCD采集项å��称列表 /// - public static string[] CCDNameArr = new string[20] { - "æ­£é�¢(2D/3D)", - "å��é�¢(2D/3D)", - "左侧é�¢(2D/3D)", - "å�³ä¾§é�¢(2D/3D)", - "é¡¶é�¢(2D/3D)", - "底é�¢(2D/3D)", - "底DE1", - "底DE2", - "底DE3", - "底DE4", - "中ME1", - "中ME2", - "中ME3", - "中ME4", - "æ­£æž�柱(POS)", - "è´Ÿæž�柱(NEG)", - "防爆阀(PRO)", - "二维ç �检测结果", - "厚度结果", - "å¹³é�¢åº¦ç»“æžœ" + public static string[] CCDNameArr = new string[COUNT_CCD] { + "大é�¢A", + "底部棱边1", + "四个侧棱边", + "电芯二侧é�¢", + "大é�¢B", + "防爆阀", + "二维ç �", + "二个底部长棱", + "底部棱边2", + "正负æž�æž�柱-1", + "正负æž�æž�柱-2", + "正负塑胶圈", + "顶底部检测" }; + + /// + /// CCD采集项(å�•独地å�€)列表 + /// + public static Dictionary CCDSpecialDic = new Dictionary { + { "CCD_FLATNESS", "测厚(å¹³é�¢åº¦)" }, + { "CCD_FLATNESS_RESULT", "测厚(å¹³é�¢åº¦)结果" } + }; + + public static string JudgeResult(int result) + { + string resultStr = string.Empty; + + if (result == 1) + { + resultStr = "OK"; + } + else if (result == 0) + { + resultStr = "NG"; + } + else + { + resultStr = "缺图"; + } + + return resultStr; + } } } diff --git a/JinYuan.VirtualDataLibrary/DBSQL.cs b/JinYuan.VirtualDataLibrary/DBSQL.cs index c52944d..45403e7 100644 --- a/JinYuan.VirtualDataLibrary/DBSQL.cs +++ b/JinYuan.VirtualDataLibrary/DBSQL.cs @@ -136,6 +136,11 @@ namespace JinYuan.VirtualDataLibrary sb.Append($",[CCDResult{i + 1}] '{ConstValue.CCDNameArr[i]}'"); } + foreach (var propName in ConstValue.CCDSpecialDic.Keys) + { + sb.Append($",[{propName}] '{ConstValue.CCDSpecialDic[propName]}'"); + } + string formatSql = sb.ToString(); string nextSql = @",[Result] 结果 diff --git a/LargeSquareOne/FrmDataMonitor.cs b/LargeSquareOne/FrmDataMonitor.cs index 8c4b9a7..383cf7d 100644 --- a/LargeSquareOne/FrmDataMonitor.cs +++ b/LargeSquareOne/FrmDataMonitor.cs @@ -154,6 +154,18 @@ namespace LargeSquareOne colDefList.Add(col); } + + foreach (var propName in ConstValue.CCDSpecialDic.Keys) + { + DataGridViewColumn col = new DataGridViewTextBoxColumn(); + + col.DataPropertyName = propName; + col.HeaderText = ConstValue.CCDSpecialDic[propName]; + col.Name = $"Col_ccd_{propName}"; + col.ReadOnly = true; + + colDefList.Add(col); + } #endregion DataGridViewColumn Column147 = new DataGridViewTextBoxColumn(); diff --git a/æ•°æ�®åº“/20260813.sql b/æ•°æ�®åº“/20260813.sql new file mode 100644 index 0000000..270938b --- /dev/null +++ b/æ•°æ�®åº“/20260813.sql @@ -0,0 +1,2 @@ +ALTER TABLE LargeSquareOne604.dbo.BGearEntity ADD CCD_FLATNESS nvarchar(255) NULL; +ALTER TABLE LargeSquareOne604.dbo.BGearEntity ADD CCD_FLATNESS_Result nvarchar(50) NULL; diff --git a/采集项目表.csv b/采集项目表.csv new file mode 100644 index 0000000..4b139ce --- /dev/null +++ b/采集项目表.csv @@ -0,0 +1,44 @@ +APPEARANCE_STANDARD,appearance_standard,Íâ¹Û±ê×¼£¨É趨ֵ£© +TOP_COVER_CODE_WGJC,BarCode,½øÕ¾µçоÌõÂë +OUT_BATTERY_BARCODE,BarCode,³öÕ¾µçоÌõÂë +BARCODE_MATCH_RESULT,barcode_match_result,½ø³öÕ¾ÌõÂëÆ¥Åä½á¹û +FLATNESS_WGJC02,CCD_FLATNESS,²âºñ£¨Æ½Ãæ¶È£© +FLATNESS_RESULTS_WGJC02,CCD_FLATNESS_RESULT,²âºñ£¨Æ½Ãæ¶È£©½á¹û +NEGATIVE_TERMINAL_NG_CODE,CCD16NgCode,¸º¼«Öù¼ì²âNG´úÂë +EXPLOSION_VALVE_NG_CODE,CCD17NgCode,·À±¬·§¼ì²âNG´úÂë +QR_CODE_NG_CODE,CCD18NgCode,¶þάÂë¼ì²âNG´úÂë +LARGE_SURFACE_A_NG_CODE,CCD1NgCode,´óÃæA¼ì²âNG´úÂë +LARGE_SURFACE_B_NG_CODE,CCD2NgCode,´óÃæB¼ì²âNG´úÂë +POSITIVE_SIDE_NG_CODE,CCD3NgCode,Õý¼«²àÃæ¼ì²âNG´úÂë +NEGATIVE_SIDE_NG_CODE,CCD4NgCode,¸º¼«²àÃæ¼ì²âNG´úÂë +TOP_SURFACE_NG_CODE,CCD5NgCode,¶¥Ãæ¼ì²âNG´úÂë +BOTTOM_SURFACE_NG_CODE,CCD6NgCode,µ×Ãæ¼ì²âNG´úÂë +LARGESURFACEA_WGJC02,CCDResult1,´óÃæA¼ì²â½á¹û +POSITIVE_AND_NEGATIVE_POLES1_WGJC02,CCDResult10,Õý¸º¼«¼«Öù-1 +POSITIVE_TERMINAL_NG_CODE,CCDResult11,Õý¸º¼«¼«Öù-2 +POSITIVE_AND_NEGATIVE_PLASTRICRINGS_WGJC02,CCDResult12,Õý¸ºËܽºÈ¦ +TOP_AND_BOTTOM_DETECTION_WGJC02,CCDResult13,¶¥µ×²¿¼ì²â +POSITIVE_AND_NEGATIVE_POLES2_WGJC02,CCDResult16,¸º¼«Öù¼ì²â½á¹û +FREE_STATE_THICKNESS_JUDGMENT,CCDResult19,×ÔÓÉ̬ºñ¶È£¨Åж¨½á¹û£© +BOTTOM_EDGE1_WGJC02,CCDResult2,µ×²¿Áâ±ß1 +OVERALL_APPEARANCE_RESULT_WGJC02,CCDResult22,Íâ¹Û×ܽá¹û +FOUR_SIDE_EDGES_WGJC02,CCDResult3,Ëĸö²àÀâ±ß +POSITIVE_SIDE_INSPECTION_RESULT,CCDResult30,Õý¼«²àÃæ¼ì²â½á¹û +NEGATIVE_SIDE_INSPECTION_RESULT,CCDResult30,¸º¼«²àÃæ¼ì²â½á¹û +TOP_SURFACE_INSPECTION_RESULT,CCDResult30,¶¥Ãæ¼ì²â½á¹û +BOTTOM_SURFACE_INSPECTION_RESULT,CCDResult30,µ×Ãæ¼ì²â½á¹û +TWOSIDESOFTHEBATTERYCELL_WGJC02,CCDResult4,µçо¶þ²àÃæ +LARGESURFACEB_WGJC02,CCDResult5,´óÃæB¼ì²â½á¹û +EXPLOSION_PROOF_VALVE_WGJC02,CCDResult6,·À±¬·§¼ì²â½á¹û +QR_CODE_WGJC02,CCDResult7,¶þάÂë¼ì²â½á¹û +TWO_LONG_EDGES_WGJC02,CCDResult8,¶þ¸öµ×²¿³¤Àâ +BOTTOM_EDGE2_WGJC02,CCDResult9,µ×²¿Àâ±ß2 +INBOUND_TIME_WGJC,CSBYHINSTATIONTIME,½øÕ¾Ê±¼ä +OUT_TIME_WGJC,CSBYHOUTSTATIONTIME,³öվʱ¼ä +FLATNESS_SETPOINT,flatness_setpoint,Æ½Ãæ¶È£¨É趨ֵ£© +IN_BATTERY_GRADE,in_battery_grade,½øÕ¾µçоÌõÂëµÈ¼¶ +NG_CODE_SUMMARY,ng_code_summary,NG´úÂë»ã×Ü +OUT_BATTERY_GRADE,out_battery_grade,³öÕ¾µçоÌõÂëµÈ¼¶ +FREE_STATE_THICKNESS_SETPOINT,Thickness1,×ÔÓÉ̬ºñ¶È£¨É趨ֵ£© +FREE_STATE_THICKNESS_ACTUAL,ThicknessResult1,×ÔÓÉ̬ºñ¶È£¨Êµ¼ÊÖµ£© +²É¼¯Ïî±àÂë,²É¼¯Ïî×Ö¶Î,²É¼¯ÏîÃèÊö