124 lines
6.3 KiB
C#
124 lines
6.3 KiB
C#
using MesServerWork;
|
||
using MesWork;
|
||
using MisDataFunDll;
|
||
using MisDataSaveDate;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Windows.Forms;
|
||
//using SystemFramework;
|
||
|
||
namespace MesServerFunctions
|
||
{
|
||
partial class FunctionMES
|
||
{
|
||
/// <summary>
|
||
/// 允许保存(针对半自动和手动压装工位)
|
||
/// </summary>
|
||
/// <param name="OpName"></param>
|
||
/// <param name="tagValue"></param>
|
||
private void MesRead(object e)
|
||
{
|
||
try
|
||
{
|
||
var msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
|
||
string OpName = Convert.ToString(msgEvent.OpName);
|
||
int tagValue = Convert.ToInt32(msgEvent.TagValue);
|
||
|
||
if (tagValue == 1)
|
||
{
|
||
// 1.读取所有的电芯码,总合格标志
|
||
var cell_code = new string[8];
|
||
cell_code[0] = MIS_BASE.Read_TagValueByTagTypeID(200, OpName).ToString();
|
||
cell_code[1] = MIS_BASE.Read_TagValueByTagTypeID(201, OpName).ToString();
|
||
cell_code[2] = MIS_BASE.Read_TagValueByTagTypeID(202, OpName).ToString();
|
||
cell_code[3] = MIS_BASE.Read_TagValueByTagTypeID(203, OpName).ToString();
|
||
cell_code[4] = MIS_BASE.Read_TagValueByTagTypeID(204, OpName).ToString();
|
||
cell_code[5] = MIS_BASE.Read_TagValueByTagTypeID(205, OpName).ToString();
|
||
cell_code[6] = MIS_BASE.Read_TagValueByTagTypeID(206, OpName).ToString();
|
||
cell_code[7] = MIS_BASE.Read_TagValueByTagTypeID(207, OpName).ToString();
|
||
var operationTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||
var qualityMask = Convert.ToInt32(MIS_BASE.Read_TagValueByTagTypeID(21, OpName));
|
||
|
||
// 2.保存质量数据
|
||
MisDataSaveDateMesRead.Funtion.MesRead_Cell(cell_code, OpName, tagValue.ToString(), msgEvent.TagID.ToString(), qualityMask);
|
||
|
||
for (int i = 0; i < cell_code.Length ; i++)
|
||
{
|
||
string EngineID = cell_code[i];
|
||
// 3.保存过站数据
|
||
MisDataFun.Cell_PassStation(OpName, EngineID, operationTime, 2, qualityMask);
|
||
|
||
// 4.上传数据至工厂MES 如果不合格 则在 114—121 8个电芯合格标志 写入 每颗电芯的合格状态
|
||
if (MisDataFun.GetSpecialOpExist(OpName, "角度检测工位"))
|
||
{
|
||
string code;
|
||
string message;
|
||
// 从数据库查出质量数据组 MOM_质量数据_上传_查询
|
||
MisDataFun.GetPartQualityGroupParams(OpName, EngineID, out DataTable dt_quality);
|
||
|
||
CallWebService.Call_cellCustomOneDCCheck(OpName, EngineID, dt_quality, out code, out message,out string checkResult);
|
||
if (code == "0")
|
||
{
|
||
MisDataFun.LogRecording_OP(OpName, "INFO", "MOM", $"电芯{EngineID}结果写入1 合格");
|
||
MIS_BASE.Write_TagValueByTagTypeID(114 + i, OpName, 1);
|
||
}
|
||
else if (code == "13921") // 质量判定不合格 走不合格放行
|
||
{
|
||
string msg = "电芯数据存在质量不合格:" + EngineID + ",code:" + code + ",message:" + message;
|
||
MisDataFun.LogRecording_OP(OpName, "ERROR", "MOM", msg);
|
||
MisDataFun.LogRecording_OP(OpName, "INFO", "MOM", $"电芯{EngineID}结果写入5 质量不合格");
|
||
MIS_BASE.Write_TagValueByTagTypeID(114 + i, OpName, 5);
|
||
}
|
||
else
|
||
{
|
||
string msg = "电芯数据保存失败:" + EngineID + ",code:" + code + ",message:" + message;
|
||
MisDataFun.LogRecording_OP(OpName, "ERROR", "MOM", msg);
|
||
MisDataFun.LogRecording_OP(OpName, "INFO", "MOM", $"电芯{EngineID}结果写入6 上传失败");
|
||
MIS_BASE.Write_TagValueByTagTypeID(114 + i, OpName, 6); // 还有一种是上传失败的!
|
||
}
|
||
}
|
||
}
|
||
|
||
// 判断是否存在首件标志
|
||
if (MIS_BASE.Read_TagValueByTagTypeID(62,OpName) == "1") MisDataFun.Save_FristWorkData(OpName, cell_code[0]); // 第一个产品 存首件数据
|
||
|
||
// 写入加工合格还是不合格 根据工位合格标志写
|
||
MIS_BASE.Write_OpNameIsOk(OpName, qualityMask);
|
||
|
||
// 4.通知PLC保存完成
|
||
MIS_BASE.Write_TagValueByTagTypeID(20, OpName, true);
|
||
|
||
// 工作完成
|
||
MIS_BASE.Write_MesWorkFinish(OpName, true);
|
||
}
|
||
else
|
||
{
|
||
// 写入加工合格还是不合格 根据工位合格标志写
|
||
MIS_BASE.Write_OpNameIsOk(OpName, -99);
|
||
// 保存完成(MES)
|
||
MIS_BASE.Write_TagValueByTagTypeID(20, OpName, false);
|
||
// 工作完成
|
||
MIS_BASE.Write_MesWorkFinish(OpName, false);
|
||
MIS_BASE.Write_TagValueByTagTypeID(114, OpName, 0);
|
||
MIS_BASE.Write_TagValueByTagTypeID(115, OpName, 0);
|
||
MIS_BASE.Write_TagValueByTagTypeID(116, OpName, 0);
|
||
MIS_BASE.Write_TagValueByTagTypeID(117, OpName, 0);
|
||
MIS_BASE.Write_TagValueByTagTypeID(118, OpName, 0);
|
||
MIS_BASE.Write_TagValueByTagTypeID(119, OpName, 0);
|
||
MIS_BASE.Write_TagValueByTagTypeID(120, OpName, 0);
|
||
MIS_BASE.Write_TagValueByTagTypeID(121, OpName, 0);
|
||
}
|
||
|
||
}
|
||
catch (Exception err)
|
||
{
|
||
////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
}
|