分档类型变更

This commit is contained in:
Administrator
2026-07-02 17:22:02 +08:00
parent 66df37b139
commit 3eed43af5d
412 changed files with 1320462 additions and 1620 deletions
+91 -1
View File
@@ -106,6 +106,7 @@ namespace JinYuan.ControlCenters
{
GetAlarmData();
GetSafeEqptData();
InitFunc();
IntiDevice();
Timer_RefreshData = new System.Timers.Timer(1000);
@@ -896,10 +897,18 @@ namespace JinYuan.ControlCenters
Task.Run(() =>
{
UploadEquEnergy();//电表
//UPloadAnemograph();//风速仪
//UPloadAnemograph();//风速仪
ShowSafeEqptEven_Run(); //安全装置状态
});
Regular = 0;
}
//if (Regular % 30==1)
//{
// Task.Run(() =>
// {
// ShowSafeEqptEven_Run();//安全装置状态
// });
//}
if (TotalNum > 4)
{
GetEnergyData();
@@ -1499,6 +1508,22 @@ namespace JinYuan.ControlCenters
}
}
List<AlarmForm> listSafeEqptForm = null;
public void GetSafeEqptData()
{
//加载PLC安全装置状态文件
try
{
string strFileName = System.Environment.CurrentDirectory + "\\安全装置报警寄存器对应表.csv";
listSafeEqptForm = CSVHelper<AlarmForm>.ReadCSV(strFileName);
}
catch (Exception ex)
{
MessageBox.Show("加载安装装置报警文件失败!");
}
}
/// <summary>
/// 报警信息读取
@@ -1656,6 +1681,71 @@ namespace JinYuan.ControlCenters
}
List<AlarmData> safeEqptStatus = new List<AlarmData>();
List<AlarmStatus> listSafeEqptStatus = null;
private void ShowSafeEqptEven_Run()
{
if (CommonMethods.IsRun && CommonMethods.plcDevice.IsConnected)
{
string Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
JYResult<byte[]> resByte = CommonMethods.PlcLink.ReadValue<JYResult<byte[]>>("D1000", Data_Type.ArrByte, 8);
if (resByte.IsSuccess && resByte != null)
{
if (resByte == null) { return; }
//如果未配置报警地址信息返回 TODO
if (listSafeEqptForm == null) { return; }
int startPlcAddr = 1000;
listSafeEqptStatus = PLCAlarmParseHelper.OmronFinsByte2Status(startPlcAddr, resByte.Content);
//4.判定有不良后,关联AlarmStatus 和AlarmForm
if (listSafeEqptStatus == null) { return; } //状态信息为空返回
//如果有报警,获取报警信息
var josnTxtMsg = $"{Date}:获取PLC安全设备运行状态:\r\n";
for (int i = 0; i < listSafeEqptStatus.Count; i++)
{
josnTxtMsg += $"plc_addr={listSafeEqptStatus[i].PLCAdress},status={listSafeEqptStatus[i].Status}\r\n";
}
TxtHelper.WriteTxt($@"{CommonMethods.strMesLogspath}\{DateTime.Now.ToString("yyyyMMdd")}\设备运行状态\{DateTime.Now.ToString("HH")}.txt", josnTxtMsg);
//关联表单数据和报警记录,获取报警信息
safeEqptStatus = listSafeEqptStatus
.Join(listSafeEqptForm
, s => s.PLCAdress
, f => f.PLCAdress
, (s, f) => new AlarmData()
{
PLCAdress = s.PLCAdress,
AlarmCode = f.AlarmCode,
AlarmContent = f.AlarmContent == "" ? s.PLCAdress : f.AlarmContent,
AlarmDesc = f.AlarmContent == "" ? s.PLCAdress : f.AlarmContent,
AlarmType = "安全装置",
AlarmState = s.Status ? "0" : "1", //mes 要求0是异常,1是正常
StartTime = Date,
EndTime = Date,
Flag = 0
}).ToList();
if (safeEqptStatus.Count > 0)
{
List<SafeEqptCode> safeEqptCodeLists = new List<SafeEqptCode>();
safeEqptStatus.ForEach(r =>
{
if (CommonMethods.sysConfig.MesModeSwitching)
{
var item = new SafeEqptCode();
item.equipNum = r.AlarmCode;
item.status = r.AlarmState;
safeEqptCodeLists.Add(item);
}
});
MESDataCombin.SafeEqptAlarm(Date, safeEqptCodeLists);
}
}
}
}
/// <summary>
/// 报警保存
/// </summary>
+220 -299
View File
@@ -10,6 +10,7 @@ using PLCCommunication;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -40,115 +41,7 @@ namespace JinYuan.ControlCenters
string NG_Type = ""; // 用于备注
string OK_NG = ""; // OK或NG
#region 判断总结果
/// <summary>
/// 判断总结果
/// </summary>
//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;
//}
/// <summary>
/// 判断总结果
/// </summary>
@@ -318,6 +211,8 @@ namespace JinYuan.ControlCenters
return Result;
}
#endregion
#region 上料工位(数据处理)
/// <summary>
/// 上料工位
@@ -402,73 +297,75 @@ namespace JinYuan.ControlCenters
{
List<string> MesMessage = new List<string>();
List<MesResType> mesResType = new List<MesResType>();
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;
//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);
// 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 (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
// 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;
// }
// m.ID = i + 1;
// m.CNum = m.ID.ToString();
//}
//else
{
m.Flag = 0;
m.ID = i + 1;
@@ -542,11 +439,14 @@ namespace JinYuan.ControlCenters
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.WriteValue("D2103", listRes[3], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2104", listRes[4], Data_Type.Short);//调试结果写入PLC
CommonMethods.PlcLink.WriteValue("D2105", listRes[5], 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]},";
string strres = $"分档工位发送给PLC: D2100={listRes[0]},D2101={listRes[1]},D2102={listRes[2]},D2103={listRes[3]},D2104={listRes[4]},D2105 ={listRes[5]}";
CommonMethods.AddDataMonitorLog(0, strres);
}
@@ -1789,7 +1689,7 @@ namespace JinYuan.ControlCenters
List<string> listBarCode = GetList<string>(6, "");//电芯条码
//List<string> listNum = GetList<string>(1, "");//进站磁悬浮动子编号
List<short> listRes = GetList<short>(6, 0);//出站电芯反馈结果
List<short> listGradeResult = GetList<short>(6, 0);//grading plc 数字结果
List<short> listGradeResult = GetList<short>(6, 99);//grading plc 数字结果
//反馈结果
#region 电芯解析
//电芯解析 从3200 开始
@@ -1799,6 +1699,8 @@ namespace JinYuan.ControlCenters
listBarCode[3] = StringLib.GetStringFromByteArrayByEncoding(bytes, 120, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
listBarCode[4] = StringLib.GetStringFromByteArrayByEncoding(bytes, 160, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
listBarCode[5] = StringLib.GetStringFromByteArrayByEncoding(bytes, 200, 40, System.Text.Encoding.ASCII).Replace('\0', ' ').Replace('\r', ' ').Replace(" ", "").Trim();
#endregion
#region 上传MES
var lstBGearEntity = GetBlankingData(listBarCode);
//D3200起
@@ -1906,98 +1808,104 @@ namespace JinYuan.ControlCenters
#region 发送结果MES ,本地存储
if (Code_NG == 1)
{
//if (i >= 4)
//{
// var bar = list[i].BarCode;
//}
string MesMessage = "";
MesResType mesResType = MesResType.C;
if (CommonMethods.mesConfig.isUpMes)
{
#region 出站 分档取消出站
////{
//// 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;
//// }
////}
#endregion
//发送产品结果参数给MES
//bool Res1 = CommonMethods.hbgMes.ProducResultParam(ur2, siteCode1, lineCode1, equipNum1, materialCode1, userName1, m, unloadType, ref Mesage);
//if (CommonMethods.mesConfig.isUpMes)
//{
// // 2025/12/25 打开出站
// #region 出站 分档取消出站
// {
// 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;
// }
// }
// #endregion
// //发送产品结果参数给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
// if (m.Flag == 1)
// m.UpState = "已上传";
// else
// m.UpState = "未上传";
//}
//else
{
m.Result = MyRes[i];
m.Remark += "本地存储";
@@ -2027,11 +1935,15 @@ namespace JinYuan.ControlCenters
#region OK分档查询
//if (CommonMethods.sysConfig.MesModeSwitching && CommonMethods.mesConfig.isConnected)
{ //1 分选测厚度NG ,2 分选外观不良 21分选一档,22分选二档,23分选三档、24分选四档,25分档5 26 ==6
// 99 外观检NG 98 性能NG 97 其它NG
if (list[i].Result == 1)
//2025/12/25 ok
if (Code_NG == 1)
{
if (CommonMethods.mesConfig.isUpMes)
{
//分档接口
//分档接口
//21~26 OK挡位
var (success, mesage, mesResType, mesResFangAnType) = CommonMethods.hbgMes.MesGrading(
@@ -2045,6 +1957,7 @@ namespace JinYuan.ControlCenters
try
{
//listGradeResult[i] = (short)26;//默认分档OK
list[i].Remark = "外观检OK分档";
list[i].Mes_battery_Grade = mesResType[0];
@@ -2054,48 +1967,55 @@ namespace JinYuan.ControlCenters
if (mesResType[0].Equals(CommonMethods.mesConfig.Grading1))
{
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[0] + 20);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[0] );
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
}
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading2))
{
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[1] + 20);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[1]);
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
}
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading3))
{
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[2] + 20);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[2]);
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
}
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading4))
{
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[3] + 20);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[3]);
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
}
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading5))
{
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[4] + 20);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[4]);
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
}
else if (mesResType[0].Equals(CommonMethods.mesConfig.Grading6))
{
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20);
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]}";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5]);
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},{listGradeResult[i]}";
}
else
{
listGradeResult[i] = (short)(97);// 走分档NG
list[i].Remark = $"出站条码[{list[i].BarCode}],MES反馈档位:{mesResType[0]},MES未反馈正确档位";
throw new Exception("MES未反馈正确档位");
}
}
else
{
listGradeResult[i] = (short)(99);// 走分档NG
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OKMES反馈档位:{mesResType[0]},MES未反馈正确档位";
throw new Exception("MES未反馈正确档位");
}
}
catch (Exception ex)
{
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20); //(short)26;
//listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20); //(short)26;
listGradeResult[i] = (short)(99);// 走分档NG
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OK分档NG,MES未反馈正确档位";
LoggerHelp.WriteLog("解析出站MES分档数据异常:{ex.Message}", "SysErrorLog");
@@ -2104,33 +2024,27 @@ namespace JinYuan.ControlCenters
else
{
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检OK分档,MES断连";
listGradeResult[i] = (short)(CommonMethods.MESGradingSet[5] + 20); //(short)26;
// list[i].Result = "MES NG";
listGradeResult[i] = 99; //(short)26;
// list[i].Result = "MES NG";
CommonMethods.PlcLink.WriteValue("D80", 1, Data_Type.Short);
//反馈MES结果
}
}
else
{
//厚度不良分档 1 测厚不良 2 外观不良
if (list[i].CCD19 != 1)
{
listGradeResult[i] = 1;
list[i].Remark = $"出站条码[{list[i].BarCode}]测厚度NG";
}
else
{
//外观不良分档
listGradeResult[i] = 2;
list[i].Remark = $"出站条码[{list[i].BarCode}]外观检NG不分类";
}
listGradeResult[i] = 97;
list[i].Remark = $"出站条码[{list[i].BarCode}]扫码NG";
}
listRes[i] = listGradeResult[i];
list[i].Result = listGradeResult[i];
MyRes[i] = listGradeResult[i];
}
@@ -2167,6 +2081,9 @@ namespace JinYuan.ControlCenters
JYResult result1 = null;
JYResult result2 = null;
JYResult result3 = null;
JYResult result4 = null;
JYResult result5 = null;
JYResult result6 = null;
if (pf.IsFeedbackPlc)
{
//result1 = CommonMethods.PlcLink.WriteValue(pf.VarList[2].VarAddress, MyRes[0], Data_Type.Short);//判断结果写入PLC
@@ -2180,6 +2097,9 @@ namespace JinYuan.ControlCenters
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
result4 = CommonMethods.PlcLink.WriteValue(pf.VarList[5].VarAddress, MyRes[3], Data_Type.Short);//判断结果写入PLC
result5 = CommonMethods.PlcLink.WriteValue(pf.VarList[6].VarAddress, MyRes[4], Data_Type.Short);//判断结果写入PLC
result6 = CommonMethods.PlcLink.WriteValue(pf.VarList[7].VarAddress, MyRes[5], Data_Type.Short);//判断结果写入PLC
}
//else
//{
@@ -2189,9 +2109,9 @@ namespace JinYuan.ControlCenters
// 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]}");
JYResult result_zw = CommonMethods.PlcLink.WriteValue(pf.VarList[0].VarAddress, 0);//置位0
CommonMethods.AddDataMonitorLog(0, $"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]},{MyRes[3]},{MyRes[4]},{MyRes[5]}");
LoggerHelp.WriteLog($"发送信息给PLC:{result1.IsSuccess},{MyRes[0]},{MyRes[1]},{MyRes[2]},{MyRes[3]},{MyRes[4]},{MyRes[5]}");
//Task.Run(() => { SendDateMQTT.Instance.EnterandExitSendMessge(1); });
//数据存储 - 异步处理
@@ -2357,7 +2277,7 @@ namespace JinYuan.ControlCenters
List<string> NGcodelist = new List<string>();
List<string> NGmessagelist = new List<string>();
for (int i = 0; i < 16; i++)
for (int i = 0; i < 27; i++)
{
if (lstResult[index, i] != 0)
{
@@ -2392,6 +2312,7 @@ namespace JinYuan.ControlCenters
return NGcodelist;
}
#endregion
#region 读取下料数据 sql数据库
private List<BGearEntity> GetBlankingData(List<string> listBarCode)
{
@@ -2477,5 +2398,5 @@ namespace JinYuan.ControlCenters
#endregion
}
}
#endregion
#endregion
File diff suppressed because it is too large Load Diff
+49 -1
View File
@@ -108,6 +108,54 @@ namespace JinYuan.ControlCenters
#endregion
#region 11、安全装置状态
/// <summary>
/// 安全装置状态
/// </summary>
/// <param name="strStatus"></param>
/// <returns></returns>
public static string SafeEqptAlarm(string StartDate, List<SafeEqptCode> safeEqptCodeLists = null)
{
var nowTime = DateTime.Now;
string resJson = "";
string josnTxtMsg = string.Empty;
string Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
try
{
//SafeEqptStatusParam statusParam = new SafeEqptStatusParam();
//statusParam.siteCode = CommonMethods.mesConfig.siteCode;
//statusParam.lineCode = CommonMethods.mesConfig.lineCode;
//statusParam.equipNum = CommonMethods.mesConfig.equipNum;
//statusParam.userName = CommonMethods.mesConfig.mesUserName;
//statusParam.seatId = "";
//statusParam.recordDate = StartDate;
//statusParam.uploadTime = Date;
//statusParam.safeEqptCodeList = safeEqptCodeLists;
//string SendJosn = JsonConvert.SerializeObject(statusParam);
var sw = new Stopwatch();
for (int i = 0; i < safeEqptCodeLists.Count; i++)
{
string SendJosn = JsonConvert.SerializeObject(safeEqptCodeLists[i]);
sw.Start();
resJson = MESApiHelper.HttpPostJsonAPI(CommonMethods.mesConfig.SafeEqptStatusMesUrl, SendJosn);
sw.Stop();
josnTxtMsg = $"{nowTime.ToString("yyyy-MM-dd HH:mm:ss.fff")}:调用MES安全设备运行状态接口:{CommonMethods.mesConfig.SafeEqptStatusMesUrl},请求数据为:{SendJosn},\n{nowTime.AddMilliseconds(sw.ElapsedMilliseconds).ToString("yyyy-MM-dd HH:mm:ss.fff")}:接口耗时:{sw.ElapsedMilliseconds}ms,返回结果:{resJson}";
TxtHelper.WriteTxt($@"{CommonMethods.strMesLogspath}\{nowTime.ToString("yyyyMMdd")}\设备运行状态\{nowTime.ToString("HH")}.txt", josnTxtMsg);
}
}
catch (Exception ex)
{
LoggerHelp.WriteEX("调用MES安全设备运行状态接口", ex);
}
return resJson;
}
#endregion
}
}
}