优化出站程序逻辑

This commit is contained in:
liming 蔡
2026-08-05 08:33:28 +08:00
parent 3afb9700d3
commit b3388967e4
3 changed files with 445 additions and 451 deletions
+444 -445
View File
@@ -1790,487 +1790,488 @@ namespace JinYuan.ControlCenters
private void BlankingStation(JYResult<byte[]> 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<BGearEntity> list = new List<BGearEntity>();//实体
//int[] MyRes = new int[2];//AB反馈结果
int[] MyRes = new int[3];//三个外观检测反馈结果
#endregion
//高低位转换
byte[] bytes = bArrays.Content.ByteReverse();
byte[] bytes1 = bArrays.Content;
List<string> listBarCode = GetList<string>(3, "");//电芯条码
//List<string> listNum = GetList<string>(1, "");//进站磁悬浮动子编号
List<short> listRes = GetList<short>(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<BGearEntity> list = new List<BGearEntity>();//实体
//int[] MyRes = new int[2];//AB反馈结果
int[] MyRes = new int[3];//三个外观检测反馈结果
#endregion
//高低位转换
byte[] bytes = bArrays.Content.ByteReverse();
byte[] bytes1 = bArrays.Content;
List<string> listBarCode = GetList<string>(3, "");//电芯条码
//List<string> listNum = GetList<string>(1, "");//进站磁悬浮动子编号
List<short> listRes = GetList<short>(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<int> qrCodeAddressList = new List<int>();
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<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));
//获取新一行数据
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<string> NGcodeList = new List<string>();
//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<int> qrCodeAddressList = new List<int>();
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<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));
//获取新一行数据
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<string> NGcodeList = new List<string>();
//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");
}
/// <summary>
/// 电池结果判断
@@ -2340,8 +2341,6 @@ namespace JinYuan.ControlCenters
}
#endregion
#endregion
#region 创建空的数组List
public List<T> GetList<T>(int num, T data)
{