using MesServerWork; using System; using System.Collections.Generic; using System.Linq; using System.Text; using SystemFramework; namespace MisDataFunction { public partial class Function: MIS_BASE { /// /// 处理MIS逻辑 /// /// public static void MIS_Funtion(object e) { try { int tagType; string opName; string tagValue; int tagid; OpcData.CustomeEvetnArgs msgEvent = (OpcData.CustomeEvetnArgs)e; if (msgEvent.TagValue == null) return; tagType = Convert.ToInt32(msgEvent.TagType); opName = msgEvent.OpName.ToString(); tagid = Convert.ToInt32(msgEvent.TagKey); switch (Convert.ToInt32(msgEvent.TagValueType)) { case 11: tagValue = (Convert.ToInt32(msgEvent.TagValue)).ToString(); break; default: tagValue = msgEvent.TagValue.ToString(); break; } ///根据信号处理逻辑 switch (tagType) { case 19: //允许保存 MesRead(opName, tagValue, tagid.ToString()); break; case 14: //心跳 Heartbeat(opName, tagValue); break; case 44://PLC传递机型过后 才允许保存过站信息,否则不允许保存 if (tagValue == "1") { IsEngTypeGetOver_Write(opName, true); EngineData Enginedata = new EngineData(MesDataFunction.OpcOperation.ReadPLC(10, opName).ToString(), Convert.ToInt32(MesDataFunction.OpcOperation.ReadPLC(80, opName))); //保存产品编号、托盘号 保存过站信息用 EngineData_Hash_Write(opName, Enginedata); } break; case 2://工件到位 WorkStart(opName, tagValue); break; case 51: if (hashtableOpName_IsHaveComputer[opName].ToString() == "1") { SaveProductLeaveData(opName, 1); } break; case 8: if (hashtableOpName_IsHaveComputer[opName].ToString() == "1") { SaveProductLeaveData(opName, 2); } break; } } catch (Exception err) { ApplicationLog.WriteLog(err, err.Message); } } } }