From 67f54fd5f720263e8a2937b0f0b0a610141bef08 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期三, 11 六月 2025 17:20:28 +0800 Subject: [PATCH] 111 --- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs | 158 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 144 insertions(+), 14 deletions(-) diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs index d79d552..9c3767a 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs @@ -128,7 +128,8 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 80) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 10銆�1銆�2鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result); + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result); var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null && tray.addState == 0) { @@ -182,7 +183,15 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 95) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 11銆�2銆�3鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result, false, "1"); + string flLoc = ""; + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result, false, "1"); + if (pmInfo.location.Contains("FLZT")) + { + flLoc = pmInfo.location; + pmInfo.location = location; + } + var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null) { @@ -219,6 +228,7 @@ { CMMLog.Info($"鐗╂枡缂栫爜锛歿tray.materialCode}锛屾壒娆″彿锛歿tray.lotNo}"); string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1); + pmInfo.location = !string.IsNullOrEmpty(flLoc) ? flLoc : pmInfo.location; HHAmsExecuteResult req = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), pmInfo.location, PlcBit02, "3妤煎寘瑁呭彇鏂�, 0, tray.trayCode, timeStamp); ProcessHelper.deleteInfo(pmInfo.location + "-鍖呰涓嬬嚎"); //鍖呰鍙栨枡鍗歌揣瀹屾垚锛岃澶囩敓浜ф暟閲忓姞涓�@@ -378,7 +388,8 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 80) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 10銆�1銆�2鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result); + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result); var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null && tray.addState == 0) { @@ -432,7 +443,14 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 95) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 11銆�2銆�3鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result, false, "2"); + string flLoc = ""; + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result, false, "2"); + if (pmInfo.location.Contains("FLZT")) + { + flLoc = pmInfo.location; + pmInfo.location = location; + } var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null) { @@ -468,6 +486,7 @@ { CMMLog.Info($"鐗╂枡缂栫爜锛歿tray.materialCode}锛屾壒娆″彿锛歿tray.lotNo}"); string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1); + pmInfo.location = !string.IsNullOrEmpty(flLoc) ? flLoc : pmInfo.location; HHAmsExecuteResult req; if (pmInfo.deviceType == "22") { @@ -711,7 +730,7 @@ internal static void PickUpFullDoorComplete(string ip, string taskNo) { var plc = Settings.GetPlcInfo().Where(a => a.ip == ip).FirstOrDefault(); - if (plc != null) + if (plc != null && !plc.location.Contains("FLZT")) { //鍐欏叆鍖呰鏈�-瀹夊叏闂ㄥ叧闂ㄦ寚浠� var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel @@ -981,7 +1000,7 @@ if (req) { - ProcessHelper.deleteInfo(plc.location + "-澶嶇О鍏ョ紦瀛樻灦"); + ProcessHelper.deleteInfo(plc.location + "-澶嶇О涓嬬嚎"); var queryList = MongoDBSingleton.Instance.Find<packageInfoModel>(Query.And(Query.EQ("machineNo", model.machince), Query.EQ("trayCode", model.ext2), Query.EQ("weight2", "")), "packageInfoModel"); if (queryList.Count > 0) { @@ -1027,6 +1046,10 @@ MongoDBSingleton.Instance.Update<ProductList>(Query.And(Query.EQ("Date", DateTime.Now.ToString("yyyy-MM-dd")), Query.EQ("machine", model.machince)), Update.Set("percentOfPass", proInfo.percentOfPass).Set("qualifiedQuantity", proInfo.qualifiedQuantity), UpdateFlags.None); } } + else + { + ProcessHelper.recordInfo(plc.location + "-澶嶇О涓嬬嚎", "褰撳墠鍗婃垚鍝佸簱鍖烘湭鑾峰彇鍒板彲鐢ㄨ揣浣嶏紝妫�煡鏄惁宸叉弧"); + } } if (result.result[2] == 2) @@ -1037,7 +1060,7 @@ req = WMSHelper.WMSIn(plc.location, model.ext2, ref wmstaskno, ref traycode, timeStamp); if (req) { - ProcessHelper.deleteInfo(plc.location + "-澶嶇О鍏ョ紦瀛樻灦"); + ProcessHelper.deleteInfo(plc.location + "-澶嶇О涓嬬嚎"); var wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel { addr = plc.writeAddr + 3, @@ -1083,7 +1106,11 @@ else CMMLog.Debug($"packageInfoModel鏈壘鍒版暟鎹紝machineNo:{model.machince},trayCode:{model.ext2}"); } } - else CMMLog.Debug($"澶嶇О鍏ョ紦瀛樻灦NG娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�); + else + { + ProcessHelper.recordInfo("澶嶇О涓嬬嚎", "褰撳墠NG搴撳尯鏈幏鍙栧埌鍙敤璐т綅锛屾鏌ユ槸鍚﹀凡婊�); + CMMLog.Debug($"澶嶇О鍏ョ紦瀛樻灦NG娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�); + } } string PlcBit02 = Settings.GetPlcInfo().Where(a => a.deviceType == "2").FirstOrDefault().location; UpdateBuilder update = Update.Set("ng", result.result[2]); @@ -1501,6 +1528,7 @@ string ChangeBit = WMSHelper.WmsUpdateWay(taskInfo.CN_S_SOURCE_NO, plc.Extend); if (!string.IsNullOrEmpty(ChangeBit)) { + ProcessHelper.deleteInfo("鍙犲寘NG"); CMMLog.Info($"璧风偣锛歿taskInfo.CN_S_END_BIT}"); CMMLog.Info($"缁堢偣锛歿ChangeBit}"); int[] parms = { StockInstance.Instance.GetAGVCodeForBitCode(taskInfo.CN_S_END_BIT), StockInstance.Instance.GetAGVCodeForBitCode(ChangeBit) }; @@ -1511,12 +1539,15 @@ TSHelper.GoToAGV(taskNo, 10, 8); MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), Update.Set("CN_S_END_BIT", ChangeBit).Set("CN_S_START_BIT", taskInfo.CN_S_END_BIT), "TN_I_TASK_MST", UpdateFlags.None); - + MongoDBSingleton.Instance.Remove<WMSInfo>(Query.EQ("trayCode", taskInfo.CN_S_BATCH_NO), RemoveFlags.Single); } - else CMMLog.Debug($"璋冪敤WMS鏀归亾鎺ュ彛锛屾湭鑾峰彇鍒板彲鐢ㄧ偣浣嶃�"); - //Console.WriteLine($"璇荤爜淇℃伅姣斿缁撴灉锛氭潯鐮佷笌浼犻�鐨勬暟鎹笉涓�嚧"); + else + { + CMMLog.Debug($"璋冪敤WMS鏀归亾鎺ュ彛锛屾湭鑾峰彇鍒板彲鐢ㄧ偣浣嶃�"); + ProcessHelper.recordInfo("鍙犲寘NG","NG搴撳尯鏈幏鍙栧埌鍙敤璐т綅锛屾鏌G搴撳尯鏄惁宸叉弧"); + } } } @@ -1863,8 +1894,16 @@ string wmstaskno = ""; string traycode = ""; bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode); - if (req) CMMLog.Debug($"璋冪敤WMS鑾峰彇涓夋ゼ鍙犵洏鏈虹敓鎴愪换鍔℃垚鍔燂紒"); - else CMMLog.Debug($"璋冪敤WMS鑾峰彇涓夋ゼ鍙犵洏鏈虹敓鎴愪换鍔″け璐ワ紒"); + if (req) + { + CMMLog.Debug($"璋冪敤WMS鑾峰彇涓夋ゼ鍙犵洏鏈虹敓鎴愪换鍔℃垚鍔燂紒"); + ProcessHelper.deleteInfo("鍙犵洏涓嬬嚎"); + } + else + { + ProcessHelper.recordInfo("鍙犵洏涓嬬嚎", "鍙犵洏鏈轰笅绾垮簱鍖烘湭鏌ヨ鍒板彲鐢ㄨ揣浣嶏紝妫�煡鍙犵洏鏈轰笅绾垮簱鍖烘槸鍚﹀凡婊�); + CMMLog.Debug($"璋冪敤WMS鑾峰彇涓夋ゼ鍙犵洏鏈虹敓鎴愪换鍔″け璐ワ紒"); + } } } } @@ -2727,7 +2766,7 @@ /// <param name="info"></param> /// <param name="result"></param> /// <param name="noPack">true : MES浜や簰鏂瑰紡 false : 鏃燤ES浜や簰鏂瑰紡</param> - private static void GetMachineData(Settings.PlcInfo pmInfo,int[] result ,bool noPack = true,string isOne = "") + private static void GetMachineData(Settings.PlcInfo pmInfo, ref string loc, int[] result ,bool noPack = true,string isOne = "") { //Console.WriteLine($"杩涘叆鏁版嵁澶勭悊娴佺▼锛�); CMMLog.Info($"杩涘叆鏁版嵁澶勭悊娴佺▼锛�); @@ -2735,6 +2774,7 @@ string empCode = RemoveNull(GetTrayCode(result.Take(5).ToArray()));//鍛樺伐缂栫爜 string trayCode = RemoveNull(GetTrayCode(result.Skip(5).Take(3).ToArray()));//鎵樼洏鐮� string location = RemoveNull(GetTrayCode(result.Skip(8).Take(1).ToArray()));//璁惧璐т綅缂栫爜 + loc = location; #region 2024-12-30 鍙樻洿 鍔犲叆mes鐢熶骇璁㈠崟缂栧彿 鍒嗗綍ID 鍙樻洿娉ㄩ噴 string orderCode = ""; //鐢熶骇璁㈠崟缂栧彿 int fEntryID = 0; //鍒嗗綍ID @@ -4437,6 +4477,96 @@ CMMLog.Info($"鍦ㄩ�閬搟plc.writeAddr + 2}涓啓鍏JsonConvert.SerializeObject(num)}锛宨p锛歿plc.ip}锛岀鍙o細{plc.port}"); } + /// <summary> + /// 鍥涢挻A锛堟礂鏉跨儤骞叉満缁勶級璁惧涓婄┖涓嬫弧 + /// </summary> + /// <param name="plc"></param> + /// <exception cref="NotImplementedException"></exception> + internal static void AMachine(Settings.PlcInfo plc) + { + if (PickUpStartFree(plc.location) && PickUpEndFree(plc.location)) + { + try + { + var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + { + dataNum = 1, + addr = plc.readAddr, + host = plc.ip, + port = plc.port + }); + if (result != null && result.errCode == 0) + { + if (result.result[0] == 1) + { + //閫佺┖ + bool req = WMSHelper.WMSOut(plc.location, "", ""); + if (req) CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�); + } + if (result.result[0] == 2) + { + //鍙栨弧 + string wmstaskno = ""; + string traycode = ""; + bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode); + if (req) CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�); + } + } + } + catch (Exception ex) + { + CMMLog.Info($"鍥涢挻A璁惧 err:{ex.Message}"); + } + } + } + + /// <summary> + /// 鍥涢挻C锛堥挻鏉垮壀鍒囨満缁勶級璁惧涓婃弧涓嬬┖ + /// </summary> + /// <param name="a"></param> + /// <exception cref="NotImplementedException"></exception> + internal static void CMachine(Settings.PlcInfo plc) + { + if (PickUpStartFree(plc.location) && PickUpEndFree(plc.location)) + { + try + { + var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + { + dataNum = 1, + addr = plc.readAddr, + host = plc.ip, + port = plc.port + }); + if (result != null && result.errCode == 0) + { + if (result.result[0] == 1) + { + //閫佹弧 + bool req = WMSHelper.WMSOut(plc.location, "", ""); + if (req) CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�); + } + if (result.result[0] == 2) + { + //鍙栫┖ + string wmstaskno = ""; + string traycode = ""; + bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode); + if (req) CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�); + } + } + } + catch (Exception ex) + { + CMMLog.Info($"鍥涢挻C璁惧 err:{ex.Message}"); + } + } + } + #endregion public class WMS_STOCK_VIEW -- Gitblit v1.9.1