diff --git a/.gitignore b/.gitignore index cfa7f5e..200cf9d 100644 --- a/.gitignore +++ b/.gitignore @@ -362,3 +362,4 @@ MigrationBackup/ FodyWeavers.xsd *.rar /LargeSquareOne/App.config +/JinYuan.Helper/JinYuan.Helper.csproj.user diff --git a/JinYuan.ControlCenter/ControlCenter_Plc.cs b/JinYuan.ControlCenter/ControlCenter_Plc.cs index 5882474..158e54b 100644 --- a/JinYuan.ControlCenter/ControlCenter_Plc.cs +++ b/JinYuan.ControlCenter/ControlCenter_Plc.cs @@ -1790,487 +1790,488 @@ namespace JinYuan.ControlCenters private void BlankingStation(JYResult bArrays, object plcModel) { Group pf = plcModel as Group; - if (bArrays == null) + if (bArrays == null || !bArrays.IsSuccess || bArrays.Content == null) { CommonMethods.PlcLink.WriteInt16(pf.VarList[0].VarAddress, 0);//置位0 CommonMethods.AddLog(false, $"电芯出站PLC有触发信号,但无数据!"); LoggerHelp.WriteLog($"电芯出站PLC有触发信号,但无数据!", "SysErrorLog"); + + return; } - if (bArrays.IsSuccess && bArrays.Content != null) + + Random random = new Random(); + //解析数据 + sw2.Restart(); + #region 数据变量定义 + List list = new List();//实体 + //int[] MyRes = new int[2];//AB反馈结果 + int[] MyRes = new int[3];//三个外观检测反馈结果 + #endregion + //高低位转换 + byte[] bytes = bArrays.Content.ByteReverse(); + byte[] bytes1 = bArrays.Content; + + List listBarCode = GetList(3, "");//电芯条码 + //List listNum = GetList(1, "");//进站磁悬浮动子编号 + List listRes = GetList(3, 0);//出站电芯反馈结果 + //反馈结果 + #region 电芯解析 + //电芯解析 从3200 开始 + listBarCode[0] = StringLib.GetStringFromByteArrayByEncoding(bytes, 0, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); + listBarCode[1] = StringLib.GetStringFromByteArrayByEncoding(bytes, 40, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); + listBarCode[2] = StringLib.GetStringFromByteArrayByEncoding(bytes, 80, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); + #endregion + #region 上传MES + //D3200起 + for (int i = 0; i < 3; i++) { - Random random = new Random(); - //解析数据 - sw2.Restart(); - #region 数据变量定义 - List list = new List();//实体 - //int[] MyRes = new int[2];//AB反馈结果 - int[] MyRes = new int[3];//三个外观检测反馈结果 - #endregion - //高低位转换 - byte[] bytes = bArrays.Content.ByteReverse(); - byte[] bytes1 = bArrays.Content; - - List listBarCode = GetList(3, "");//电芯条码 - //List listNum = GetList(1, "");//进站磁悬浮动子编号 - List listRes = GetList(3, 0);//出站电芯反馈结果 - //反馈结果 - #region 电芯解析 - //电芯解析 从3200 开始 - listBarCode[0] = StringLib.GetStringFromByteArrayByEncoding(bytes, 0, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); - listBarCode[1] = StringLib.GetStringFromByteArrayByEncoding(bytes, 40, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); - listBarCode[2] = StringLib.GetStringFromByteArrayByEncoding(bytes, 80, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); - #region 上传MES - //D3200起 - for (int i = 0; i < 3; i++) + try { - try + BGearEntity m = new BGearEntity(); + AGearEntity TT = new AGearEntity(); + //极限件标志 + int ChallengeFlag = 0; + //芯包信息1 D3300~D3326 + //芯包信息2 D3330~D3356 + //芯包信息3 D3360~D3386 + for (int j = 0; j < 27; j++) { - BGearEntity m = new BGearEntity(); - AGearEntity TT = new AGearEntity(); - //极限件标志 - int ChallengeFlag = 0; - //芯包信息1 D3300~D3326 - //芯包信息2 D3330~D3356 - //芯包信息3 D3360~D3386 - for (int j = 0; j < 27; j++) + m.CCD_Data[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 200 + i * 30 * 2 + j * 2, DataFormat.CDAB); + } + // CCD + m.CCD_Data[i, 19] = ShortLib.GetShortFromByteArray(bArrays.Content, 600 + i * 30 * 2 + 20, DataFormat.CDAB); + + //3400 3430 3460 + m.Thickness1 = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2, DataFormat.CDAB).ToString(); + //3401 3431 3461 + m.ThicknessResult1 = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2 + 2 * 2, DataFormat.CDAB).ToString(); + //3500 3530 3560 + m.flatness_setpoint = FloatLib.GetFloatFromByteArray(bArrays.Content, 600 + i * 30 * 2, DataFormat.CDAB).ToString(); + m.flatness_actual = FloatLib.GetFloatFromByteArray(bArrays.Content, 600 + i * 30 * 2 + 2 * 2, DataFormat.CDAB).ToString(); + //厚度3400 + //for (int j = 0; j < 3; j++) + //{ + // m.Thickness_Data[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2 + j * 4, DataFormat.CDAB); + //} + ////厚度plc 3500 + //for (int j = 0; j < 3; j++) + //{ + // m.Thickness_PLCData[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 500 + i * 30 * 2 + j * 2, DataFormat.CDAB); + //} + //不良ng编号4300 + //for (int j = 0; j < 20; j++) + //{ + // m.CCD_NgNo[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 2200 + i * 30 * 2 + j * 2, DataFormat.CDAB); + //} + for (int j = 0; j < 27; j++) + { + m.CCD_NgNo[i, j] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, (7800 * 2 + j * 40 * 2 + i * 2 * 1000), 20 * 2, System.Text.Encoding.ASCII). + Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); + //ShortLib.GetShortFromByteArray(bArrays.Content, 6800 *2 + j * 2, DataFormat.CDAB); + } + + #region 视觉新增不良缺陷数据 by clm 20260724 + List qrCodeAddressList = new List(); + for (int k = 0; k < 4; k++) + { + int address = 9750 + k * 2 + i * 8; + qrCodeAddressList.Add(address); + } + + m.QrCodeWidth = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[0], DataFormat.CDAB).ToString(); + m.QrCodeHeight = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[1], DataFormat.CDAB).ToString(); + m.QrCodeTopMargin = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[2], DataFormat.CDAB).ToString(); + m.QrCodeLeftMargin = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[3], DataFormat.CDAB).ToString(); + #endregion + + //芯包扫码时间 + //m.ScanTime[i] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + m.BarCode = listBarCode[i]; + //m.CSBYHCODEA = "TEST"; + #region 极限件查询 + //var EX = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetChallengeCode(m.BarCode)); + //for (int j = 0; j < EX.Count; j++) + //{ + // if (string.Compare(EX[j].ChallengeBarCode, m.BarCode) == 0) + // { + // m.Remark += "(极限件," + EX[j].CodeMessage + "," + EX[j].WeldingCCD + ")"; + // ChallengeFlag = 1; + // } + //} + #endregion + //查询进站时间数据 + var w = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetInTime(m.BarCode)); + //获取新一行数据 + if (w.Count > 0) + TT = w[w.Count - 1]; + // + //if (w.Count > 0) + // TT = w[0]; + if (TT.TestTime != null) + m.ScanTime[0] = TT.TestTime; + else + m.ScanTime[0] = ""; + //芯包出站时间 + m.ScanTime[1] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + //复投次数 + m.RethrowNum = 0; + if (w.Count > 0) + { + int cccc = w.Count; + m.RethrowNum = cccc - 1; + } + + int Code_NG = 0;//条码有无标志 1为有,2为无 + //判断有无条码 + if (m.BarCode != null && m.BarCode != "" && m.BarCode != "ERROR") + Code_NG = 1; + else + Code_NG = 2; + + //m.ChannelNo = m.MyNo[i]; + //m.TestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + //不良代码判定 + //List NGcodeList = new List(); + //NGcodeList = NGcode(m.list_Data1[i, 10], m.list_Data1[i, 11], m.list_Data1[i, 12], m.list_Data1[i, 15], m.list_Data1[i, 26], m.list_Data1[i, 16] + // , m.list_Data1[i, 17], m.list_Data1[i, 18], m.list_Data1[i, 19], m.list_Data1[i, 23], m.list_Data1[i, 24], m.list_Data1[i, 25], m.list_Data1[i, 27]); + // var (NGcodeList, NGmessage) = NGWGJcode(m.CCD_Data, i); + + //电芯CCD判定结果 + #region //电芯CCD判定结果 1 0K 0NG 2缺图 + m.CCD1 = m.CCD_Data[i, 0]; + m.CCD2 = m.CCD_Data[i, 1]; + m.CCD3 = m.CCD_Data[i, 2]; + m.CCD4 = m.CCD_Data[i, 3]; + m.CCD5 = m.CCD_Data[i, 4]; + m.CCD6 = m.CCD_Data[i, 5]; + m.CCD7 = m.CCD_Data[i, 6]; + m.CCD8 = m.CCD_Data[i, 7]; + m.CCD9 = m.CCD_Data[i, 8]; + m.CCD10 = m.CCD_Data[i, 9]; + 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.CCD21 = m.CCD_Data[i, 20]; + m.CCD22 = m.CCD_Data[i, 21]; + m.CCD23 = m.CCD_Data[i, 22]; + m.CCD24 = m.CCD_Data[i, 23]; + m.CCD25 = m.CCD_Data[i, 24]; + m.CCD26 = m.CCD_Data[i, 25]; + m.CCD27 = m.CCD_Data[i, 26]; + + 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" : "缺图"); + m.CCDResult3 = m.CCD_Data[i, 2] == 1 ? "OK" : (m.CCD_Data[i, 2] == 0 ? "NG" : "缺图"); + m.CCDResult4 = m.CCD_Data[i, 3] == 1 ? "OK" : (m.CCD_Data[i, 3] == 0 ? "NG" : "缺图"); + m.CCDResult5 = m.CCD_Data[i, 4] == 1 ? "OK" : (m.CCD_Data[i, 4] == 0 ? "NG" : "缺图"); + m.CCDResult6 = m.CCD_Data[i, 5] == 1 ? "OK" : (m.CCD_Data[i, 5] == 0 ? "NG" : "缺图"); + m.CCDResult7 = m.CCD_Data[i, 6] == 1 ? "OK" : (m.CCD_Data[i, 6] == 0 ? "NG" : "缺图"); + m.CCDResult8 = m.CCD_Data[i, 7] == 1 ? "OK" : (m.CCD_Data[i, 7] == 0 ? "NG" : "缺图"); + m.CCDResult9 = m.CCD_Data[i, 8] == 1 ? "OK" : (m.CCD_Data[i, 8] == 0 ? "NG" : "缺图"); + m.CCDResult10 = m.CCD_Data[i, 9] == 1 ? "OK" : (m.CCD_Data[i, 9] == 0 ? "NG" : "缺图"); + 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.CCDResult21 = m.CCD_Data[i, 20] == 1 ? "OK" : (m.CCD_Data[i, 20] == 0 ? "NG" : "缺图"); + m.CCDResult22 = m.CCD_Data[i, 21] == 9 ? "OK" : (m.CCD_Data[i, 21] == 1 ? "NG" : "缺图"); //总结果 + m.CCDResult23 = m.CCD_Data[i, 22] == 1 ? "OK" : (m.CCD_Data[i, 22] == 0 ? "NG" : "缺图"); + m.CCDResult24 = m.CCD_Data[i, 23] == 1 ? "OK" : (m.CCD_Data[i, 23] == 0 ? "NG" : "缺图"); + m.CCDResult25 = m.CCD_Data[i, 24] == 1 ? "OK" : (m.CCD_Data[i, 24] == 0 ? "NG" : "缺图"); + m.CCDResult26 = m.CCD_Data[i, 25] == 1 ? "OK" : (m.CCD_Data[i, 25] == 0 ? "NG" : "缺图"); + m.CCDResult27 = m.CCD_Data[i, 26] == 1 ? "OK" : (m.CCD_Data[i, 26] == 0 ? "NG" : "缺图"); + m.CCD1NgCode = m.CCD_NgNo[i, 0]; + m.CCD2NgCode = m.CCD_NgNo[i, 1]; + m.CCD3NgCode = m.CCD_NgNo[i, 2]; + m.CCD4NgCode = m.CCD_NgNo[i, 3]; + m.CCD5NgCode = m.CCD_NgNo[i, 4]; + m.CCD6NgCode = m.CCD_NgNo[i, 5]; + m.CCD7NgCode = m.CCD_NgNo[i, 6]; + m.CCD8NgCode = m.CCD_NgNo[i, 7]; + m.CCD9NgCode = m.CCD_NgNo[i, 8]; + m.CCD10NgCode = m.CCD_NgNo[i, 9]; + m.CCD11NgCode = m.CCD_NgNo[i, 10]; + m.CCD12NgCode = m.CCD_NgNo[i, 11]; + m.CCD13NgCode = m.CCD_NgNo[i, 12]; + m.CCD14NgCode = m.CCD_NgNo[i, 13]; + m.CCD15NgCode = m.CCD_NgNo[i, 14]; + m.CCD16NgCode = m.CCD_NgNo[i, 15]; + m.CCD17NgCode = m.CCD_NgNo[i, 16]; + m.CCD18NgCode = m.CCD_NgNo[i, 17]; + m.CCD19NgCode = m.CCD_NgNo[i, 18]; + m.CCD20NgCode = m.CCD_NgNo[i, 19]; + m.CCD21NgCode = m.CCD_NgNo[i, 20]; + m.CCD22NgCode = m.CCD_NgNo[i, 21]; + m.CCD23NgCode = m.CCD_NgNo[i, 22]; + m.CCD24NgCode = m.CCD_NgNo[i, 23]; + m.CCD25NgCode = m.CCD_NgNo[i, 24]; + m.CCD26NgCode = m.CCD_NgNo[i, 25]; + m.CCD27NgCode = m.CCD_NgNo[i, 26]; + #endregion + + m.CSBYHASCANNINGTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + m.CSBYHPROCESSNAME = "外观检测"; + m.CSBYHSCHEDULE = CommonMethods.strClass; + m.CSBYHINSTATIONTIME = m.ScanTime[0]; + m.CSBYHOUTSTATIONTIME = m.ScanTime[1]; + m.MaterialCode = CommonMethods.mesConfig.MaterialCode; + //m.Thickness1 = SaveTwoNum(m.Thickness_Data[i, 0]); + //m.Thickness2 = SaveTwoNum(m.Thickness_Data[i, 1]); + //m.Thickness3 = SaveTwoNum(m.Thickness_Data[i, 2]); + m.ChannelNo = i + 1; + { //此处预留 + m.out_battery_grade = "";//出入站条码等级 + m.in_battery_grade = ""; + m.appearance_standard = ""; + } + //条码,芯包重量,芯包侧厚,芯包CCD极性检测,电芯裁切粘连,电芯裁切毛刺,芯包焊印位置, + //芯包正面极耳撕裂,芯包背面极耳撕裂,芯包正面极耳翻折,芯包背面极耳翻折 + if (Code_NG == 1) + { + for (int ii = 0; ii < 16; ii++) { - m.CCD_Data[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 200 + i * 30 * 2 + j * 2, DataFormat.CDAB); - } - // CCD - m.CCD_Data[i, 19] = ShortLib.GetShortFromByteArray(bArrays.Content, 600 + i * 30 * 2 + 20, DataFormat.CDAB); - - //3400 3430 3460 - m.Thickness1 = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2, DataFormat.CDAB).ToString(); - //3401 3431 3461 - m.ThicknessResult1 = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2 + 2 * 2, DataFormat.CDAB).ToString(); - //3500 3530 3560 - m.flatness_setpoint = FloatLib.GetFloatFromByteArray(bArrays.Content, 600 + i * 30 * 2, DataFormat.CDAB).ToString(); - m.flatness_actual = FloatLib.GetFloatFromByteArray(bArrays.Content, 600 + i * 30 * 2 + 2 * 2, DataFormat.CDAB).ToString(); - //厚度3400 - //for (int j = 0; j < 3; j++) - //{ - // m.Thickness_Data[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 400 + i * 30 * 2 + j * 4, DataFormat.CDAB); - //} - ////厚度plc 3500 - //for (int j = 0; j < 3; j++) - //{ - // m.Thickness_PLCData[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 500 + i * 30 * 2 + j * 2, DataFormat.CDAB); - //} - //不良ng编号4300 - //for (int j = 0; j < 20; j++) - //{ - // m.CCD_NgNo[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 2200 + i * 30 * 2 + j * 2, DataFormat.CDAB); - //} - for (int j = 0; j < 27; j++) - { - m.CCD_NgNo[i, j] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, (7800 * 2 + j * 40 * 2 + i * 2 * 1000), 20 * 2, System.Text.Encoding.ASCII). - Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim(); - //ShortLib.GetShortFromByteArray(bArrays.Content, 6800 *2 + j * 2, DataFormat.CDAB); - } - - #region 视觉新增不良缺陷数据 by clm 20260724 - List qrCodeAddressList = new List(); - for (int k = 0; k < 4; k++) - { - int address = 9750 + k * 2 + i * 8; - qrCodeAddressList.Add(address); - } - - m.QrCodeWidth = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[0], DataFormat.CDAB).ToString(); - m.QrCodeHeight = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[1], DataFormat.CDAB).ToString(); - m.QrCodeTopMargin = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[2], DataFormat.CDAB).ToString(); - m.QrCodeLeftMargin = FloatLib.GetFloatFromByteArray(bArrays.Content, qrCodeAddressList[3], DataFormat.CDAB).ToString(); - #endregion - - //芯包扫码时间 - //m.ScanTime[i] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - m.BarCode = listBarCode[i]; - //m.CSBYHCODEA = "TEST"; - #region 极限件查询 - //var EX = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetChallengeCode(m.BarCode)); - //for (int j = 0; j < EX.Count; j++) - //{ - // if (string.Compare(EX[j].ChallengeBarCode, m.BarCode) == 0) - // { - // m.Remark += "(极限件," + EX[j].CodeMessage + "," + EX[j].WeldingCCD + ")"; - // ChallengeFlag = 1; - // } - //} - #endregion - //查询进站时间数据 - var w = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetInTime(m.BarCode)); - //获取新一行数据 - if (w.Count > 0) - TT = w[w.Count - 1]; - // - //if (w.Count > 0) - // TT = w[0]; - if (TT.TestTime != null) - m.ScanTime[0] = TT.TestTime; - else - m.ScanTime[0] = ""; - //芯包出站时间 - m.ScanTime[1] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - - //复投次数 - m.RethrowNum = 0; - if (w.Count > 0) - { - int cccc = w.Count; - m.RethrowNum = cccc - 1; - } - - int Code_NG = 0;//条码有无标志 1为有,2为无 - //判断有无条码 - if (m.BarCode != null && m.BarCode != "" && m.BarCode != "ERROR") - Code_NG = 1; - else - Code_NG = 2; - - //m.ChannelNo = m.MyNo[i]; - //m.TestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - - //不良代码判定 - //List NGcodeList = new List(); - //NGcodeList = NGcode(m.list_Data1[i, 10], m.list_Data1[i, 11], m.list_Data1[i, 12], m.list_Data1[i, 15], m.list_Data1[i, 26], m.list_Data1[i, 16] - // , m.list_Data1[i, 17], m.list_Data1[i, 18], m.list_Data1[i, 19], m.list_Data1[i, 23], m.list_Data1[i, 24], m.list_Data1[i, 25], m.list_Data1[i, 27]); - // var (NGcodeList, NGmessage) = NGWGJcode(m.CCD_Data, i); - - //电芯CCD判定结果 - #region //电芯CCD判定结果 1 0K 0NG 2缺图 - m.CCD1 = m.CCD_Data[i, 0]; - m.CCD2 = m.CCD_Data[i, 1]; - m.CCD3 = m.CCD_Data[i, 2]; - m.CCD4 = m.CCD_Data[i, 3]; - m.CCD5 = m.CCD_Data[i, 4]; - m.CCD6 = m.CCD_Data[i, 5]; - m.CCD7 = m.CCD_Data[i, 6]; - m.CCD8 = m.CCD_Data[i, 7]; - m.CCD9 = m.CCD_Data[i, 8]; - m.CCD10 = m.CCD_Data[i, 9]; - 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.CCD21 = m.CCD_Data[i, 20]; - m.CCD22 = m.CCD_Data[i, 21]; - m.CCD23 = m.CCD_Data[i, 22]; - m.CCD24 = m.CCD_Data[i, 23]; - m.CCD25 = m.CCD_Data[i, 24]; - m.CCD26 = m.CCD_Data[i, 25]; - m.CCD27 = m.CCD_Data[i, 26]; - - 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" : "缺图"); - m.CCDResult3 = m.CCD_Data[i, 2] == 1 ? "OK" : (m.CCD_Data[i, 2] == 0 ? "NG" : "缺图"); - m.CCDResult4 = m.CCD_Data[i, 3] == 1 ? "OK" : (m.CCD_Data[i, 3] == 0 ? "NG" : "缺图"); - m.CCDResult5 = m.CCD_Data[i, 4] == 1 ? "OK" : (m.CCD_Data[i, 4] == 0 ? "NG" : "缺图"); - m.CCDResult6 = m.CCD_Data[i, 5] == 1 ? "OK" : (m.CCD_Data[i, 5] == 0 ? "NG" : "缺图"); - m.CCDResult7 = m.CCD_Data[i, 6] == 1 ? "OK" : (m.CCD_Data[i, 6] == 0 ? "NG" : "缺图"); - m.CCDResult8 = m.CCD_Data[i, 7] == 1 ? "OK" : (m.CCD_Data[i, 7] == 0 ? "NG" : "缺图"); - m.CCDResult9 = m.CCD_Data[i, 8] == 1 ? "OK" : (m.CCD_Data[i, 8] == 0 ? "NG" : "缺图"); - m.CCDResult10 = m.CCD_Data[i, 9] == 1 ? "OK" : (m.CCD_Data[i, 9] == 0 ? "NG" : "缺图"); - 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.CCDResult21 = m.CCD_Data[i, 20] == 1 ? "OK" : (m.CCD_Data[i, 20] == 0 ? "NG" : "缺图"); - m.CCDResult22 = m.CCD_Data[i, 21] == 9 ? "OK" : (m.CCD_Data[i, 21] == 1 ? "NG" : "缺图"); //总结果 - m.CCDResult23 = m.CCD_Data[i, 22] == 1 ? "OK" : (m.CCD_Data[i, 22] == 0 ? "NG" : "缺图"); - m.CCDResult24 = m.CCD_Data[i, 23] == 1 ? "OK" : (m.CCD_Data[i, 23] == 0 ? "NG" : "缺图"); - m.CCDResult25 = m.CCD_Data[i, 24] == 1 ? "OK" : (m.CCD_Data[i, 24] == 0 ? "NG" : "缺图"); - m.CCDResult26 = m.CCD_Data[i, 25] == 1 ? "OK" : (m.CCD_Data[i, 25] == 0 ? "NG" : "缺图"); - m.CCDResult27 = m.CCD_Data[i, 26] == 1 ? "OK" : (m.CCD_Data[i, 26] == 0 ? "NG" : "缺图"); - m.CCD1NgCode = m.CCD_NgNo[i, 0]; - m.CCD2NgCode = m.CCD_NgNo[i, 1]; - m.CCD3NgCode = m.CCD_NgNo[i, 2]; - m.CCD4NgCode = m.CCD_NgNo[i, 3]; - m.CCD5NgCode = m.CCD_NgNo[i, 4]; - m.CCD6NgCode = m.CCD_NgNo[i, 5]; - m.CCD7NgCode = m.CCD_NgNo[i, 6]; - m.CCD8NgCode = m.CCD_NgNo[i, 7]; - m.CCD9NgCode = m.CCD_NgNo[i, 8]; - m.CCD10NgCode = m.CCD_NgNo[i, 9]; - m.CCD11NgCode = m.CCD_NgNo[i, 10]; - m.CCD12NgCode = m.CCD_NgNo[i, 11]; - m.CCD13NgCode = m.CCD_NgNo[i, 12]; - m.CCD14NgCode = m.CCD_NgNo[i, 13]; - m.CCD15NgCode = m.CCD_NgNo[i, 14]; - m.CCD16NgCode = m.CCD_NgNo[i, 15]; - m.CCD17NgCode = m.CCD_NgNo[i, 16]; - m.CCD18NgCode = m.CCD_NgNo[i, 17]; - m.CCD19NgCode = m.CCD_NgNo[i, 18]; - m.CCD20NgCode = m.CCD_NgNo[i, 19]; - m.CCD21NgCode = m.CCD_NgNo[i, 20]; - m.CCD22NgCode = m.CCD_NgNo[i, 21]; - m.CCD23NgCode = m.CCD_NgNo[i, 22]; - m.CCD24NgCode = m.CCD_NgNo[i, 23]; - m.CCD25NgCode = m.CCD_NgNo[i, 24]; - m.CCD26NgCode = m.CCD_NgNo[i, 25]; - m.CCD27NgCode = m.CCD_NgNo[i, 26]; - #endregion - - m.CSBYHASCANNINGTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - m.CSBYHPROCESSNAME = "外观检测"; - m.CSBYHSCHEDULE = CommonMethods.strClass; - m.CSBYHINSTATIONTIME = m.ScanTime[0]; - m.CSBYHOUTSTATIONTIME = m.ScanTime[1]; - m.MaterialCode = CommonMethods.mesConfig.MaterialCode; - //m.Thickness1 = SaveTwoNum(m.Thickness_Data[i, 0]); - //m.Thickness2 = SaveTwoNum(m.Thickness_Data[i, 1]); - //m.Thickness3 = SaveTwoNum(m.Thickness_Data[i, 2]); - m.ChannelNo = i + 1; - { //此处预留 - m.out_battery_grade = "";//出入站条码等级 - m.in_battery_grade = ""; - m.appearance_standard = ""; - } - //条码,芯包重量,芯包侧厚,芯包CCD极性检测,电芯裁切粘连,电芯裁切毛刺,芯包焊印位置, - //芯包正面极耳撕裂,芯包背面极耳撕裂,芯包正面极耳翻折,芯包背面极耳翻折 - if (Code_NG == 1) - { - for (int ii = 0; ii < 16; ii++) + if (m.CCD_Data[i, ii] != 1) { - if (m.CCD_Data[i, ii] != 1) - { - //1OK,2扫码NG,3MES反馈NG,4其他NG - MyRes[i] = 4; - break; - } - + //1OK,2扫码NG,3MES反馈NG,4其他NG + MyRes[i] = 4; + break; } + } - else - MyRes[i] = 2;//扫码NG - var judementResult = JudgmentWGJResult(1, m.CCD_Data, i); - MyRes[i] = judementResult.Item1; - OK_NG = judementResult.Item2; - NG_Type = judementResult.Item3; - m.Result = MyRes[i]; + } + else + MyRes[i] = 2;//扫码NG + var judementResult = JudgmentWGJResult(1, m.CCD_Data, i); + MyRes[i] = judementResult.Item1; + OK_NG = judementResult.Item2; + NG_Type = judementResult.Item3; + m.Result = MyRes[i]; - m.CSBYHOUTSTATIONJUDGMENTRESULT = m.judgment_result[i] = OK_NG; + m.CSBYHOUTSTATIONJUDGMENTRESULT = m.judgment_result[i] = OK_NG; - m.Remark += NG_Type; - NG_Type = "";//清除上一次不良字符串 - OK_NG = ""; //清除上一次结果 + m.Remark += NG_Type; + NG_Type = "";//清除上一次不良字符串 + OK_NG = ""; //清除上一次结果 - list.Add(m); + list.Add(m); - string ur2 = CommonMethods.mesConfig.ResultProcessParamMesUrl; - string siteCode1 = CommonMethods.mesConfig.siteCode; - string lineCode1 = CommonMethods.mesConfig.lineCode; - string equipNum1 = CommonMethods.mesConfig.equipNum; - string materialCode1 = CommonMethods.mesConfig.MaterialCode; - string userName1 = CommonMethods.mesConfig.mesUserName; - MesUploadType unloadType = MesUploadType.DD; - string Mesage = ""; - //加判断无条码不上传mes 1为有条码 - if (Code_NG == 1) + string ur2 = CommonMethods.mesConfig.ResultProcessParamMesUrl; + string siteCode1 = CommonMethods.mesConfig.siteCode; + string lineCode1 = CommonMethods.mesConfig.lineCode; + string equipNum1 = CommonMethods.mesConfig.equipNum; + string materialCode1 = CommonMethods.mesConfig.MaterialCode; + string userName1 = CommonMethods.mesConfig.mesUserName; + MesUploadType unloadType = MesUploadType.DD; + string Mesage = ""; + //加判断无条码不上传mes 1为有条码 + if (Code_NG == 1) + { + string MesMessage = ""; + MesResType mesResType = MesResType.C; + if (CommonMethods.mesConfig.isUpMes) { - string MesMessage = ""; - MesResType mesResType = MesResType.C; - if (CommonMethods.mesConfig.isUpMes) + string url = CommonMethods.mesConfig.OutStationMesUrl; + string siteCode = CommonMethods.mesConfig.siteCode; + string lineCode = CommonMethods.mesConfig.lineCode; + string equipNum = CommonMethods.mesConfig.equipNum; + string materialCode = CommonMethods.mesConfig.MaterialCode; + string userName = CommonMethods.mesConfig.mesUserName; + int type = 1; + //int type = 1; + //string materialLotCodeLocator = ""; + var (NGcodeList, NGmessage) = NGWGJcode(m.CCD_NgNo, i); + bool Res = CommonMethods.hbgMes.OutboundInformations(url, siteCode, lineCode, equipNum, materialCode, userName, m, ref MesMessage, ref mesResType, NGcodeList, NGmessage); + //bool Res = CommonMethods.hbgMes.SingleCellOutStation(url, siteCode, lineCode, equipNum, materialCode, userName, m,) + if (MesMessage.Contains("发生一个或多个错误")) { - string url = CommonMethods.mesConfig.OutStationMesUrl; - string siteCode = CommonMethods.mesConfig.siteCode; - string lineCode = CommonMethods.mesConfig.lineCode; - string equipNum = CommonMethods.mesConfig.equipNum; - string materialCode = CommonMethods.mesConfig.MaterialCode; - string userName = CommonMethods.mesConfig.mesUserName; - int type = 1; - //int type = 1; - //string materialLotCodeLocator = ""; - var (NGcodeList, NGmessage) = NGWGJcode(m.CCD_NgNo, i); - bool Res = CommonMethods.hbgMes.OutboundInformations(url, siteCode, lineCode, equipNum, materialCode, userName, m, ref MesMessage, ref mesResType, NGcodeList, NGmessage); - //bool Res = CommonMethods.hbgMes.SingleCellOutStation(url, siteCode, lineCode, equipNum, materialCode, userName, m,) - if (MesMessage.Contains("发生一个或多个错误")) - { - MesMessage = "上传失败,"; - } - else - { - m.Flag = 1; - } - if (Res) - { - //MES出站判定结果 - m.Result = MyRes[i]; - ////芯包重量1判定结果 - //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; } - ////芯包侧厚判定结果 - //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; } - ////芯包CCD极性检测结果 - //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; } - m.Remark += MesMessage; - } - else - { - switch (mesResType) - { - case MesResType.A:// 停线,设备报警停机 - //m.listRes[i] = 10; - // m.Result = MyRes[i] = 2; - m.Result = MyRes[i] = 3; - m.Remark += "MES NG"; - break; - case MesResType.B://不停机,MEs NG品要排出,要给PLC发NG信号 - //m.listRes[i] = 9; - // m.Result = MyRes[i] = 2; - m.Result = MyRes[i] = 3; - m.Remark += "MES NG"; - break; - case MesResType.C://可忽略 - //m.listRes[i] = 1; - // m.Result = MyRes[i] = 2; - m.Result = MyRes[i] = 1; - m.Remark += "MES Alerm OK"; - break; - case MesResType.D://可忽略 - //m.listRes[i] = 1; - // m.Result = MyRes[i] = 2; - m.Result = MyRes[i] = 1; - m.Remark += "MES OK"; - break; - default: - m.Remark += "MES NG"; - m.Result = MyRes[i] = 3; - break; - } - ////芯包重量1判定结果 - //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; } - ////芯包侧厚判定结果 - //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; } - ////芯包CCD极性检测结果 - //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; } - m.Remark += MesMessage; - } - //发送产品结果参数给MES - bool Res1 = CommonMethods.hbgMes.ProducResultParam(ur2, siteCode1, lineCode1, equipNum1, materialCode1, userName1, m, unloadType, ref Mesage); - list[i].PlcResult = MyRes[i]; - #region 排出 5 厚度NG电芯 6 外观NG电芯, - if (list[i].PlcResult != 1) - { - //厚度不良分档 5 测厚不良 6 外观不良 - if (list[i].CCD19 != 1) - { - m.Result = MyRes[i] = 5; - list[i].Remark += $",测厚度NG"; - } - else - { - //外观不良分档 - m.Result = MyRes[i] = 6; - list[i].Remark += $",外观检NG不良"; - } - - } - - #endregion - - if (m.Flag == 1) - m.UpState = "已上传"; - else - m.UpState = "未上传"; + MesMessage = "上传失败,"; } else { - m.Result = MyRes[i]; - m.Remark += "本地存储"; - m.UpState = "未上传"; + m.Flag = 1; } - if (CommonMethods.sysConfig.OKSwitching) + if (Res) { - //调试发OK - m.Result = MyRes[i] = 1; - //m.Result = "OK"; + //MES出站判定结果 + m.Result = MyRes[i]; + ////芯包重量1判定结果 + //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; } + ////芯包侧厚判定结果 + //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; } + ////芯包CCD极性检测结果 + //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; } + m.Remark += MesMessage; } + else + { + switch (mesResType) + { + case MesResType.A:// 停线,设备报警停机 + //m.listRes[i] = 10; + // m.Result = MyRes[i] = 2; + m.Result = MyRes[i] = 3; + m.Remark += "MES NG"; + break; + case MesResType.B://不停机,MEs NG品要排出,要给PLC发NG信号 + //m.listRes[i] = 9; + // m.Result = MyRes[i] = 2; + m.Result = MyRes[i] = 3; + m.Remark += "MES NG"; + break; + case MesResType.C://可忽略 + //m.listRes[i] = 1; + // m.Result = MyRes[i] = 2; + m.Result = MyRes[i] = 1; + m.Remark += "MES Alerm OK"; + break; + case MesResType.D://可忽略 + //m.listRes[i] = 1; + // m.Result = MyRes[i] = 2; + m.Result = MyRes[i] = 1; + m.Remark += "MES OK"; + break; + default: + m.Remark += "MES NG"; + m.Result = MyRes[i] = 3; + break; + } + ////芯包重量1判定结果 + //if (m.list_Data1[i, 10] == 2) { m.Remark += "芯包重量NG,"; } + ////芯包侧厚判定结果 + //if (m.list_Data1[i, 11] == 2) { m.Remark += "芯包侧厚NG,"; } + ////芯包CCD极性检测结果 + //if (m.list_Data1[i, 12] == 2) { m.Remark += "芯包CCD极性检测NG,"; } + m.Remark += MesMessage; + } + //发送产品结果参数给MES + bool Res1 = CommonMethods.hbgMes.ProducResultParam(ur2, siteCode1, lineCode1, equipNum1, materialCode1, userName1, m, unloadType, ref Mesage); + list[i].PlcResult = MyRes[i]; + #region 排出 5 厚度NG电芯 6 外观NG电芯, + if (list[i].PlcResult != 1) + { + //厚度不良分档 5 测厚不良 6 外观不良 + if (list[i].CCD19 != 1) + { + m.Result = MyRes[i] = 5; + list[i].Remark += $",测厚度NG"; + } + else + { + //外观不良分档 + m.Result = MyRes[i] = 6; + list[i].Remark += $",外观检NG不良"; + } + + } + + #endregion + + if (m.Flag == 1) + m.UpState = "已上传"; + else + m.UpState = "未上传"; } else { - m.Result = MyRes[i] = 2; + m.Result = MyRes[i]; m.Remark += "本地存储"; - ////芯包重量1判定结果 - //if (m.list_Data1[i, 10] == 2) { m.Remark += ",芯包重量NG"; } - ////芯包侧厚判定结果 - //if (m.list_Data1[i, 11] == 2) { m.Remark += ",芯包侧厚NG"; } - ////芯包CCD极性检测结果 - //if (m.list_Data1[i, 12] == 2) { m.Remark += ",芯包CCD极性检测NG"; } m.UpState = "未上传"; } - #region//极限件发3给PLC - //if (ChallengeFlag == 1) - //{ - // if (string.Compare(EX[0].WeldingCCD, "焊前CCD") == 0 || string.Compare(EX[0].WeldingCCD, "焊前ccd") == 0) - // { - // MyRes[i] = 3; - // } - // if (string.Compare(EX[0].WeldingCCD, "焊后CCD") == 0 || string.Compare(EX[0].WeldingCCD, "焊后ccd") == 0) - // { - // MyRes[i] = 4; - // } - //} - #endregion + if (CommonMethods.sysConfig.OKSwitching) + { + //调试发OK + m.Result = MyRes[i] = 1; + //m.Result = "OK"; + } } - catch (Exception ex) + else { - LoggerHelp.WriteLog($"外观检测出站线程数据解析:{ex}", "SysErrorLog"); + m.Result = MyRes[i] = 2; + m.Remark += "本地存储"; + ////芯包重量1判定结果 + //if (m.list_Data1[i, 10] == 2) { m.Remark += ",芯包重量NG"; } + ////芯包侧厚判定结果 + //if (m.list_Data1[i, 11] == 2) { m.Remark += ",芯包侧厚NG"; } + ////芯包CCD极性检测结果 + //if (m.list_Data1[i, 12] == 2) { m.Remark += ",芯包CCD极性检测NG"; } + m.UpState = "未上传"; } - } - - #endregion - JYResult result1 = null; - JYResult result2 = null; - JYResult result3 = null; - if (pf.IsFeedbackPlc) - { - //result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC - //result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC - // if (CommonMethods.sysConfig.OKSwitching) - { - //调试发OK - //MyRes[0] = 1; - //MyRes[1] = 1; - Thread.Sleep(500); - result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC - result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC - result3 = CommonMethods.PlcLink.WriteValue(pf.VarList[4].VarAddress, MyRes[2], Data_Type.Short);//判断结果写入PLC - } - //else + #region//极限件发3给PLC + //if (ChallengeFlag == 1) //{ - // //将mes反馈的结果发给PLC - // Thread.Sleep(500); - // result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC - // result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC + // if (string.Compare(EX[0].WeldingCCD, "焊前CCD") == 0 || string.Compare(EX[0].WeldingCCD, "焊前ccd") == 0) + // { + // MyRes[i] = 3; + // } + // if (string.Compare(EX[0].WeldingCCD, "焊后CCD") == 0 || string.Compare(EX[0].WeldingCCD, "焊后ccd") == 0) + // { + // MyRes[i] = 4; + // } //} + #endregion } - JYResult result4 = CommonMethods.PlcLink.WriteValue(pf.VarList[0].VarAddress, 0);//置位0 - CommonMethods.AddDataMonitorLog(0, $"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]}"); - LoggerHelp.WriteLog($"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]}"); - - Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(1); }); - //数据存储 - 异步处理 - Task.Run(() => + catch (Exception ex) { - SaveBlankingData(list); - }); - - sw2.Stop(); - ////输出下料数据处理耗时: - CommonMethods.AddDataMonitorLog(0, $"外观检测出站共耗时:{sw2.Elapsed.TotalMilliseconds}ms"); - LoggerHelp.WriteInfo($"外观检测进站共耗时:{sw2.Elapsed.TotalMilliseconds}ms"); + LoggerHelp.WriteLog($"外观检测出站线程数据解析:{ex}", "SysErrorLog"); + } } + + #endregion + JYResult result1 = null; + JYResult result2 = null; + JYResult result3 = null; + if (pf.IsFeedbackPlc) + { + //result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC + //result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC + // if (CommonMethods.sysConfig.OKSwitching) + { + //调试发OK + //MyRes[0] = 1; + //MyRes[1] = 1; + Thread.Sleep(500); + result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC + result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC + result3 = CommonMethods.PlcLink.WriteValue(pf.VarList[4].VarAddress, MyRes[2], Data_Type.Short);//判断结果写入PLC + } + //else + //{ + // //将mes反馈的结果发给PLC + // Thread.Sleep(500); + // result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC + // result2 = CommonMethods.PlcLink.WriteValue(pf.VarList[3].VarAddress, MyRes[1], Data_Type.Short);//判断结果写入PLC + //} + } + JYResult result4 = CommonMethods.PlcLink.WriteValue(pf.VarList[0].VarAddress, 0);//置位0 + CommonMethods.AddDataMonitorLog(0, $"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]}"); + LoggerHelp.WriteLog($"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]}"); + + Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(1); }); + //数据存储 - 异步处理 + Task.Run(() => + { + SaveBlankingData(list); + }); + + sw2.Stop(); + ////输出下料数据处理耗时: + CommonMethods.AddDataMonitorLog(0, $"外观检测出站共耗时:{sw2.Elapsed.TotalMilliseconds}ms"); + LoggerHelp.WriteInfo($"外观检测进站共耗时:{sw2.Elapsed.TotalMilliseconds}ms"); } /// /// 电池结果判断 @@ -2340,8 +2341,6 @@ namespace JinYuan.ControlCenters } #endregion - #endregion - #region 创建空的数组List public List GetList(int num, T data) { diff --git a/JinYuan.Helper/JinYuan.Helper.csproj.user b/JinYuan.Helper/JinYuan.Helper.csproj.user deleted file mode 100644 index a607660..0000000 --- a/JinYuan.Helper/JinYuan.Helper.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ShowAllFiles - - \ No newline at end of file