63 lines
2.4 KiB
C#
63 lines
2.4 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Threading;
|
|
using System.Xml.Linq;
|
|
|
|
using MesServerWork;
|
|
using MisDataFunDll;
|
|
|
|
namespace MesServerFunctions
|
|
{
|
|
partial class FunctionMES
|
|
{
|
|
/// <summary>
|
|
/// PLC物料扫码校验
|
|
/// </summary>
|
|
/// <param name="e"></param>
|
|
public void MaterialsVerify(object e)
|
|
{
|
|
|
|
try
|
|
{
|
|
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
|
|
string OpName = Convert.ToString(msgEvent.OpName);
|
|
int tagValue = Convert.ToInt32(msgEvent.TagValue);
|
|
//判断PLC机型与MES机型是否一致
|
|
if (tagValue == 1)
|
|
{
|
|
int EngineTypeID;//机型代码
|
|
int PartPallet_Code;//托盘编号
|
|
string EngineType;//机型
|
|
string EngineID;//工件编号
|
|
string OrderForm;
|
|
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
|
|
|
|
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
|
|
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
|
|
|
|
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode);
|
|
int result = Convert.ToInt32(dt.Rows[0]["result"]);
|
|
if (result == 1)
|
|
{
|
|
MIS_BASE.WritePLC(95, OpName, 1); // 物料校验成功
|
|
}
|
|
else
|
|
{
|
|
MIS_BASE.WritePLC(95, OpName, 2); // 物料校验失败
|
|
string msg = $"【{OpName}】产品:{EngineID} | 物料码:{MaterialsCode} | 物料类型:{MaterialsTypeCode.ToString()} 物料校验失败!";
|
|
MisDataSaveDate.Helper.ApiLogHelper.SaveMesLog(OpName, "MaterialsVerify " + msg, MisDataSaveDate.Helper.MesLogType.ERROR);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MIS_BASE.WritePLC(95, OpName, 0); // 物料验证结果清空
|
|
}
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
|
|
}
|
|
}
|
|
}
|
|
}
|