Files
2026-06-08 10:59:21 +08:00

90 lines
4.1 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using bizFacade;
//using SystemFramework;
using MesServerWork;
namespace MesServerFunctions
{
partial class FunctionMES
{
object lockMesRead = new object ();
/// <summary>
/// 保存完成(针对半自动和手动压装工位)
/// </summary>
/// <param name="OpName"></param>
/// <param name="tagValue"></param>
private void MesRead(object e)
{
lock(lockMesRead)
{
try
{
int EngineTypeID;
string EngineType;
string EngineID;
int PartPallet_Code;
string OrderForm;
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
if (tagValue == 1)
{
int qualityMask;
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
//保存数据到线首表 先保存到 北汽福田变速器序列号总线上线 用于之前判断是否重号
// 保存质量数据
qualityMask = MisDataSaveDateMesRead.Funtion.MesRead(OpName, tagValue.ToString(), msgEvent.TagID.ToString());
// 保存物料数据
BaseDataSystemMES.Material_Insert(OpName, qualityMask);
// 测量数据发动机在线状态
BaseDataSystemMES.WorkStartInsert(OpName, qualityMask);
// 推送质量数据到MES的页面
SendMessageFun.SendInfomation("ShowTimelyQuality", "1&" + qualityMask.ToString(), OpName);
// 记录手动存储的物料数据
int byte1 = Convert.ToInt32(MIS_BASE.ReadPLC(211, OpName));
int byte2 = Convert.ToInt32(MIS_BASE.ReadPLC(202, OpName));
int byte3 = Convert.ToInt32(MIS_BASE.ReadPLC(203, OpName));
int byte4 = Convert.ToInt32(MIS_BASE.ReadPLC(204, OpName));
int byte5 = Convert.ToInt32(MIS_BASE.ReadPLC(205, OpName));
int byte6 = Convert.ToInt32(MIS_BASE.ReadPLC(206, OpName));
int byte7 = Convert.ToInt32(MIS_BASE.ReadPLC(207, OpName));
int byte8 = Convert.ToInt32(MIS_BASE.ReadPLC(208, OpName));
int byte9 = Convert.ToInt32(MIS_BASE.ReadPLC(209, OpName));
int byte10 = Convert.ToInt32(MIS_BASE.ReadPLC(210, OpName));
BaseDataSystemMES.HeLi_HMIMaterialFactory_Add(OpName, EngineID, OrderForm, byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10);
//对应手动工位的
//MIS_BASE.Write_ConfirmOkGo(OpName, true);
//通知设备MES的质量数据和物料数据保存完成
MIS_BASE.Write_MaterialVerifyOver(OpName, true);
MIS_BASE.Write_MesReadOver(OpName, true);
//统计在线产量,在线节拍
SendMessage.SendActuallyCount(OpName, tagValue);
}
else
{
MIS_BASE.Write_MaterialVerifyOver(OpName, false);
MIS_BASE.Write_MesReadOver(OpName, false);
}
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
}
}
}
}
}