using bizFacade; using DoWhatPlc; using MesServerWork; using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MisDataSaveDate { public partial class Funtion { /// /// 发动机类型转换表 /// SELECT ID,发动机机型代码 FROM MES_计划BOM_发动机型号代码 /// public static Hashtable hashtable_EngineTypeID=new Hashtable (); /// /// 记录工件到位的发动机机型代码 /// public static Hashtable hashtable_EngineGetOver_EngineTypeID = new Hashtable(); /// /// 记录工件到位的发动机机型 /// public static Hashtable hashtable_EngineGetOver_EngineType = new Hashtable(); /// /// 记录工件到位的发动机号 /// public static Hashtable hashtable_EngineGetOver_EngineID = new Hashtable(); /// /// 记录工件到位的订单号 /// public static Hashtable hashtable_EngineGetOver_OrderForm = new Hashtable(); public static Hashtable hashtable_EngineGetOver = new Hashtable(); public static Hashtable hashtable_PartPalletCode = new Hashtable(); public static void MIS_Funtion(object e) { try { string recData = e.ToString(); string[] dataArray = recData.Split('|'); if (dataArray.Length != 4) return; //消息来源 string m_Source = dataArray[0].ToString(); //消息类型 string m_Command = dataArray[1].ToString(); //工位号 string m_OpName = dataArray[2].ToString(); //消息参数 string m_Value = dataArray[3].ToString(); DoWhatPlc.ReturnValueString rv = Newtonsoft.Json.JsonConvert.DeserializeObject(m_Value); //Console.WriteLine($"【【{rv.TagID}【【【【{ rv.TagKeepTime}"); int tagType; string opName; string tagValue; int tagid; DoWhatPlc.ReturnValueString msgEvent = rv; if (msgEvent.TagValue == null) return; tagType = Convert.ToInt32(msgEvent.TagTypeID); opName = msgEvent.OpName.ToString(); tagid = Convert.ToInt32(msgEvent.TagID); switch (Convert.ToInt32(msgEvent.TagTypeCodeID)) { case 11: switch (msgEvent.TagValue.ToLower()) { case "1": case "true": tagValue = "1"; break; default: tagValue = "0"; break; } break; default: tagValue = msgEvent.TagValue.ToString(); break; } ///根据信号处理逻辑 switch (tagType) { case 19: //允许保存 MesRead(opName, tagValue, tagid); break; case 14: //心跳 //Heartbeat(opName, tagValue); break; case 44://PLC传递机型过后 才允许保存过站信息,否则不允许保存 EngTypeGetOver(opName, tagValue); break; case 2://工件到位 离开信息 if (tagValue == "0") { //传递机型 if (hashtable_EngineGetOver.Contains(opName)) { if (hashtable_EngineGetOver[opName].ToString() == "1") { WorkStart(rv); } } } 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; case 103: Alarm_Insert(rv); break; } } catch (Exception err) { ////ApplicationLog.WriteLog(err, err.Message); } } } }