using System; using System.Data; using System.Windows.Forms; using System.Xml.Linq; using bizFacade; //using SystemFramework; using MesServerWork; namespace MesServerFunctions { partial class FunctionMES { /// /// PLC传递机型处理 /// /// /// private void EngineTypeGetOver_PLC(object e) { { try { DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e; string OpName = Convert.ToString(msgEvent.OpName); int tagValue = Convert.ToInt32(msgEvent.TagValue); if (tagValue == 1) { int EngineTypeID;//机型代码 int PartPallet_Code;//托盘编号 string EngineType;//机型 string EngineID;//工件编号 string OrderForm; string OrderForm_MES; int EngineTypeID_MES;//机型代码 string EngineType_MES;//机型 string EngineID_MES;//工件编号 MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm); MIS_BASE.GetEngineTypeFromPLC_MES(OpName, out EngineTypeID_MES, out EngineType_MES, out EngineID_MES, out OrderForm_MES); // 测试的时候用的 plc读取订单号有问题 // OrderForm = BaseDataSystemMES.GetOrderDataBySn(EngineID); // 判断是否存在异常导致不允许工作 输出msg到前端 DataTable OpNameIsWorkDt = BaseDataSystemMES.OpNameIsAllowWork(OpName); if (Convert.ToInt32(OpNameIsWorkDt.Rows[0]["提示类型"]) == 3) { SendMessageFun.SendInfomation("ShowTipBox", OpNameIsWorkDt.Rows[0]["提示文本"].ToString(), OpName); return; } if ( EngineID_MES == EngineID & EngineType_MES == EngineType) { DataTable dt; dt = BaseDataSystemMES.EngineTypeChange(OpName, EngineType); //提示机型发生变化 if (dt.Rows.Count > 0) { string mesValue = Newtonsoft.Json.JsonConvert.SerializeObject(dt);//(recData); string message = "MES|MaterialList_Dif_Resources|" + OpName + "|" + mesValue; SendMessage.AsyncSendMessage(message); } BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.EngineTypeID, EngineTypeID.ToString()); BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.EngineType, EngineType); if ((OpName == "J07PA040" && Convert.ToBoolean(MIS_BASE.ReadPLC(64, OpName))) || OpName == "J07PA030") { // 在保存后才将托盘号置位为1 BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.EngineID, EngineID+"-2"); } else { BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.EngineID, EngineID); } BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.OrderForm, OrderForm); BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.PartPallet_Code, PartPallet_Code.ToString()); //显示当前订单信息 SendMessage.ShowMoby(OpName); EngineTypeGetOver_PLC_Work(OpName, EngineTypeID, EngineType, EngineID, PartPallet_Code, OrderForm); } else { SendMessage.AsyncSendMessage_Notice(OpName, "PLC机型与MES机型不匹配!"); } } } catch (Exception err) { // 保存出错日志 1.申请上线 2.传递机型 3.允许保存 4.扫码 MisDataSaveDate.FuntionMesRead.Alarm_SaveFileLog4Error(2, e, "Fun1053", err); ////ApplicationLog.WriteLog(err, "Function02:EngineTypeGetOver_PLC"); } } } } }