using System; using MesServerWork; using MisDataFunDll; //using SystemFramework; namespace MesServerFunctions { partial class FunctionMES { /// /// 拧紧完成(PLC) /// /// /// private void FixOK(object e) { try { var msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e; string OpName = Convert.ToString(msgEvent.OpName); int tagValue = Convert.ToInt32(msgEvent.TagValue); #region int EngineTypeID;//机型代码 string EngineType;//机型 string EngineID;//工件编号 int PartPallet_Code;//托盘编号 MIS_BASE.GetEngineTypeFromDB(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code);///从PLC中获取MOBY信息 #endregion if (tagValue == 0) { MIS_BASE.Write_FixOver(OpName, false); return; } else { MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC本次拧紧完成!"); //1:允许拧紧清零 MIS_BASE.Write_FixAllow(OpName, false); if (MIS_BASE.hashtable_WorkGroupIndex == null) { MIS_BASE.InitHashtable_MesServerCode(); } //获取当前拧紧序号 int ProcessCode = 1; if (MIS_BASE.hashtable_WorkGroupIndex.ContainsKey(OpName)) { ProcessCode = Convert.ToInt32(MIS_BASE.hashtable_WorkGroupIndex[OpName]); } //获取当前组号拧紧的合格标志及保存质量数据 int isOK = GetTagValue(OpName, EngineTypeID, EngineType, EngineID, ProcessCode, PartPallet_Code); //发动UDP,通知读取质量数据,实时显示质量数据,最后一段为合格标志(根据合格标志显示哭脸笑脸,2对应哭脸,1对应笑脸) SendInfomation("ShowTimelyQuality_Tight", ProcessCode.ToString() + "&" + isOK.ToString(), OpName); MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC本次拧紧结果!" + isOK.ToString()); //更新拧紧位置临时表 bool IsFinish = true; MisDataFun.MesServer_ShaftPosition_Update(OpName, ProcessCode, isOK, out IsFinish); //通知PLC接到拧紧数据 MIS_BASE.Write_FixOver(OpName, true); if (MIS_BASE.hashtable_QualityMesRead == null) { MIS_BASE.InitHashtable_MesServerCode(); } //记录拧紧/压装过程中的合格标志 if (MIS_BASE.hashtable_QualityMesRead.ContainsKey(OpName)) { MIS_BASE.hashtable_QualityMesRead[OpName] = isOK; } MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "MES保存本次拧紧数据完成!"); } } catch (Exception err) { ////ApplicationLog.WriteLog(err, "Function04:FixOK"); } } } }