using JinYuan.CommunicationLib.Enum;
using JinYuan.DataConvertLib;
using JinYuan.Helper;
using JinYuan.MES.Enums;
using JinYuan.Models;
using JinYuan.VirtualDataLibrary;
using PLCCommunication;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace JinYuan.ControlCenters
{
public partial class ControlCenter
{
private void UpAB(ref BGearEntity m)
{
for (int i = 0; i < 10; i++) { }
}
#region 保留2位小数
private float SaveTwoNum(float TNum)
{
//1.2333 0.998
int value = (int)(TNum * 1000) % 10;
value = value > 4 ? 10 - value : -value;
TNum += ((float)value / 1000);
//保留3位小数
TNum = (float)(int)(TNum * 1000) / 1000;
return TNum;
}
#endregion
//不良类型
string NG_Type = ""; // 用于备注
string OK_NG = ""; // OK或NG
#region 判断总结果
///
/// 判断总结果
///
//private int JudgmentResult(int A, int B, int C, int D, int E, int F, int G, int H, int I, int J, int K, int L, int M, int N)
//{
// //条码,芯包重量,芯包侧厚,芯包CCD极性检测,电芯裁切粘连,电芯裁切毛刺,芯包铜焊印位置,
// //芯包正面极耳撕裂H,芯包背面极耳撕裂,芯包正面极耳翻折J,芯包背面极耳翻折,测厚压力结果,
// //焊前CCD检测结果,铝焊印位置判定结果
// //目前先判断条码,芯包重量,芯包侧厚,芯包CCD极性检测,芯包正面极耳撕裂,芯包正面极耳翻折
// int Result = 0;
// OK_NG = "OK";
// if (A == 2 || B == 2 || C == 2 || D == 2 || H == 2 || J == 2)
// {
// //ed
// Result = 2;
// OK_NG = "NG";
// }
// else if (A == 1 && B == 1 && C == 1 && D == 1 && H == 1 && J == 1)
// {
// Result = 1;
// OK_NG = "OK";
// }
// else
// {
// Result = 1;
// OK_NG = "OK";
// }
// if (A == 2)
// {
// NG_Type += "无条码_";
// Result = 2;
// }
// if (B == 2)
// {
// NG_Type += "芯包重量1NG_";
// //return 2;
// Result = 2;
// }
// if (C == 2)
// {
// NG_Type += "芯包侧厚NG_";
// //return 2;
// Result = 2;
// }
// if (D == 2)
// {
// NG_Type += "芯包CCD极性检测NG_";
// //return 2;
// Result = 2;
// }
// //if (E == 2)
// //{
// // NG_Type += "电芯裁切粘连NG_";
// // //return 2;
// //}
// //if (F == 2)
// //{
// // NG_Type += "电芯裁切毛刺NG_";
// // //return 2;
// //}
// //if (G == 2)
// //{
// // NG_Type += "芯包铜焊印位置判定NG_";
// // //return 2;
// //}
// if (H == 2)
// {
// NG_Type += "芯包正面极耳撕裂NG_";
// //return 2;
// }
// //if (I == 2)
// //{
// // NG_Type += "芯包背面极耳撕裂NG_";
// // //return 2;
// //}
// if (J == 2)
// {
// NG_Type += "芯包正面极耳翻折NG_";
// //return 2;
// }
// //if (K == 2)
// //{
// // NG_Type += "芯包背面极耳翻折NG_";
// // //return 2;
// //}
// if (L == 2)
// {
// NG_Type += "测厚压力NG_";
// //return 2;
// }
// if (M == 2)
// {
// NG_Type += "焊前CCD检测NG_";
// //return 2;
// }
// if (N == 2)
// {
// NG_Type += "铝焊印位置判定NG_";
// //return 2;
// }
// if (Result == 1)
// {
// NG_Type += "OK_";
// }
// return Result;
//}
///
/// 判断总结果
///
private int JudgmentResult(int A, int B, int C, int D, int E, int F, int G, int H, int I, int J, int K, int L, int M, int N)
{
//条码,芯包重量,芯包侧厚,芯包CCD极性检测,电芯裁切粘连,电芯裁切毛刺,芯包铜焊印位置,
//芯包正面极耳撕裂H,芯包背面极耳撕裂,芯包正面极耳翻折J,芯包背面极耳翻折,测厚压力结果,
//焊前CCD检测结果,铝焊印位置判定结果
//目前先判断条码,芯包重量,芯包侧厚,芯包CCD极性检测,芯包正面极耳撕裂,芯包正面极耳翻折
int Result = 0;
OK_NG = "OK";
if (A == 2 || B == 2 || C == 2 || D == 2 || H == 2 || J == 2)
{
//ed
Result = 2;
OK_NG = "NG";
}
else if (A == 1 && B == 1 && C == 1 && D == 1 && H == 1 && J == 1)
{
Result = 1;
OK_NG = "OK";
}
else
{
Result = 1;
OK_NG = "OK";
}
if (A == 2)
{
NG_Type += "无条码_";
Result = 2;
}
if (B == 2)
{
NG_Type += "芯包重量1NG_";
//return 2;
Result = 2;
}
if (C == 2)
{
NG_Type += "芯包侧厚NG_";
//return 2;
Result = 2;
}
if (D == 2)
{
NG_Type += "芯包CCD极性检测NG_";
//return 2;
Result = 2;
}
//if (E == 2)
//{
// NG_Type += "电芯裁切粘连NG_";
// //return 2;
//}
//if (F == 2)
//{
// NG_Type += "电芯裁切毛刺NG_";
// //return 2;
//}
//if (G == 2)
//{
// NG_Type += "芯包铜焊印位置判定NG_";
// //return 2;
//}
if (H == 2)
{
NG_Type += "芯包正面极耳撕裂NG_";
//return 2;
}
//if (I == 2)
//{
// NG_Type += "芯包背面极耳撕裂NG_";
// //return 2;
//}
if (J == 2)
{
NG_Type += "芯包正面极耳翻折NG_";
//return 2;
}
//if (K == 2)
//{
// NG_Type += "芯包背面极耳翻折NG_";
// //return 2;
//}
if (L == 2)
{
NG_Type += "测厚压力NG_";
//return 2;
}
if (M == 2)
{
NG_Type += "焊前CCD检测NG_";
//return 2;
}
if (N == 2)
{
NG_Type += "铝焊印位置判定NG_";
//return 2;
}
if (Result == 1)
{
NG_Type += "OK_";
}
return Result;
}
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 < 16; i++)
{
if (B[C,i] !=1)
{
//1OK,2扫码NG,3MES反馈NG,4其他NG
Result = 4;
OK_NG = "NG";
NG_Type += $"{ngType[i]}(NG),";
}
}
if (A == 2)
{
NG_Type += "无条码,";
Result = 2;
OK_NG = "NG";
}
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 上料工位(数据处理)
///
/// 上料工位
///
int JXCount = 0;
Stopwatch sw2 = new Stopwatch();
//上料解析
private void FeedingStation(JYResult bArrays, object plcModel)
{
Group pf = plcModel as Group;
if (bArrays == null)
{
CommonMethods.PlcLink.WriteInt16(pf.VarList[0].VarAddress, 0);//置位0
CommonMethods.AddLog(false, $"电芯进站PLC有触发信号,但无数据!");//存系统日志
LoggerHelp.WriteLog($"电芯进站PLC有触发信号,但无数据!", "Info");
}
if (bArrays.IsSuccess && bArrays.Content != null)
{
sw2.Restart();
//解析数据
//1257 3个条码
List list = new List();//实体
List listBarCode = GetList(3, "");//电芯条码
//List listNum = GetList(1, "");//进站磁悬浮动子编号
List listRes = GetList(3, 0);//进站电芯反馈结果
byte[] bytes = bArrays.Content.ByteReverse();//高低位转换
// 从D2200开始
#region 数据解析
//电芯条码
//从bytes读取第二位参数到第三位参数的内容 0-19 第四位参数为格式 第五位为规则
//listBarCode[0] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, 200, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
//listBarCode[1] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, 240, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
//listBarCode[2] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, 280, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
//listBarCode[3] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, 320, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
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();
//listBarCode[0] = "TEST";
//listBarCode[1] = "TEST";
//listBarCode[2] = "TEST";
//listBarCode[3] = "TEST";
for (int i = 0; i < 3; i++)
{
//有无条码标志
int CodeFlag = 1;
//极限件标志
int ChallengeFlag = 0;
AGearEntity m = new AGearEntity();
try
{
//判断条码是否为空
if (listBarCode[i] == null || listBarCode[i] == "" || listBarCode[i] == "ERROR")
{
CodeFlag = 0;
//continue;
}
m.TestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
m.BarCode = listBarCode[i];
//判断是否极限件 查询极限件数据
var EX = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetChallengeCode(listBarCode[i]));
for (int j = 0; j < EX.Count; j++)
{
if (string.Compare(EX[j].ChallengeBarCode, listBarCode[i]) == 0)
{
m.Remark += "(极限件," + EX[j].CodeMessage + "," + EX[j].WeldingCCD + ")";
ChallengeFlag = 1;
}
}
if (CodeFlag == 1)
{
List MesMessage = new List();
List mesResType = new List();
if (CommonMethods.mesConfig.isUpMes)
{
string url = CommonMethods.mesConfig.InPutStationMesUrl;
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;
string MesMessage1 = "";
MesResType mesResType1 = MesResType.A;
bool Res = CommonMethods.hbgMes.SingleCellInStation(url, siteCode, lineCode, equipNum, materialCode, userName, listBarCode[i], ref MesMessage1, ref mesResType1);
if (MesMessage1.Contains("发生一个或多个错误"))
{
MesMessage1 = "上传失败";
}
else
{
m.Flag = 1;
}
if (Res)
{
m.Result = "OK";
listRes[i] = 1;
m.Remark += MesMessage1;
}
else
{
m.Result = "NG";
switch (mesResType1)
{
case MesResType.A:// 停线,设备报警停机
//listRes[i] = 10;
listRes[i] = 3;
m.Remark += "MES NG";
break;
case MesResType.B:
//listRes[i] = 9;
listRes[i] = 3;
m.Remark += "MES NG";
break;
case MesResType.C:
//listRes[i] = 1;
listRes[i] = 3;
m.Remark += "MES NG";
break;
case MesResType.D:
listRes[i] = 1;
m.Remark += "MES OK";
break;
default:
listRes[i] = 3;
m.Remark += "MES NG";
break;
}
if (CommonMethods.sysConfig.OKSwitching)
{
//调试发OK
listRes[i] = 1;
//m.Result = "OK";
}
m.Remark += MesMessage1;
}
}
else
{
m.Flag = 0;
m.ID = i + 1;
m.CNum = m.ID.ToString();
//电芯反馈结果
listRes[i] = 1;
m.Result = "OK";
m.Remark += "本地存储";
m.UpState = "未上传";
// m.Remark = "本地存储";
//if (CommonMethods.sysConfig.OKSwitching)
//{
// //调试发OK
// listRes[j] = 1;
// m.Result = "OK";
//}
//list.Add(m);
}
}
else
{
//无条码不上传
m.Flag = 0;
m.Result = "NG";
listRes[i] = 2;
m.Remark += "无条码";
}
//极限件发3给PLC
//需要沟通极限 发多少给plc
if (ChallengeFlag == 1)
{
if (string.Compare(EX[0].WeldingCCD, "焊前CCD") == 0)
{
listRes[i] = 3;
}
if (string.Compare(EX[0].WeldingCCD, "焊后CCD") == 0)
{
listRes[i] = 4;
}
}
if (m.Flag == 1)
m.UpState = "已上传";
else
m.UpState = "未上传";
list.Add(m);
}
catch (Exception ex)
{
LoggerHelp.WriteLog($"外观检测进站线程数据解析:{ex}", "SysErrorLog");
}
}
#endregion
//if (CommonMethods.sysConfig.OKSwitching)
//{
// //调试发OK
// listRes[0] = 1;
// listRes[1] = 1;
// listRes[2] = 1;
// listRes[3] = 1;
// //m.Result = "OK";
//}
JYResult result = CommonMethods.PlcLink.WriteValue("D2100", listRes[0], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2101", listRes[1], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2102", listRes[2], Data_Type.Short);//调试结果写入PLC
//CommonMethods.PlcLink.WriteValue("D2103", listRes[3], Data_Type.Short);//调试结果写入PLC
//CommonMethods.PlcLink.WriteInt16("D2100", listRes[0]);//调试结果OK写入PLC
if (result != null)
{
string strres = $"外观检工位发送给PLC: D2100={listRes[0]},D2101={listRes[1]},D2102={listRes[2]},";
CommonMethods.AddDataMonitorLog(0, strres);
}
//写入·结果反馈
//JYResult result = CommonMethods.PlcLink.WriteValue("D2100", listRes.ToArray(), Data_Type.ArrShort);//判断结果写入PLC
//JYResult result = CommonMethods.PlcLink.WriteValue("D2100", listRes.ToArray(), Data_Type.ArrShort);//调试结果OK写入PLC
Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(0); });
//读取结果显示
//数据存储 -异步处理
Task.Run(() => { SaveFeedingData(list); });
CommonMethods.PlcLink.WriteInt16(pf.VarList[0].VarAddress, 0);//置位0
sw2.Stop();
////输出上料数据处理耗时:
CommonMethods.AddDataMonitorLog(0, $"外观检测进站共耗时:{sw2.Elapsed.TotalMilliseconds}ms");
}
}
#region 保存上料数据
///
/// 保存上料数据到数据
///
///
private void SaveFeedingData(List list)
{
//数据的保存
try
{
if (list != null && list.Count > 0)
{
//数据显示
List Blist = list;
int i = 0;
string strRes = "";
foreach (AGearEntity m in list)
{
if (true)
{
//int b1 = CommonMethods.dbServer.Delete(it => it.containerCode == m.DiRFID);
Thread.Sleep(10);
//int b2 = CommonMethods.dbServer.Delete(it => it.containerCode == m.GaoRFID);
//int b1 = CommonMethods.dbServer.Delete(it => it.containerCode == m.BarCode);
bool b = CommonMethods.db.AddReturnBool(m);
//strRes = b1 > 0 ? ",远删Yes" : ",远删No";
strRes += b;
DataTurnover server = new DataTurnover
{
equipNum = CommonMethods.mesConfig.equipNum,
containerCode = m.BarCode,
identification = m.BarCode,
message = m.Result,
Time = DateTime.Now,
};
try
{
//bool res = CommonMethods.dbServer.AddReturnBool(server);
//strRes += res == true ? ",远存Yes" : ",远存No";
}
catch (Exception ex)
{
JYResult result = CommonMethods.PlcLink.WriteValue("D80", 1, Data_Type.Short);//反馈PLC结果
CommonMethods.AddDataMonitorLog(1, $"服务器连接失败!解决办法:1、请检查MES网络,2、查看服务器是否正常!!");
LoggerHelp.WriteLog($"服务器连接失败:{ex}", "系统报错");
}
}
else
{
strRes = ",不存储";
}
//m.Remark = m.Remark + strRes;
Blist[i].Remark = m.Remark;
i++;
}
//数据显示
CommonMethods.ShowFeedingDelegate.Invoke(Blist);
}
else
{
LoggerHelp.WriteLog($"电芯进站数据List为空", "SysErrorLog");
}
}
catch (Exception ex)
{
LoggerHelp.WriteLog($"外观检测上料保存处理异常:{ex}", "SysErrorLog");
}
}
#endregion
#endregion
//NG出站解析
private void NGStation(JYResult bArrays, object plcModel)
{
Group pf = plcModel as Group;
if (bArrays == null)
{
CommonMethods.PlcLink.WriteInt16(pf.VarList[0].VarAddress, 0);//置位0
CommonMethods.AddLog(false, $"NG出站PLC有触发信号,但无数据!");
LoggerHelp.WriteLog($"NG出站PLC有触发信号,但无数据!", "SysErrorLog");
}
#region 预焊机
//if (bArrays.IsSuccess && bArrays.Content != null)
//{
// Random random = new Random();
// //解析数据
// sw2.Restart();
// #region 数据变量定义
// List list = new List();//实体
// int[] MyRes = new int[2];//AB反馈结果
// #endregion
// //高低位转换
// byte[] bytes = bArrays.Content.ByteReverse();
// byte[] bytes1 = bArrays.Content;
// //反馈结果
// #region 电芯解析
// //D3100起
// //电芯解析
// #region 上传MES
// for (int i = 0; i < 2; i++)
// {
// try
// {
// int ChallengeFlag = 0;
// BGearEntity m = new BGearEntity();
// AGearEntity TT = new AGearEntity();
// if (i == 0)
// {
// m.A_B = "A芯包";
// //A_NG芯包信息1 D2442~D2446
// for (int j = 0; j < 5; j++)
// {
// m.NG_Data1[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 84 + j * 2, DataFormat.CDAB);
// }
// //A_NG芯包信息2 D2452~D2468
// for (int j = 0; j < 9; j++)
// {
// m.NG_Data2[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 104 + j * 4, DataFormat.CDAB);
// }
// }
// else
// {
// m.A_B = "B芯包";
// //B_NG芯包信息1 D2447~D2451
// for (int j = 0; j < 5; j++)
// {
// m.NG_Data1[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 94 + j * 2, DataFormat.CDAB);
// }
// //B_NG芯包信息2 D2470~D2486
// for (int j = 0; j < 9; j++)
// {
// m.NG_Data2[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 140 + j * 4, DataFormat.CDAB);
// }
// }
// //芯包条码 D2400~D3239
// m.CSBYHCODEA = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, 40 * i, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
// //m.CSBYHCODEA = "TEST";
// //判断是否极限件 查询极限件数据
// var EX = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetChallengeCode(m.CSBYHCODEA));
// for (int j = 0; j < EX.Count; j++)
// {
// if (string.Compare(EX[j].ChallengeBarCode, m.CSBYHCODEA) == 0)
// {
// m.Remark += "(极限件," + EX[j].CodeMessage + "," + EX[j].WeldingCCD + ")";
// ChallengeFlag = 1;
// }
// }
// //查询进站时间数据
// var w = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetInTime(m.CSBYHCODEA));
// //获取最新一行数据
// if (w.Count > 0)
// TT = w[w.Count - 1];
// 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");
// int Code_NG = 0;//条码有无标志 1为有,2为无
// //判断有无条码
// if (m.CSBYHCODEA != null && m.CSBYHCODEA != "")
// Code_NG = 1;
// else
// Code_NG = 2;
// //m.TestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// //不良代码判定
// List NGcodeList = new List();
// NGcodeList = NGCarcode(m.NG_Data1[i, 1], m.NG_Data1[i, 3], m.NG_Data1[i, 4]);
// //芯包重量1判定结果
// if (m.NG_Data1[i, 1] == 1)
// m.CSBYHWEIGHTRESULTA1 = "OK";
// else if (m.NG_Data1[i, 1] == 2)
// m.CSBYHWEIGHTRESULTA1 = "NG";
// else
// m.CSBYHWEIGHTRESULTA1 = "无";
// //芯包侧厚判定结果
// if (m.NG_Data1[i, 3] == 1)
// m.CSBYHTHICKNESSTESTJUDGERESULTA = "OK";
// else if (m.NG_Data1[i, 3] == 2)
// m.CSBYHTHICKNESSTESTJUDGERESULTA = "NG";
// else
// m.CSBYHTHICKNESSTESTJUDGERESULTA = "无";
// //芯包CCD极性检测结果
// if (m.NG_Data1[i, 4] == 1)
// m.CSBYHPOLARITYRESULTA = "OK";
// else if (m.NG_Data1[i, 4] == 2)
// m.CSBYHPOLARITYRESULTA = "NG";
// else
// m.CSBYHPOLARITYRESULTA = "无";
// //电芯裁切粘连判定结果
// m.CSBYHCUTADHESIONJUDGERESULTA = "无";
// //电芯裁切毛刺判定结果
// m.CSBYHCUTBURRJUDGERESULTA = "无";
// //芯包焊印位置判定结果
// m.CSBYHSOLDERJUDGERESULTA = "无";
// m.CSBYHSOLDERJUDGERESULTA2 = "无";
// m.AluminiumWeldPositionResult1 = "无";
// m.AluminiumWeldPositionResult2 = "无";
// //芯包正面极耳撕裂判定结果
// m.CSBYHFRONTEARCRACKLEJUDGERESULTA = "无";
// //芯包背面极耳撕裂判定结果
// m.CSBYHBACKEARCRACKLEJUDGERESULTA = "无";
// //芯包正面极耳翻折检测结果
// m.CSBYHFRONTEARFLODINGRESULTA = "无";
// //芯包背面极耳翻折检测结果
// m.CSBYHBACKEARFLODINGRESULTA = "无";
// m.CSBYHASCANNINGTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// m.CSBYHWEIGHTNOA1 = m.NG_Data1[i, 2];
// m.CSBYHTHICKNESSTESTSTATIONNOA = m.NG_Data1[i, 4];
// m.CSBYHTOOLNOA = 0;
// m.CSBYHCUWELDINGSTATIONNOA1 = 0;
// m.CSBYHCUWELDINGSTATIONNOA2 = 0;
// m.CSBYHCUWELDINGSTATIONNOA3 = 0;
// m.CSBYHCUWELDHEADCOUNTA1 = 0;
// m.CSBYHCUWELDHEADCOUNTA2 = 0;
// m.CSBYHCUWELDHEADCOUNTA3 = 0;
// m.CSBYHCUWELDBASECOUNTA1 = 0;
// m.CSBYHCUWELDBASECOUNTA2 = 0;
// m.CSBYHCUWELDBASECOUNTA3 = 0;
// m.CSBYHALWELDINGSTATIONNOA1 = 0;
// m.CSBYHALWELDINGSTATIONNOA2 = 0;
// m.CSBYHALWELDINGSTATIONNOA3 = 0;
// m.CSBYHALWELDHEADCOUNTA1 = 0;
// m.CSBYHALWELDHEADCOUNTA2 = 0;
// m.CSBYHALWELDHEADCOUNTA3 = 0;
// m.CSBYHALWELDBASECOUNTA1 = 0;
// m.CSBYHALWELDBASECOUNTA2 = 0;
// m.CSBYHALWELDBASECOUNTA3 = 0;
// m.CSBYHCUTABCUTTERCOUNTA = 0;
// m.CSBYHALTABCUTTERCOUNTA = 0;
// m.CSBYHCUTABCUTTERNOA = 0;
// m.CSBYHALTABCUTTERNOA = 0;
// m.CSBYHPROCESSNAME = "超声波预焊接";
// m.CSBYHSCHEDULE = CommonMethods.strClass;
// m.CSBYHINSTATIONTIME = m.ScanTime[0];
// m.CSBYHOUTSTATIONTIME = m.ScanTime[1];
// //m.CSBYHABNORMALINFORMATION = m.list_Process[i, 4];
// m.CSBYHWEIGHTA1MAXSETTING = SaveTwoNum(m.NG_Data2[i, 0]);
// m.CSBYHWEIGHTA1MINSETTING = SaveTwoNum(m.NG_Data2[i, 1]);
// m.CSBYHWEIGHTA1 = SaveTwoNum(m.NG_Data2[i, 2]);
// m.CSBYHTHICKNESSTESTPRESSUREMAXSETTINGA = SaveTwoNum(m.NG_Data2[i, 3]);
// m.CSBYHTHICKNESSTESTPRESSUREMINSETTINGA = SaveTwoNum(m.NG_Data2[i, 4]);
// m.CSBYHTHICKNESSTESTPRESSUREA = SaveTwoNum(m.NG_Data2[i, 5]);
// m.CSBYHTHICKNESSTESTPRESSURESIZEA = SaveTwoNum(m.NG_Data2[i, 6]);
// m.CSBYHTHICKNESSTESTPRESSUREMAXSIZEA = SaveTwoNum(m.NG_Data2[i, 7]);
// m.CSBYHTHICKNESSTESTPRESSUREMINSIZEA = SaveTwoNum(m.NG_Data2[i, 8]);
// m.CSBYHCUWELDINGPRESSUREMAXSETTING1 = 0;
// m.CSBYHCUWELDINGPRESSUREMAXSETTING2 = 0;
// m.CSBYHCUWELDINGPRESSUREMAXSETTING3 = 0;
// m.CSBYHCUWELDINGPRESSUREMINSETTING = 0;//压力最小值
// m.CSBYHCUWELDINGPOWERMAXSETTING1 = 0;
// m.CSBYHCUWELDINGPOWERMAXSETTING2 = 0;
// m.CSBYHCUWELDINGPOWERMAXSETTING3 = 0;
// m.CSBYHCUWELDINGPOWERMINSETTING1 = 0;
// m.CSBYHCUWELDINGPOWERMINSETTING2 = 0;
// m.CSBYHCUWELDINGPOWERMINSETTING3 = 0;
// m.CSBYHCUWELDINGENERGYMAXSETTING1 = 0;
// m.CSBYHCUWELDINGENERGYMAXSETTING2 = 0;
// m.CSBYHCUWELDINGENERGYMAXSETTING3 = 0;
// m.CSBYHCUWELDINGENERGYMINSETTING1 = 0;
// m.CSBYHCUWELDINGENERGYMINSETTING2 = 0;
// m.CSBYHCUWELDINGENERGYMINSETTING3 = 0;
// m.CSBYHCUWELDINGAMPLITUDEMAXSETTING1 = 0;
// m.CSBYHCUWELDINGAMPLITUDEMAXSETTING2 = 0;
// m.CSBYHCUWELDINGAMPLITUDEMAXSETTING3 = 0;
// m.CSBYHCUWELDINGAMPLITUDEMINSETTING1 = 0;
// m.CSBYHCUWELDINGAMPLITUDEMINSETTING2 = 0;
// m.CSBYHCUWELDINGAMPLITUDEMINSETTING3 = 0;
// m.CSBYHCUPRESSUREA1 = 0;
// m.CSBYHCUPOWERA1 = 0;
// m.CSBYHCUENERGYA1 = 0;
// m.CSBYHCUAMPLITUDEA1 = 0;
// m.CSBYHCUTIMEA1 = 0;
// m.CSBYHCUPRESSUREA2 = 0;
// m.CSBYHCUPOWERA2 = 0;
// m.CSBYHCUENERGYA2 = 0;
// m.CSBYHCUAMPLITUDEA2 = 0;
// m.CSBYHCUTIMEA2 = 0;
// m.CSBYHCUPRESSUREA3 = 0;
// m.CSBYHCUPOWERA3 = 0;
// m.CSBYHCUENERGYA3 = 0;
// m.CSBYHCUAMPLITUDEA3 = 0;
// m.CSBYHCUTIMEA3 = 0;
// m.CSBYHALWELDINGPRESSUREMAXSETTING1 = 0;
// m.CSBYHALWELDINGPRESSUREMAXSETTING2 = 0;
// m.CSBYHALWELDINGPRESSUREMAXSETTING3 = 0;
// m.CSBYHALWELDINGPRESSUREMINSETTING = 0;
// m.CSBYHALWELDINGPOWERMAXSETTING1 = 0;
// m.CSBYHALWELDINGPOWERMAXSETTING2 = 0;
// m.CSBYHALWELDINGPOWERMAXSETTING3 = 0;
// m.CSBYHALWELDINGPOWERMINSETTING1 = 0;
// m.CSBYHALWELDINGPOWERMINSETTING2 = 0;
// m.CSBYHALWELDINGPOWERMINSETTING3 = 0;
// m.CSBYHALWELDINGENERGYMAXSETTING1 = 0;
// m.CSBYHALWELDINGENERGYMAXSETTING2 = 0;
// m.CSBYHALWELDINGENERGYMAXSETTING3 = 0;
// m.CSBYHALWELDINGENERGYMINSETTING1 = 0;
// m.CSBYHALWELDINGENERGYMINSETTING2 = 0;
// m.CSBYHALWELDINGENERGYMINSETTING3 = 0;
// m.CSBYHALWELDINGAMPLITUDEMAXSETTING1 = 0;
// m.CSBYHALWELDINGAMPLITUDEMAXSETTING2 = 0;
// m.CSBYHALWELDINGAMPLITUDEMAXSETTING3 = 0;
// m.CSBYHALWELDINGAMPLITUDEMINSETTING1 = 0;
// m.CSBYHALWELDINGAMPLITUDEMINSETTING2 = 0;
// m.CSBYHALWELDINGAMPLITUDEMINSETTING3 = 0;
// m.CSBYHALPRESSUREA1 = 0;
// m.CSBYHALPOWERA1 = 0;
// m.CSBYHALENERGYA1 = 0;
// m.CSBYHALAMPLITUDEA1 = 0;
// m.CSBYHALTIMEA1 = 0;
// m.CSBYHALPRESSUREA2 = 0;
// m.CSBYHALPOWERA2 = 0;
// m.CSBYHALENERGYA2 = 0;
// m.CSBYHALAMPLITUDEA2 = 0;
// m.CSBYHALTIMEA2 = 0;
// m.CSBYHALPRESSUREA3 = 0;
// m.CSBYHALPOWERA3 = 0;
// m.CSBYHALENERGYA3 = 0;
// m.CSBYHALAMPLITUDEA3 = 0;
// m.CSBYHALTIMEA3 = 0;
// m.CSBYHCUTABLENGTHA = 0;
// m.CSBYHCUTABWIDTHA = 0;
// m.CSBYHALTABLENGTHA = 0;
// m.CSBYHALTABWIDTHA = 0;
// m.CSBYHTOPTOSOLDERDISTANCEA = 0;
// m.CSBYHTOPTOSOLDERDISTANCEA2 = 0;
// m.AluminumToWeld1 = 0;
// m.AluminumToWeld2 = 0;
// m.CSBYHSOLDERTOEARDISTANCEA = 0;
// //MyRes[i] = JudgmentResult(Code_NG, m.list_Data1[i, 1], m.list_Data1[i, 4], m.list_Data1[i, 5], m.list_Data1[i, 15],
// // m.list_Data1[i, 16], m.list_Data1[i, 17], m.list_Data1[i, 18], m.list_Data1[i, 19],
// // m.list_Data1[i, 20], m.list_Data1[i, 21], m.list_Data2[i, 59], m.list_Data2[i, 60],
// // m.list_Data2[i, 63], m.list_Data2[i, 64]);
// //初值OK
// m.Result = m.listRes[i] = 1;
// m.CSBYHOUTSTATIONJUDGMENTRESULT = "OK";
// //优先级 :条码 MES 极性 重量 测厚压力 测厚位移 (焊前CCD 正面极耳撕裂和翻折)
// //无条码则无后面检测
// if (m.NG_Data1[i, 1] == 2 || m.NG_Data1[i, 3] == 2 || m.NG_Data1[i, 4] == 2)
// {
// m.Result = m.listRes[i] = 2;
// m.CSBYHOUTSTATIONJUDGMENTRESULT = "NG";
// }
// 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
// m.Remark += "NG小车1,";
// //芯包测厚(位移)判定结果
// if (m.NG_Data1[i, 3] == 2) { m.Remark += "芯包侧厚(位移)NG,"; }
// //芯包测厚(压力)判定结果 ()
// if (false) { m.Remark += "芯包侧厚(压力)NG,"; }
// //芯包重量1判定结果
// if (m.NG_Data1[i, 1] == 2) { m.Remark += "芯包重量NG,"; }
// //芯包CCD极性检测结果
// if (m.NG_Data1[i, 4] == 2) { m.Remark += "芯包CCD极性检测NG,"; }
// if (Code_NG == 1)
// {
// string MesMessage = "";
// MesResType mesResType = MesResType.C;
// //m.Result = MyRes[i] = m.listRes[i] = 2;
// //m.UpState = "未上传";
// //m.Remark = "出站前NG";
// 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 = "";
// #region NG小车排料调出站
// bool Res = CommonMethods.hbgMes.OutboundInformations(url, siteCode, lineCode, equipNum, materialCode, userName, m, ref MesMessage, ref mesResType, NGcodeList);
// //bool Res = CommonMethods.hbgMes.SingleCellOutStation(url, siteCode, lineCode, equipNum, materialCode, userName, m,)
// if (MesMessage.Contains("发生一个或多个错误"))
// {
// MesMessage = "上传失败,";
// }
// else
// {
// m.Flag = 1;
// }
// //m.UpState = "已上传";
// if (Res)
// {
// m.Remark += MesMessage;
// }
// else
// {
// m.CSBYHOUTSTATIONJUDGMENTRESULT = "NG";
// switch (mesResType)
// {
// case MesResType.A:// 停线,设备报警停机
// m.listRes[i] = 2;
// MyRes[i] = m.listRes[i];
// break;
// case MesResType.B://不停机,MEs NG品要排出,要给PLC发NG信号
// m.listRes[i] = 2;
// MyRes[i] = m.listRes[i];
// break;
// case MesResType.C://可忽略
// m.listRes[i] = 2;
// MyRes[i] = m.listRes[i];
// break;
// default:
// m.listRes[i] = 2;
// MyRes[i] = m.listRes[i];
// break;
// }
// ////芯包测厚(位移)判定结果
// //if (m.NG_Data1[i, 3] == 2) { m.Remark += "芯包侧厚(位移)NG,"; }
// ////芯包测厚(压力)判定结果
// //if (false) { m.Remark += "芯包侧厚(压力)NG,"; }
// ////芯包重量1判定结果
// //if (m.NG_Data1[i, 1] == 2) { m.Remark += "芯包重量NG,"; }
// ////芯包CCD极性检测结果
// //if (m.NG_Data1[i, 4] == 2) { m.Remark += "芯包CCD极性检测NG,"; }
// m.Remark += MesMessage;
// }
// #endregion
// bool Res1 = CommonMethods.hbgMes.ProducResultParam(ur2, siteCode1, lineCode1, equipNum1, materialCode1, userName1, m, unloadType, ref Mesage);
// if (m.Flag == 1)
// m.UpState = "已上传";
// else
// m.UpState = "未上传";
// }
// else
// {
// m.CSBYHOUTSTATIONJUDGMENTRESULT = "NG";
// m.Result = MyRes[i] = m.listRes[i] = 2;
// m.UpState = "未上传";
// ////芯包测厚(位移)判定结果
// //if (m.NG_Data1[i, 3] == 2) { m.Remark += "芯包侧厚(位移)NG,"; }
// ////芯包测厚(压力)判定结果
// //if (false) { m.Remark += "芯包侧厚(压力)NG,"; }
// ////芯包重量1判定结果
// //if (m.NG_Data1[i, 1] == 2) { m.Remark += "芯包重量NG,"; }
// ////芯包CCD极性检测结果
// //if (m.NG_Data1[i, 4] == 2) { m.Remark += "芯包CCD极性检测NG,"; }
// }
// }
// else
// {
// m.CSBYHOUTSTATIONJUDGMENTRESULT = "NG";
// m.Result = MyRes[i] = m.listRes[i] = 2;
// m.Remark += "无条码,本地存储";
// //正常无条码,以下不会NG不会出现
// ////芯包重量1判定结果
// //if (m.NG_Data1[i, 1] == 2) { m.Remark += ",芯包重量NG"; }
// ////芯包侧厚判定结果
// //if (m.NG_Data1[i, 3] == 2) { m.Remark += ",芯包侧厚NG"; }
// ////芯包CCD极性检测结果
// //if (m.NG_Data1[i, 4] == 2) { m.Remark += ",芯包CCD极性检测NG"; }
// m.UpState = "未上传";
// }
// //极限件发3给PLC
// //if (ChallengeFlag == 1)
// //{
// // if (string.Compare(EX[0].WeldingCCD, "焊前CCD") == 0)
// // {
// // MyRes[i] = 3;
// // }
// // if (string.Compare(EX[0].WeldingCCD, "焊后CCD") == 0)
// // {
// // MyRes[i] = 4;
// // }
// //}
// Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(1); });
// }
// catch (Exception ex)
// {
// LogHelper.Instance.WriteError($"外观检测出站线程数据解析:{ex}", "SysErrorLog");
// }
// }
// #endregion
// JYResult result1 = null;
// JYResult result2 = 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
// }
// JYResult result3 = CommonMethods.PlcLink.WriteValue(pf.VarList[0].VarAddress, 0);//置位0
// //CommonMethods.AddDataMonitorLog(0, $"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]}");
// //LogHelper.Instance.WriteLog($"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]}");
// //数据存储 - 异步处理
// Task.Run(() =>
// {
// SaveBlankingData(list);
// });
// sw2.Stop();
// ////输出下料数据处理耗时:
// CommonMethods.AddDataMonitorLog(0, $"NG出站共耗时:{sw2.Elapsed.TotalMilliseconds}ms");
//}
#endregion
}
#region 下料工位(数据处理)
//int OutCount = 0;
#region //下料解析 预焊检
//private void BlankingStation_YHJ(JYResult bArrays, object plcModel)
//{
// Group pf = plcModel as Group;
// if (bArrays == null)
// {
// CommonMethods.PlcLink.WriteInt16(pf.VarList[0].VarAddress, 0);//置位0
// CommonMethods.AddLog(false, $"电芯出站PLC有触发信号,但无数据!");
// LogHelper.Instance.WriteLog($"电芯出站PLC有触发信号,但无数据!", "SysErrorLog");
// }
// 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(bArrays.Content, 0, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
// listBarCode[1] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, 40, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
// listBarCode[2] = StringLib.GetStringFromByteArrayByEncoding(bArrays.Content, 80, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
// #region 上传MES
// //D3100起
// for (int i = 0; i < 3; i++)
// {
// try
// {
// BGearEntity m = new BGearEntity();
// AGearEntity TT = new AGearEntity();
// //极限件标志
// int ChallengeFlag = 0;
// if (i == 0)
// {
// //为了同时上传AB消息而增加,后续可能不需要
// UpAB(ref m);
// m.A_B = "A芯包";
// //芯包信息1 D3300~D3326
// for (int j = 0; j < 27; j++)
// {
// m.list_Data1[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 280 + j * 2, DataFormat.CDAB);
// }
// //芯包信息2 D3330~D3356
// for (int j = 0; j < 27; j++)
// {
// m.list_Data2[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 280 + j * 2, DataFormat.CDAB);
// }
// //芯包信息3 D3360~D3386
// for (int j = 0; j < 27; j++)
// {
// m.list_Data3[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 280 + j * 2, DataFormat.CDAB);
// }
// //A芯包信息1 D3240~D3262
// for (int j = 0; j < 28; j++)
// {
// m.list_Data1[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 280 + j * 2, DataFormat.CDAB);
// }
// //A芯包信息2(焊机相关次数) D3300~D3326
// for (int j = 0; j < 19; j++)
// {
// m.list_Data2[i, j] = IntLib.GetIntFromByteArray(bArrays.Content, 400 + j * 4, DataFormat.CDAB);
// }
// //A芯包信息3(设定值) D3400~D3506
// for (int j = 0; j < 54; j++)
// {
// m.list_Data3[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 600 + j * 4, DataFormat.CDAB);
// }
// //A芯包信息4(实际值) D3550~D3634
// for (int j = 0; j < 47; j++)
// {
// m.list_Data4[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 900 + j * 4, DataFormat.CDAB);
// }
// for (int j = 0; j <1; j++)
// {
// m.list_pan[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content,1088 + j * 2, DataFormat.CDAB);
// }
// }
// else
// {
// m.A_B = "B芯包";
// //B芯包信息1 D3740~D3762
// for (int j = 0; j < 28; j++)
// {
// m.list_Data1[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 1280 + j * 2, DataFormat.CDAB);
// }
// //B芯包信息2(焊机相关次数) D3800~D3826
// for (int j = 0; j < 19; j++)
// {
// m.list_Data2[i, j] = IntLib.GetIntFromByteArray(bArrays.Content, 1400 + j * 4, DataFormat.CDAB);
// }
// //B芯包信息3(设定值) D3900~D4006
// for (int j = 0; j < 54; j++)
// {
// m.list_Data3[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 1600 + j * 4, DataFormat.CDAB);
// }
// //B芯包信息4(实际值) D4050~D4134
// for (int j = 0; j < 47; j++)
// {
// m.list_Data4[i, j] = FloatLib.GetFloatFromByteArray(bArrays.Content, 1900 + j * 4, DataFormat.CDAB);
// }
// for (int j = 0; j < 1; j++)
// {
// m.list_pan[i, j] = ShortLib.GetShortFromByteArray(bArrays.Content, 1188 + j * 2, DataFormat.CDAB);
// }
// }
// //芯包扫码时间
// //m.ScanTime[i] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// //芯包条码 D3200~D3239
// m.CSBYHCODEA = StringLib.GetStringFromByteArrayByEncoding(bytes1, 200 + 40 * i, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
// //m.CSBYHCODEA = "TEST";
// var EX = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetChallengeCode(m.CSBYHCODEA));
// for (int j = 0; j < EX.Count; j++)
// {
// if (string.Compare(EX[j].ChallengeBarCode, m.CSBYHCODEA) == 0)
// {
// m.Remark += "(极限件," + EX[j].CodeMessage + "," + EX[j].WeldingCCD + ")";
// ChallengeFlag = 1;
// }
// }
// //查询进站时间数据
// var w = CommonMethods.db.QuerySqlList(CommonMethods.dBSQL.GetInTime(m.CSBYHCODEA));
// //获取新一行数据
// 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.CSBYHCODEA != null && m.CSBYHCODEA != "" && m.CSBYHCODEA != "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]);
// //芯包重量1判定结果
// if (m.list_Data1[i, 10] == 1)
// m.CSBYHWEIGHTRESULTA1 = "OK";
// else if (m.list_Data1[i, 10] == 2)
// m.CSBYHWEIGHTRESULTA1 = "NG";
// else
// m.CSBYHWEIGHTRESULTA1 = "OK";
// //芯包侧厚判定结果
// if (m.list_Data1[i, 11] == 1)
// m.CSBYHTHICKNESSTESTJUDGERESULTA = "OK";
// else if (m.list_Data1[i, 11] == 2)
// m.CSBYHTHICKNESSTESTJUDGERESULTA = "NG";
// else
// m.CSBYHTHICKNESSTESTJUDGERESULTA = "OK";
// //芯包CCD极性检测结果
// if (m.list_Data1[i, 12] == 1)
// m.CSBYHPOLARITYRESULTA = "OK";
// else if (m.list_Data1[i, 12] == 2)
// m.CSBYHPOLARITYRESULTA = "NG";
// else
// m.CSBYHPOLARITYRESULTA = "OK";
// //电芯裁切粘连判定结果
// if (m.list_Data1[i, 13] == 1)
// m.CSBYHCUTADHESIONJUDGERESULTA = "OK";
// else if (m.list_Data1[i, 13] == 2)
// m.CSBYHCUTADHESIONJUDGERESULTA = "NG";
// else
// m.CSBYHCUTADHESIONJUDGERESULTA = "OK";
// //电芯裁切毛刺判定结果
// if (m.list_Data1[i, 14] == 1)
// m.CSBYHCUTBURRJUDGERESULTA = "OK";
// else if (m.list_Data1[i, 14] == 2)
// m.CSBYHCUTBURRJUDGERESULTA = "NG";
// else
// m.CSBYHCUTBURRJUDGERESULTA = "OK";
// //芯包铜焊印位置判定结果1
// if (m.list_Data1[i, 15] == 1)
// {
// m.CSBYHSOLDERJUDGERESULTA = "OK";
// }
// else if (m.list_Data1[i, 15] == 2)
// {
// m.CSBYHSOLDERJUDGERESULTA = "NG";
// }
// else
// {
// m.CSBYHSOLDERJUDGERESULTA = "OK";
// }
// //芯包铜焊印位置判定结果2
// if (m.list_Data1[i, 26] == 1)
// {
// m.CSBYHSOLDERJUDGERESULTA2 = "OK";
// }
// else if (m.list_Data1[i, 26] == 2)
// {
// m.CSBYHSOLDERJUDGERESULTA2 = "NG";
// }
// else
// {
// m.CSBYHSOLDERJUDGERESULTA2 = "OK";
// }
// //芯包正面极耳撕裂判定结果
// if (m.list_Data1[i, 16] == 1)
// m.CSBYHFRONTEARCRACKLEJUDGERESULTA = "OK";
// else if (m.list_Data1[i, 16] == 2)
// m.CSBYHFRONTEARCRACKLEJUDGERESULTA = "NG";
// else
// m.CSBYHFRONTEARCRACKLEJUDGERESULTA = "OK";
// //芯包背面极耳撕裂判定结果
// if (m.list_Data1[i, 17] == 1)
// m.CSBYHBACKEARCRACKLEJUDGERESULTA = "OK";
// else if (m.list_Data1[i, 17] == 2)
// m.CSBYHBACKEARCRACKLEJUDGERESULTA = "NG";
// else
// m.CSBYHBACKEARCRACKLEJUDGERESULTA = "OK";
// //芯包正面极耳翻折检测结果
// if (m.list_Data1[i, 18] == 1)
// m.CSBYHFRONTEARFLODINGRESULTA = "OK";
// else if (m.list_Data1[i, 18] == 2)
// m.CSBYHFRONTEARFLODINGRESULTA = "NG";
// else
// m.CSBYHFRONTEARFLODINGRESULTA = "OK";
// //芯包背面极耳翻折检测结果
// if (m.list_Data1[i, 19] == 1)
// m.CSBYHBACKEARFLODINGRESULTA = "OK";
// else if (m.list_Data1[i, 19] == 2)
// m.CSBYHBACKEARFLODINGRESULTA = "NG";
// else
// m.CSBYHBACKEARFLODINGRESULTA = "OK";
// //电芯测厚压力结果
// if (m.list_Data1[i, 23] == 1)
// m.ThicknessPressureResult = "OK";
// else if (m.list_Data1[i, 23] == 2)
// m.ThicknessPressureResult = "NG";
// else
// m.ThicknessPressureResult = "OK";
// //芯包焊前CCD检测结果
// if (m.list_Data1[i, 24] == 1)
// m.PreweldResult = "OK";
// else if (m.list_Data1[i, 24] == 2)
// m.PreweldResult = "NG";
// else
// m.PreweldResult = "OK";
// //芯包铝焊印位置判定结果1
// if (m.list_Data1[i, 25] == 1)
// {
// m.AluminiumWeldPositionResult1 = "OK";
// }
// else if (m.list_Data1[i, 25] == 2)
// {
// m.AluminiumWeldPositionResult1 = "NG";
// }
// else
// {
// m.AluminiumWeldPositionResult1 = "OK";
// }
// //芯包铝焊印位置判定结果2
// if (m.list_Data1[i, 27] == 1)
// {
// m.AluminiumWeldPositionResult2 = "OK";
// }
// else if (m.list_Data1[i, 27] == 2)
// {
// m.AluminiumWeldPositionResult2 = "NG";
// }
// else
// {
// m.AluminiumWeldPositionResult2 = "OK";
// }
// m.CSBYHASCANNINGTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// //m.RingA = m.list_Data1[i, 0];//无环轨编号,不显示
// m.CSBYHWEIGHTNOA1 = m.list_Data1[i, 1];
// m.CSBYHTHICKNESSTESTSTATIONNOA = m.list_Data1[i, 2];
// m.CSBYHTOOLNOA = m.list_Data1[i, 3];
// m.CSBYHCUWELDINGSTATIONNOA1 = m.list_Data1[i, 4];
// m.CSBYHCUWELDINGSTATIONNOA2 = m.list_Data1[i, 5];
// m.CSBYHCUWELDINGSTATIONNOA3 = m.list_Data1[i, 6];
// m.CSBYHALWELDINGSTATIONNOA1 = m.list_Data1[i, 7];
// m.CSBYHALWELDINGSTATIONNOA2 = m.list_Data1[i, 8];
// m.CSBYHALWELDINGSTATIONNOA3 = m.list_Data1[i, 9];
// m.CSBYHCUTABCUTTERNOA = m.list_Data1[i, 21];
// m.CSBYHALTABCUTTERNOA = m.list_Data1[i, 22];
// m.CSBYHCUWELDHEADCOUNTA1 = m.list_Data2[i, 0];
// m.CSBYHCUWELDHEADCOUNTA2 = m.list_Data2[i, 2];
// m.CSBYHCUWELDHEADCOUNTA3 = m.list_Data2[i, 4];
// m.CSBYHCUWELDBASECOUNTA1 = m.list_Data2[i, 1];
// m.CSBYHCUWELDBASECOUNTA2 = m.list_Data2[i, 3];
// m.CSBYHCUWELDBASECOUNTA3 = m.list_Data2[i, 5];
// m.CSBYHALWELDHEADCOUNTA1 = m.list_Data2[i, 6];
// m.CSBYHALWELDHEADCOUNTA2 = m.list_Data2[i, 8];
// m.CSBYHALWELDHEADCOUNTA3 = m.list_Data2[i, 10];
// m.CSBYHALWELDBASECOUNTA1 = m.list_Data2[i, 7];
// m.CSBYHALWELDBASECOUNTA2 = m.list_Data2[i, 9];
// m.CSBYHALWELDBASECOUNTA3 = m.list_Data2[i, 11];
// m.CSBYHCUTABCUTTERCOUNTA = m.list_Data2[i, 12];
// m.CSBYHALTABCUTTERCOUNTA = m.list_Data2[i, 13];
// m.CopperWeldHeadLife = m.list_Data2[i, 14];
// m.CopperWeldSeatLife = m.list_Data2[i, 15];
// m.AluminiumWeldHeadLife = m.list_Data2[i, 16];
// m.AluminiumWeldSeatLife = m.list_Data2[i, 17];
// m.CuttingKnifeLife = m.list_Data2[i, 18];
// m.CSBYHPROCESSNAME = "超声波预焊接";
// m.CSBYHSCHEDULE = CommonMethods.strClass;
// m.CSBYHINSTATIONTIME = m.ScanTime[0];
// m.CSBYHOUTSTATIONTIME = m.ScanTime[1];
// m.CSBYHWEIGHTA1MAXSETTING = SaveTwoNum(m.list_Data3[i, 0]);
// m.CSBYHWEIGHTA1MINSETTING = SaveTwoNum(m.list_Data3[i, 1]);
// m.CSBYHTHICKNESSTESTPRESSUREMAXSETTINGA = SaveTwoNum(m.list_Data3[i, 2]);
// m.CSBYHTHICKNESSTESTPRESSUREMINSETTINGA = SaveTwoNum(m.list_Data3[i, 3]);
// m.CSBYHTHICKNESSTESTPRESSUREMAXSIZEA = SaveTwoNum(m.list_Data3[i, 4]);
// m.CSBYHTHICKNESSTESTPRESSUREMINSIZEA = SaveTwoNum(m.list_Data3[i, 5]);
// m.CSBYHCUWELDINGPRESSUREMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 6]);//压力最大
// m.CSBYHCUWELDINGPRESSUREMINSETTING = SaveTwoNum(m.list_Data3[i, 7]);//压力最小值
// m.CSBYHCUWELDINGPRESSUREMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 14]);//压力只有一个设定值,显示该值
// m.CSBYHCUWELDINGPRESSUREMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 22]);//压力只有一个设定值,显示该值
// m.CSBYHCUWELDINGPOWERMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 8]);
// m.CSBYHCUWELDINGPOWERMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 16]);
// m.CSBYHCUWELDINGPOWERMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 24]);
// m.CSBYHCUWELDINGPOWERMINSETTING1 = SaveTwoNum(m.list_Data3[i, 9]);
// m.CSBYHCUWELDINGPOWERMINSETTING2 = SaveTwoNum(m.list_Data3[i, 17]);
// m.CSBYHCUWELDINGPOWERMINSETTING3 = SaveTwoNum(m.list_Data3[i, 25]);
// m.CSBYHCUWELDINGENERGYMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 10]);
// m.CSBYHCUWELDINGENERGYMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 18]);
// m.CSBYHCUWELDINGENERGYMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 26]);
// m.CSBYHCUWELDINGENERGYMINSETTING1 = SaveTwoNum(m.list_Data3[i, 11]);
// m.CSBYHCUWELDINGENERGYMINSETTING2 = SaveTwoNum(m.list_Data3[i, 19]);
// m.CSBYHCUWELDINGENERGYMINSETTING3 = SaveTwoNum(m.list_Data3[i, 27]);
// m.CSBYHCUWELDINGAMPLITUDEMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 12]);
// m.CSBYHCUWELDINGAMPLITUDEMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 20]);
// m.CSBYHCUWELDINGAMPLITUDEMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 28]);
// m.CSBYHCUWELDINGAMPLITUDEMINSETTING1 = SaveTwoNum(m.list_Data3[i, 13]);
// m.CSBYHCUWELDINGAMPLITUDEMINSETTING2 = SaveTwoNum(m.list_Data3[i, 21]);
// m.CSBYHCUWELDINGAMPLITUDEMINSETTING3 = SaveTwoNum(m.list_Data3[i, 29]);
// m.CSBYHALWELDINGPRESSUREMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 30]);//
// m.CSBYHALWELDINGPRESSUREMINSETTING = SaveTwoNum(m.list_Data3[i, 31]);//
// m.CSBYHALWELDINGPRESSUREMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 38]);//
// m.CSBYHALWELDINGPRESSUREMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 46]);//
// m.CSBYHALWELDINGPOWERMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 32]);
// m.CSBYHALWELDINGPOWERMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 40]);
// m.CSBYHALWELDINGPOWERMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 48]);
// m.CSBYHALWELDINGPOWERMINSETTING1 = SaveTwoNum(m.list_Data3[i, 33]);
// m.CSBYHALWELDINGPOWERMINSETTING2 = SaveTwoNum(m.list_Data3[i, 41]);
// m.CSBYHALWELDINGPOWERMINSETTING3 = SaveTwoNum(m.list_Data3[i, 49]);
// m.CSBYHALWELDINGENERGYMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 34]);
// m.CSBYHALWELDINGENERGYMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 42]);
// m.CSBYHALWELDINGENERGYMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 50]);
// m.CSBYHALWELDINGENERGYMINSETTING1 = SaveTwoNum(m.list_Data3[i, 35]);
// m.CSBYHALWELDINGENERGYMINSETTING2 = SaveTwoNum(m.list_Data3[i, 43]);
// m.CSBYHALWELDINGENERGYMINSETTING3 = SaveTwoNum(m.list_Data3[i, 51]);
// m.CSBYHALWELDINGAMPLITUDEMAXSETTING1 = SaveTwoNum(m.list_Data3[i, 36]);
// m.CSBYHALWELDINGAMPLITUDEMAXSETTING2 = SaveTwoNum(m.list_Data3[i, 44]);
// m.CSBYHALWELDINGAMPLITUDEMAXSETTING3 = SaveTwoNum(m.list_Data3[i, 52]);
// m.CSBYHALWELDINGAMPLITUDEMINSETTING1 = SaveTwoNum(m.list_Data3[i, 37]);
// m.CSBYHALWELDINGAMPLITUDEMINSETTING2 = SaveTwoNum(m.list_Data3[i, 45]);
// m.CSBYHALWELDINGAMPLITUDEMINSETTING3 = SaveTwoNum(m.list_Data3[i, 53]);
// //m.pan = m.list_pan[i, 0];
// m.CSBYHWEIGHTA1 = SaveTwoNum(m.list_Data4[i, 0]);
// m.CSBYHTHICKNESSTESTPRESSUREA = SaveTwoNum(m.list_Data4[i, 1]);
// m.CSBYHTHICKNESSTESTPRESSURESIZEA = SaveTwoNum(m.list_Data4[i, 2]);
// m.CSBYHCUTABLENGTHA = SaveTwoNum(m.list_Data4[i, 3]);
// m.CSBYHCUTABWIDTHA = SaveTwoNum(m.list_Data4[i, 4]);
// m.CSBYHALTABLENGTHA = SaveTwoNum(m.list_Data4[i, 5]);
// m.CSBYHALTABWIDTHA = SaveTwoNum(m.list_Data4[i, 6]);
// m.CSBYHCUTADHESIONRESULTA = SaveTwoNum(m.list_Data4[i, 7]);
// m.CSBYHCUTBURRRESULTA = SaveTwoNum(m.list_Data4[i, 8]);
// m.CSBYHTOPTOSOLDERDISTANCEA = SaveTwoNum(m.list_Data4[i, 9]);
// m.CSBYHTOPTOSOLDERDISTANCEA2 = SaveTwoNum(m.list_Data4[i, 45]);
// m.CSBYHSOLDERTOEARDISTANCEA = SaveTwoNum(m.list_Data4[i, 10]);
// m.CSBYHFRONTEARCRACKLERESULTA = SaveTwoNum(m.list_Data4[i, 11]);
// m.CSBYHBACKEARCRACKLERESULTA = SaveTwoNum(m.list_Data4[i, 12]);
// m.AluminumToWeld1 = SaveTwoNum(m.list_Data4[i, 44]);
// m.AluminumToWeld2 = SaveTwoNum(m.list_Data4[i, 46]);
// m.CSBYHCUPRESSUREA1 = SaveTwoNum(m.list_Data4[i, 13]);
// m.CSBYHCUPOWERA1 = SaveTwoNum(m.list_Data4[i, 14]);
// m.CSBYHCUENERGYA1 = SaveTwoNum(m.list_Data4[i, 15]);
// m.CSBYHCUAMPLITUDEA1 = SaveTwoNum(m.list_Data4[i, 16]);
// m.CSBYHCUTIMEA1 = SaveTwoNum(m.list_Data4[i, 17]);
// m.CSBYHCUPRESSUREA2 = SaveTwoNum(m.list_Data4[i, 18]);
// m.CSBYHCUPOWERA2 = SaveTwoNum(m.list_Data4[i, 19]);
// m.CSBYHCUENERGYA2 = SaveTwoNum(m.list_Data4[i, 20]);
// m.CSBYHCUAMPLITUDEA2 = SaveTwoNum(m.list_Data4[i, 21]);
// m.CSBYHCUTIMEA2 = SaveTwoNum(m.list_Data4[i, 22]);
// m.CSBYHCUPRESSUREA3 = SaveTwoNum(m.list_Data4[i, 23]);
// m.CSBYHCUPOWERA3 = SaveTwoNum(m.list_Data4[i, 24]);
// m.CSBYHCUENERGYA3 = SaveTwoNum(m.list_Data4[i, 25]);
// m.CSBYHCUAMPLITUDEA3 = SaveTwoNum(m.list_Data4[i, 26]);
// m.CSBYHCUTIMEA3 = SaveTwoNum(m.list_Data4[i, 27]);
// m.CSBYHALPRESSUREA1 = SaveTwoNum(m.list_Data4[i, 28]);
// m.CSBYHALPOWERA1 = SaveTwoNum(m.list_Data4[i, 29]);
// m.CSBYHALENERGYA1 = SaveTwoNum(m.list_Data4[i, 30]);
// m.CSBYHALAMPLITUDEA1 = SaveTwoNum(m.list_Data4[i, 31]);
// m.CSBYHALTIMEA1 = SaveTwoNum(m.list_Data4[i, 32]);
// m.CSBYHALPRESSUREA2 = SaveTwoNum(m.list_Data4[i, 33]);
// m.CSBYHALPOWERA2 = SaveTwoNum(m.list_Data4[i, 34]);
// m.CSBYHALENERGYA2 = SaveTwoNum(m.list_Data4[i, 35]);
// m.CSBYHALAMPLITUDEA2 = SaveTwoNum(m.list_Data4[i, 36]);
// m.CSBYHALTIMEA2 = SaveTwoNum(m.list_Data4[i, 37]);
// m.CSBYHALPRESSUREA3 = SaveTwoNum(m.list_Data4[i, 38]);
// m.CSBYHALPOWERA3 = SaveTwoNum(m.list_Data4[i, 39]);
// m.CSBYHALENERGYA3 = SaveTwoNum(m.list_Data4[i, 40]);
// m.CSBYHALAMPLITUDEA3 = SaveTwoNum(m.list_Data4[i, 41]);
// m.CSBYHALTIMEA3 = SaveTwoNum(m.list_Data4[i, 42]);
// m.ThicknessMeasureDisplacement = m.list_Data4[i, 43];
// //条码,芯包重量,芯包侧厚,芯包CCD极性检测,电芯裁切粘连,电芯裁切毛刺,芯包焊印位置,
// //芯包正面极耳撕裂,芯包背面极耳撕裂,芯包正面极耳翻折,芯包背面极耳翻折
// MyRes[i] = JudgmentResult(Code_NG, m.list_Data1[i, 10], m.list_Data1[i, 11],
// m.list_Data1[i, 12], m.list_Data1[i, 13], m.list_Data1[i, 14], m.list_Data1[i, 15],
// 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.Result = MyRes[i];
// m.CSBYHOUTSTATIONJUDGMENTRESULT = m.judgment_result[i] = OK_NG; ;
// m.Remark += NG_Type;
// NG_Type = "";//清除上一次不良字符串
// OK_NG = ""; //清除上一次结果
// 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 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 = "";
// bool Res = CommonMethods.hbgMes.OutboundInformations(url, siteCode, lineCode, equipNum, materialCode, userName, m, ref MesMessage, ref mesResType, NGcodeList);
// //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.Remark = MesMessage[i];
// break;
// case MesResType.B://不停机,MEs NG品要排出,要给PLC发NG信号
// //m.listRes[i] = 9;
// m.Result = MyRes[i] = 2;
// //m.Remark = MesMessage[i];
// break;
// case MesResType.C://可忽略
// //m.listRes[i] = 1;
// m.Result = MyRes[i] = 2;
// //m.Remark = MesMessage[i];
// break;
// default:
// m.Result = MyRes[i] = 2;
// 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;
// }
// bool Res1 = CommonMethods.hbgMes.ProducResultParam(ur2, siteCode1, lineCode1, equipNum1, materialCode1, userName1, m, unloadType, ref Mesage);
// if (m.Flag == 1)
// m.UpState = "已上传";
// else
// m.UpState = "未上传";
// }
// else
// {
// m.Result = MyRes[i];
// m.Remark += "本地存储";
// m.UpState = "未上传";
// }
// if (CommonMethods.sysConfig.OKSwitching)
// {
// //调试发OK
// m.Result = MyRes[i] = 1;
// //m.Result = "OK";
// }
// }
// else
// {
// 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 = "未上传";
// }
// //极限件发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;
// }
// }
// }
// catch (Exception ex)
// {
// LogHelper.Instance.WriteError($"外观检测出站线程数据解析:{ex}", "SysErrorLog");
// }
// }
// #endregion
// JYResult result1 = null;
// JYResult result2 = 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
// }
// //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 result3 = CommonMethods.PlcLink.WriteValue(pf.VarList[0].VarAddress, 0);//置位0
// CommonMethods.AddDataMonitorLog(0, $"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]}");
// LogHelper.Instance.WriteLog($"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]}");
// Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(1); });
// //数据存储 - 异步处理
// Task.Run(() =>
// {
// SaveBlankingData(list);
// });
// sw2.Stop();
// ////输出下料数据处理耗时:
// CommonMethods.AddDataMonitorLog(0, $"外观检测出站共耗时:{sw2.Elapsed.TotalMilliseconds}ms");
// }
//}
#endregion
//下料解析 外观检
private void BlankingStation(JYResult bArrays, object plcModel)
{
Group pf = plcModel as Group;
if (bArrays == null)
{
CommonMethods.PlcLink.WriteInt16(pf.VarList[0].VarAddress, 0);//置位0
CommonMethods.AddLog(false, $"电芯出站PLC有触发信号,但无数据!");
LoggerHelp.WriteLog($"电芯出站PLC有触发信号,但无数据!", "SysErrorLog");
}
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();
#region 上传MES
//D3200起
for (int i = 0; i < 3; i++)
{
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 < 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);
}
//厚度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";
#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.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" : "缺图");
#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;
m.CSBYHINSTATIONTIME = m.ScanTime[0];
m.CSBYHOUTSTATIONTIME = m.ScanTime[1];
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 < 16; ii++)
{
if (m.CCD_Data[i, ii] != 1)
{
//1OK,2扫码NG,3MES反馈NG,4其他NG
MyRes[i] = 4;
break;
}
}
}
else
MyRes[i] = 2;//扫码NG
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;
m.Remark += NG_Type;
m.MaterialCode = CommonMethods.mesConfig.MaterialCode;
NG_Type = "";//清除上一次不良字符串
OK_NG = ""; //清除上一次结果
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 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("发生一个或多个错误"))
{
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);
if (m.Flag == 1)
m.UpState = "已上传";
else
m.UpState = "未上传";
}
else
{
m.Result = MyRes[i];
m.Remark += "本地存储";
m.UpState = "未上传";
}
if (CommonMethods.sysConfig.OKSwitching)
{
//调试发OK
m.Result = MyRes[i] = 1;
//m.Result = "OK";
}
}
else
{
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 = "未上传";
}
#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)
{
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");
}
}
///
/// 电池结果判断
///
///
///
///
private ushort GetResult(AGearEntity m, ref string strErr)
{
//strErr = "";
//bool b = m.YaLiValue <= 2 ? true : false;//压力值结果NG
//if (b)
//{
// strErr = "良品";
// return 1;
//}
//if (!b)
//{
// strErr = "压力值NG";
// return 5;
//}
return 1;
}
#region 保存下料数据
///
/// 保存下料数据到数据
///
///
private void SaveBlankingData(List list)
{
//数据的保存
try
{
if (list != null && list.Count > 0)
{
//数据显示
List Blist = list;
int i = 0;
string strRes = "";
foreach (BGearEntity m in list)
{
bool b = CommonMethods.db.AddReturnBool(m);
if(!b)
{
strRes = ",不存储";
}
m.Remark = m.Remark + strRes;
Blist[i].Remark = m.Remark;
i++;
}
//数据显示
CommonMethods.ShowBlankingDelegate.Invoke(Blist);
}
else
{
LoggerHelp.WriteLog($"电芯出站数据List为空", "SysErrorLog");
}
}
catch (Exception ex)
{
LoggerHelp.WriteLog($"电芯出站数据保存异常:{ex}", "SysErrorLog");
}
}
#endregion
#endregion
#region 创建空的数组List
public List GetList(int num, T data)
{
List list = new List();
for (int i = 0; i < num; i++)
{
list.Add(data);
}
return list;
}
public List GetMesType(int Num)
{
List mesResTypes = new List();
for (int i = 0; i < Num; i++)
{
mesResTypes.Add(MesResType.UnKnow);
}
return mesResTypes;
}
///
/// PLC内批量写\0
///
///
///
public string GetString_0(int Num)
{
string ff = "";
for (int i = 0; i < Num; i++)
{
ff = ff.Insert(ff.Length, "\0");
}
return ff;
}
public string GetBarCodeNum(int Num)
{
string CodeNo = "";
int CodeLenth = Num.ToString().Length;
switch (CodeLenth)
{
case 1:
return CodeNo = $"00000{Num}";
case 2:
return CodeNo = $"0000{Num}";
case 3:
return CodeNo = $"000{Num}";
case 4:
return CodeNo = $"00{Num}";
case 5:
return CodeNo = $"0{Num}";
default:
return CodeNo = $"{Num}";
}
}
#endregion
#region 下料不良代码
public List NGcode(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m)
{
//芯包重量、测厚位移、极性、铜焊印位置1、铜焊印位置2、正面极耳撕裂、背面极耳撕裂、
//正面极耳翻折、背面极耳翻折、测厚压力、焊前CCD、铝焊印位置1、铝焊印位置2
List NGcodelist = new List();
if (a == 2 || b == 2) NGcodelist.Add("ETPP120");
if (j == 2) NGcodelist.Add("ETPP119");
if (c == 2) NGcodelist.Add("ETPP005");
if (d == 2 || e == 2 || l == 2 || m == 2) NGcodelist.Add("ETPP118");
if (f == 2 || g == 2) NGcodelist.Add("ETPP106");
if (h == 2 || i == 2) NGcodelist.Add("ETPP108");
if (k == 2) NGcodelist.Add("ETPA111");
return NGcodelist;
}
//下料不良代码 外观检
public (List, List) NGWGJcode(int[,] lstResult, int index)
{
List NGcodelist = new List();
List NGmessagelist = new List();
for (int i = 0; i < 27; i++)
{
if (lstResult[index, i] != 0)
{
var strCode = lstResult[index, i].ToString().PadLeft(3, '0');
NGcodelist.Add($"PFVA{strCode}");
var codeEntity = CommonMethods.listNgCodeEntity.FirstOrDefault(x => strCode == x.ngCode);
if (codeEntity != null)
{
NGmessagelist.Add(codeEntity.ngMessage);
}
else
{
NGmessagelist.Add("未知错误");
}
}
}
return (NGcodelist, NGmessagelist);
}
#endregion
#region NG下料不良代码
public List NGCarcode(int a, int b, int c)
{
//芯包重量、测厚位移、极性
List NGcodelist = new List();
if (a == 2) NGcodelist.Add("ETPP120");
if (b == 2) NGcodelist.Add("ETPP120");
if (c == 2) NGcodelist.Add("ETPP105");
return NGcodelist;
}
#endregion
}
}
#endregion
#endregion