using System; using System.Data; using System.Threading; using System.Xml.Linq; using MesServerWork; using MisDataFunDll; namespace MesServerFunctions { partial class FunctionMES { /// /// PLC物料扫码校验 /// /// 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"); } } } }