厚度ng检测修改

This commit is contained in:
ldw
2025-09-14 16:48:47 +08:00
parent cbb6c08111
commit 5b05d6d0e8
5 changed files with 176 additions and 204 deletions
+84 -44
View File
@@ -257,18 +257,35 @@ namespace JinYuan.ControlCenters
}
return Result;
}
private int JudgmentWGJResult(int A, int[,] B, int C)
private int JudgmentCCDResult(int A, int[,] B, int C)
{
var ngType = new string[16] {"正面(2D/3D)结果",
"反面(2D/3D)结果",
"左侧面(2D/3D)结果",
"右侧面(2D/3D)结果",
"顶面(2D/3D)结果",
"底面(2D/3D)结果",
"底DE1结果",
"底DE2结果",
"底DE3结果",
"底DE4结果",
"中ME1结果",
"中ME2结果",
"中ME3结果",
"中ME4结果",
"极柱(POS/NEG)结果",
"防爆阀(PRO)结果"
};
int Result = 1;
OK_NG = "OK";
for (int i = 0; i < 27; i++)
for (int i = 0; i < 16; i++)
{
if (B[C,i] !=1)
{
//1OK,2扫码NG,3MES反馈NG,4其他NG
Result = 4;
OK_NG = "NG";
NG_Type += $"外观检测NG{i + 1},";
NG_Type += $"{ngType[i]}(NG),";
}
}
if (A == 2)
@@ -280,6 +297,26 @@ namespace JinYuan.ControlCenters
return Result;
}
private int JudgmentThickNessResult(int[,] B, int C,int ccdResult =1)
{
var ngType = new string[3] {"厚度1结果",
"厚度2结果",
"厚度3结果"
};
int Result = ccdResult;
for (int i = 0; i < 3; i++)
{
if (B[C, i] != 1)
{
//1OK,2扫码NG,3MES反馈NG,4其他NG
Result = 4;
OK_NG = "NG";
NG_Type += $"{ngType[i]}(NG),";
}
}
return Result;
}
#region 上料工位(数据处理)
/// <summary>
/// 上料工位
@@ -432,7 +469,7 @@ namespace JinYuan.ControlCenters
{
m.Flag = 0;
m.ID = i + 1;
m.CNum = "i";
m.CNum = m.ID.ToString();
//电芯反馈结果
listRes[i] = 1;
m.Result = "OK";
@@ -1768,33 +1805,42 @@ namespace JinYuan.ControlCenters
//芯包信息1 D3300~D3326
//芯包信息2 D3330~D3356
//芯包信息3 D3360~D3386
for (int j = 0; j < 27; j++)
for (int j = 0; j < 16; j++)
{
m.CCD_Data[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 200 + i * 30 * 2 + j * 2, DataFormat.CDAB);
}
//厚度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);
}
for (int j = 0; j < 27; j++)
//厚度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编号
for (int j = 0; j < 16; j++)
{
m.CCD_NgNo[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 2200 + i * 30 * 2 + j * 2, DataFormat.CDAB);
}
//芯包扫码时间
//m.ScanTime[i] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
m.BarCode = listBarCode[i];
//m.CSBYHCODEA = "TEST";
var EX = CommonMethods.db.QuerySqlList<Challenge>(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;
}
}
#region 极限件查询
//var EX = CommonMethods.db.QuerySqlList<Challenge>(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<AGearEntity>(CommonMethods.dBSQL.GetInTime(m.BarCode));
//获取新一行数据
@@ -1852,19 +1898,12 @@ namespace JinYuan.ControlCenters
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] == 1 ? "OK" : (m.CCD_Data[i, 21] == 0 ? "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" : "缺图");
#endregion
#region //厚度判定结果
m.ThicknessResult1 = m.Thickness_PLCData[i, 0] == 1 ? "OK" : (m.Thickness_PLCData[i, 0] == 0 ? "NG" : "缺测");
m.ThicknessResult2 = m.Thickness_PLCData[i, 1] == 1 ? "OK" : (m.Thickness_PLCData[i, 1] == 0 ? "NG" : "缺测");
m.ThicknessResult3 = m.Thickness_PLCData[i, 2] == 1 ? "OK" : (m.Thickness_PLCData[i, 2] == 0 ? "NG" : "缺测");
#endregion
m.CSBYHASCANNINGTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
m.CSBYHPROCESSNAME = "外观检测";
m.CSBYHSCHEDULE = CommonMethods.strClass;
@@ -1874,12 +1913,12 @@ namespace JinYuan.ControlCenters
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;
//条码,芯包重量,芯包侧厚,芯包CCD极性检测,电芯裁切粘连,电芯裁切毛刺,芯包焊印位置,
//芯包正面极耳撕裂,芯包背面极耳撕裂,芯包正面极耳翻折,芯包背面极耳翻折
if (Code_NG == 1)
{
for (int ii = 0; ii < 27; ii++)
for (int ii = 0; ii < 16; ii++)
{
if (m.CCD_Data[i, ii] != 1)
{
@@ -1892,8 +1931,8 @@ namespace JinYuan.ControlCenters
}
else
MyRes[i] = 2;//扫码NG
MyRes[i] = JudgmentWGJResult(Code_NG, m.CCD_Data,i);
MyRes[i] = JudgmentCCDResult(Code_NG, m.CCD_Data,i);
MyRes[i] = JudgmentThickNessResult(m.Thickness_PLCData, i, MyRes[i]);
m.Result = MyRes[i];
m.CSBYHOUTSTATIONJUDGMENTRESULT = m.judgment_result[i] = OK_NG;
@@ -2027,18 +2066,19 @@ namespace JinYuan.ControlCenters
//if (m.list_Data1[i, 12] == 2) { m.Remark += ",芯包CCD极性检测NG"; }
m.UpState = "未上传";
}
//极限件发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;
}
}
#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
}
catch (Exception ex)
{