using System; using System.Data; using bizFacade; using MesServerWork; namespace MesServerFunctions { partial class FunctionMES { /// /// 正常逻辑工作(传递机型) /// /// /// /// /// /// private void EngineTypeGetOver_PLC_Work(string OpName, int EngineTypeID, string EngineType, string EngineID, int PartPallet_Code, string OrderForm) { int IsAllowWork; int RepairPartStatusPLC = 0; int MES_QualityMask = 1; string OpName_MainLine = "OP050"; string OpName_SubLine = "OPA90"; //电子看板_装配零件_临时表_增加_北汽 //第二步,将零件信息转移到零件_临时表中 BaseDataSystemMES.MesServer_Process_EngineTypeOverBQ(OpName); //通知web显示 SendMessageFun.SendMessage("123", "111", OpName); //MIS_BASE.Read_PalletInfo(OpName, out MES_QualityMask);//合格标志 合格标志暂时改为即时响应式的 //MIS_BASE.Read_RepairStatus_PLC(OpName, out RepairPartStatusPLC);//返修标志 //SendMessageFun.SendInfomation("QualityMask", Convert.ToString(MES_QualityMask), OpName);//显示合格标志 //SendMessageFun.SendInfomation("RepairPartStatusPLC", Convert.ToString(RepairPartStatusPLC), OpName);//显示返修标志 // 去将该工件之前的件都标记为异常件 BaseDataSystemMES.OPA90CheckQiaoKeErrorData(EngineID); // 1.判断052工位给的是否在050 工位干活的信号 若不在该工位干则直接退出Function Db.OP051_OP050_NeedWork_Search(EngineID, out int IsWork); if(IsWork == 2) { // 2 写入托盘不需要工作后退出方法 MIS_BASE.WritePLC(77, OpName, 2);// 托盘不需要工作 return; } // 正常流程托盘需要工作 MIS_BASE.WritePLC(77, OpName, 1);// 托盘需要工作 // 2. 读取是否存在两个已匹配的轮毂 若存在则可以允许工作 bool result = Db.OPA90_TO_OP50_CheckTwoFinish(out int isNeedWork); if(isNeedWork == 1) { string LunGuCode1 = MIS_BASE.ReadPLC(123, OpName).ToString(); string LunGuCode2 = MIS_BASE.ReadPLC(124, OpName).ToString(); if ((LunGuCode1 == "0" || LunGuCode1 == "" || LunGuCode1.Length < 5 || LunGuCode1.IndexOf("\0") != -1) || (LunGuCode2 == "0" || LunGuCode2 == "" || LunGuCode2.Length < 5 || LunGuCode2.IndexOf("\0") != -1)) { return; } Db.OPA92_DeleteLineData(EngineID, LunGuCode1, LunGuCode2); MIS_BASE.Write_FixAllow(OpName, true); // 允许工作 // 绑定关系 同时 删除记录 //Db.OPA92_DeleteLineData(EngineID); } // 判断主线是否 传递机型 //if (EngineGetOver_MainLine) //{ // string EngineTypeID_MainLine; // int EngineTypeID_MainLineQiaoKe; // // 读取主线桥壳机型 // MIS_BASE.Read_EngineTypeID(OpName_MainLine, out EngineTypeID_MainLineQiaoKe); // // 读取分线存储的桥壳机型 // MIS_BASE.Read_TagTypeID(38, OpName_SubLine, out EngineTypeID_MainLine); // if (Convert.ToInt32(EngineTypeID_MainLine) == EngineTypeID) // { // Db.OP50_OPA90_MatchResult(EngineTypeID, Convert.ToInt32(EngineTypeID_MainLine), EngineTypeID_MainLineQiaoKe, out int MatchResult); // if (MatchResult == 0) // 不匹配 // { // // 主线 // MIS_BASE.Write_Match(OpName_MainLine, false);// 匹配结果 // MIS_BASE.Write_MatchingCompleted(OpName_MainLine, false);// 匹配完成 // MIS_BASE.Write_FixAllow(OpName_MainLine, false); // 允许工作 // // 分线 // MIS_BASE.Write_Match(OpName_SubLine, false);// 匹配结果 // MIS_BASE.Write_MatchingCompleted(OpName_SubLine, false);// 匹配完成 // MIS_BASE.Write_FixAllow(OpName_SubLine, false); // 允许工作 // // 写入分线 等待 0 // MIS_BASE.WritePLC(29, OpName_SubLine, "0"); // } // if (MatchResult == 1) // 允许抓 // { // // 主线 // MIS_BASE.Write_Match(OpName_MainLine, true);// 匹配结果 // MIS_BASE.Write_MatchingCompleted(OpName_MainLine, true);// 匹配完成 // // 分线 // MIS_BASE.Write_Match(OpName_SubLine, true);// 匹配结果 // MIS_BASE.Write_MatchingCompleted(OpName_SubLine, true);// 匹配完成 // MIS_BASE.Write_FixAllow(OpName_MainLine, true); // 允许工作 // // 写入分线 等待 0 // MIS_BASE.WritePLC(29, OpName_SubLine, "0"); // } // if (MatchResult == 2) // 等待 // { // // 写入分线 等待 1 // MIS_BASE.WritePLC(29, OpName_SubLine, "1"); // } // } // else // 不匹配 // { // // 主线 // MIS_BASE.Write_Match(OpName_MainLine, false);// 匹配结果 // MIS_BASE.Write_MatchingCompleted(OpName_MainLine, false);// 匹配完成 // MIS_BASE.Write_FixAllow(OpName_MainLine, false); // 允许工作 // // 分线 // MIS_BASE.Write_Match(OpName_SubLine, false);// 匹配结果 // MIS_BASE.Write_MatchingCompleted(OpName_SubLine, false);// 匹配完成 // MIS_BASE.Write_FixAllow(OpName_SubLine, false); // 允许工作 // // 写入分线 等待 0 // MIS_BASE.WritePLC(29, OpName_SubLine, "0"); // } //} } /// /// 二次工作 /// /// private void EngineTypeGetOver_PLC_Work_two(string OpName) { 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); EngineTypeGetOver_PLC_Work(OpName, EngineTypeID, EngineType, EngineID, Convert.ToInt32(PartPallet_Code), OrderForm); } /// /// 跳过二次工作 /// /// private void EngineTypeGetOver_PLC_Work_Skip(string OpName) { MIS_BASE.Write_MesReadOver(OpName, true); MIS_BASE.Write_MaterialVerifyOver(OpName, true); } /// /// 返修件需要工作 /// /// 工位号 private void IsNeedRepaire_OK(string OpName) { string orderForm = ""; int engineTypeID; string engineType = ""; string engineID = ""; string palletCode = ""; int isRepair; string repairCode = ""; //从监控系统中查询出本工位信息 BaseDataSystemMES.OpName_MIS_Moby_Select(OpName, out orderForm, out engineTypeID, out engineType, out engineID, out palletCode, out isRepair, out repairCode); EngineTypeGetOver_PLC_Work(OpName, engineTypeID, engineType, engineID, Convert.ToInt32(palletCode), orderForm); } } }