From 84c580cccb118f5ec4a039d0009255935c3c2490 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期二, 17 六月 2025 17:31:40 +0800 Subject: [PATCH] 111 --- ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs | 205 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 147 insertions(+), 58 deletions(-) diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs index 596065b..afa5106 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs @@ -503,8 +503,8 @@ data = num,//鍘熷厛鏄�,鍗曚釜鍐欏叆 port = plc.port }); - CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓�."); - Console.WriteLine($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓�."); + CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓簕JsonConvert.SerializeObject(num)}."); + Console.WriteLine($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓簕JsonConvert.SerializeObject(num)}."); ///灏忚溅鍜屽绉颁綅瀵规帴 //灏忚溅璇锋眰杩涙枡锛屽苟涓旀煡璇㈣澶囨槸鍚﹀厑璁窤GV杩涘叆 var readRes = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel @@ -766,6 +766,7 @@ } if (result.result[0] == 3 && result.result[2] == 1) + //if (result.result[2] == 1) { CMMLog.Info($"SecondWeightActionOne:鍑嗗鐢熸垚澶嶇О鍏ョ紦瀛樻灦浠诲姟锛屽紑濮嬬‘瀹氭墭鐩樺彿:{model.ext2}"); if(plc.deviceType == "22") @@ -958,17 +959,18 @@ var writeRes1 = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel { host = plc.ip, - addr = plc.writeAddr + 3,// + 4 + addr = plc.writeAddr, + data = 0, + port = plc.port + }); + + writeRes1 = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + { + host = plc.ip, + addr = plc.writeAddr + 3, data = 1, port = plc.port }); - //var writeRes1 = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel - //{ - // host = plc.ip, - // addr = plc.writeAddr + 3, - // data = 1, - // port = plc.port - //}); } } @@ -1468,19 +1470,25 @@ /// </summary> /// <param name="ip"></param> /// <param name="taskNo"></param> - internal static void CacheStackingMouth6(Settings.PlcInfo plc) + internal static void CacheStackingMouth6(Settings.PlcInfo plc, string taskNo) { - //var readres = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel - //{ - // dataNum = 2, - // addr = plc.readAddr + 1, - // host = plc.ip, - // port = plc.port - //}); - //if (readres != null) - //{ - - //} + var taskInfo = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), "TN_I_TASK_MST"); + MongoDBSingleton.Instance.Remove<WMSInfo>(Query.EQ("trayCode", taskInfo.CN_S_BATCH_NO), RemoveFlags.Single); + var wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + { + addr = plc.writeAddr + 1, + data = 3, + host = plc.ip, + port = plc.port + }); + Thread.Sleep(2000); + wirte = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + { + addr = plc.writeAddr + 1, + data = 0, + host = plc.ip, + port = plc.port + }); } /// <summary> @@ -1743,6 +1751,7 @@ host = plc.ip, port = plc.port }); + CMMLog.Info($"鍙犵洏涓嬬嚎璇诲彇閫氶亾{plc.ip}锛宲ort锛歿plc.port},鍦板潃锛歿plc.readAddr + 1}鐨勫�涓簕JsonConvert.SerializeObject(result)}"); if (result != null && result.errCode == 0) { //1.婊℃墭涓嬬嚎 @@ -1754,7 +1763,14 @@ string wmstaskno = ""; string traycode = ""; string trayType = ""; - if(plc.deviceType == "25") trayType = result.result[1] == 1 ? "宸濆瓧鎵� : "鐢板瓧鎵�; + if (plc.deviceType == "25") + { + trayType = result.result[1] == 1 ? "宸濆瓧鎵� : result.result[1] == 2 ? "鐢板瓧鎵� : ""; + if (string.IsNullOrEmpty(trayType)) + { + return; + } + } bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode,"","",false, trayType); if (req) { @@ -2050,9 +2066,9 @@ if (timecuo != null) { string timeStamp = timecuo.TimeCuo; - string employeeId = timecuo.employeeId1; - // ERP鍙樻洿-璋冪敤ERP鎺ュ彛浼犺緭鐩稿叧鏁版嵁 - WMSHelper.WMSIn(plc.location, "time", ref wmstaskno, ref timeStamp, timeStamp, employeeId,true); + //string employeeId = timecuo.employeeId1; + //// ERP鍙樻洿-璋冪敤ERP鎺ュ彛浼犺緭鐩稿叧鏁版嵁 + //WMSHelper.WMSIn(plc.location, "time", ref wmstaskno, ref timeStamp, timeStamp, employeeId,true); } else CMMLog.Info($"鏃堕棿鎴虫帴鍙h繑鍥炲�涓虹┖锛�); } @@ -3731,12 +3747,26 @@ CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氬憳宸ョ紪鐮侊細{employeeId}"); // 鍒ゆ柇褰撳墠銆愬憳宸ョ紪鍙枫�閫氶亾淇℃伅璇诲嚭鏉ョ殑鍛樺伐缂栧彿鏄惁宸茬粡瀛樺湪浜庢垜浠殑鍛樺伐淇℃伅琛�ERPEmployeeTable(鏌ヨ瀛楁-employee_id) var erpEmployeeInfo = MongoDBSingleton.Instance.FindOne<ERPEmployeeTable>(Query.EQ("employee_id", employeeId), "ERPEmployeeTable"); - if (erpEmployeeInfo == null) IsContLaterCode = false; + var erpItemInfo = MongoDBSingleton.Instance.FindOne<ERPItemTable>(Query.EQ("item_code", tray.materialCode), "ERPItemTable"); + if (string.IsNullOrEmpty(tray.empCode) || string.IsNullOrEmpty(tray.materialCode) || erpEmployeeInfo == null || erpEmployeeInfo == null) + { + CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氫汉鍛樿〃鎴栬�鐗╂枡琛ㄦ湭鎵惧埌璇ユ暟鎹紝鍛樺伐缂栧彿锛歿employeeId}锛岀墿鏂欑紪鐮侊細{tray.materialCode}锛�); + IsContLaterCode = false; + } else CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氬憳宸ョ紪鐮佹煡璇㈡垚鍔�); } if (IsContLaterCode) { + //妫�储鍛樺伐淇℃伅鎴愬姛 + var wirteall01 = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + { + addr = pmInfo.writeAddr, + host = pmInfo.ip, + port = pmInfo.port, + data = 4 + }); + //string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1); //tray.trayCode = "VW" + timeStamp; //MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("_id", tray._id), Update.Set("trayCode", tray.trayCode), UpdateFlags.None); @@ -3955,7 +3985,7 @@ if (result != null && result.errCode == 0) { //3锛氫汉宸ュ彨绌烘墭鐩�宸濆瓧) 4:浜哄伐鍙┖鎵樼洏(鐢板瓧) - if (result.result[0] == 3 || result.result[0] == 4) + if ((pmInfo.deviceType == "1" && result.result[0] == 3)|| (pmInfo.deviceType == "21" &&(result.result[0] == 3 || result.result[0] == 4))) { //鍖呰绾胯ˉ绌烘祦绋� //鍒ゆ柇绌烘墭缂撳瓨鐐癸紙5 瀵�2锛夋槸鍚︽湁绌烘墭锛屾湁绌烘墭鍒ゆ柇鏄惁鏈変换鍔★紝鏈変换鍔″垯鍒ゆ柇鍙︿竴涓偣浣�@@ -3968,9 +3998,9 @@ { CMMLog.Info($"鍛ㄨ浆鎵樼洏浣嶏細{a}"); var ddInfo = Settings.GetDDSiteList().Where(b => b.ddLoc == a && b.Enable == 1).FirstOrDefault(); - if(ddInfo != null) + if (ddInfo != null) { - if(ddInfo.trayType == result.result[0] - 2) + if (ddInfo.trayType == result.result[0] - 2) { if (ProcessHelper.PickUpEndFree(pmInfo.location) && ProcessHelper.PickUpStartFree(a)) { @@ -3995,21 +4025,6 @@ CMMLog.Info("閰嶇疆鏂囦欢鏈厤缃寘瑁呮満绌烘墭缂撳瓨鐐�); } } - //娴佺▼鏈鎺ュソ锛屾槸鍚﹁繖鏍蜂娇鐢�寰呭畾 - //if (result.result[0] == 4) - //{ - // //璋冪敤wms鍑哄簱鎺ュ彛 - // var tasks = MongoDBSingleton.Instance.Find<TN_I_TASK_MST>(Query.EQ("CN_S_END_BIT", pmInfo.location), "TN_I_TASK_MST"); - // //鍒ゆ柇涓�笅褰撳墠鍙犳墭鐐规槸鍚︽湁浠诲姟鍗犵敤 - // if (ProcessHelper.CheckEndFree(pmInfo.location) && tasks.Count == 0) - // { - // //鍙互鐢熸垚浠诲姟锛岃皟WMS鎺ュ彛鑾峰彇浠诲姟淇℃伅 - // bool req = WMSHelper.WMSOut(pmInfo.location, ""); - // if (req) CMMLog.Debug($"璋冪敤WMS鑾峰彇杈呮潗鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 - // else CMMLog.Debug($"璋冪敤WMS鑾峰彇杈呮潗鍑哄簱鐢熸垚浠诲姟澶辫触锛�); - // } - // else CMMLog.Debug($"妫�煡褰撳墠鍙犳墭鐐规槸鍚︽湁浠诲姟鍗犵敤锛屾垨鑰匨ST涓昏〃涓湁缂撳瓨鏋跺叆鍙犵洏鏈虹殑浠诲姟锛�); - //} } else { @@ -4025,7 +4040,7 @@ { if (action) { - int[] num = new int[3] {1,1,1}; + int[] num = new int[3] {1,0,1}; var writeRes = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti { host = plc.ip, @@ -4049,14 +4064,24 @@ { //鎺ㄩ�灏忚溅杩涘叆 TSHelper.GoToAGV(taskNo, 10, 3); - writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + + int[] num1 = new int[2] { 1, 2}; + writeRes = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti { host = plc.ip, - addr = plc.writeAddr + 2, - data = 2, + addr = plc.writeAddr + 1, + data = num1, port = plc.port }); - CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 2}閲岄潰鏁版嵁涓�."); + + //writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + //{ + // host = plc.ip, + // addr = plc.writeAddr + 2, + // data = 2, + // port = plc.port + //}); + CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 1}閲岄潰鏁版嵁涓簕JsonConvert.SerializeObject(num1)}."); } } } @@ -4081,17 +4106,28 @@ { if (action) { - int[] num = new int[4] { 2, 0, 0, 1 }; - var writeRes = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti + var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel { + dataNum = 1, + addr = plc.readAddr + 3, host = plc.ip, - addr = plc.writeAddr, - data = num, port = plc.port }); - CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓簕JsonConvert.SerializeObject(num)}."); + CMMLog.Debug($"鏌ヨ璁惧{plc.location}閫氶亾{plc.readAddr + 3}閲岄潰鏁版嵁涓簕result.result[0]}."); + if (result.result[0] == 1) + { + int[] num = new int[4] { 2, 0, 0, 1 }; + var writeRes = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti + { + host = plc.ip, + addr = plc.writeAddr, + data = num, + port = plc.port + }); + CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓簕JsonConvert.SerializeObject(num)}."); + } - var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel { dataNum = 4, addr = plc.readAddr, @@ -4104,8 +4140,8 @@ if (result.result[0] == 2 && result.result[1] == 2 && result.result[3] == 2) { //鎺ㄩ�灏忚溅杩涘叆 - TSHelper.GoToAGV(taskNo, 10, 3); - writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + TSHelper.GoToAGV(taskNo, 10, 1); + var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel { host = plc.ip, addr = plc.writeAddr + 3, @@ -4161,6 +4197,59 @@ } Thread.Sleep(100000); } + + internal static void CheckPackingLineFullThree(Settings.PlcInfo plc) + { + var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + { + dataNum = 25, + addr = plc.readAddr, + host = plc.ip, + port = plc.port + }); + if(result != null && result.errCode == 0) + { + if (result.result[0] == 1) + { + //鑾峰彇鐗╂枡淇℃伅 鏍规嵁鎵樼洏鐮佸尯鍒�+ string trayCode = RemoveNull(GetTrayCode(result.result.Skip(6).Take(3).ToArray()));//鎵樼洏鐮�+ + + var infoPack = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.And(Query.EQ("trayCode", trayCode)), "TimeCuoInfoComTwo"); + if (infoPack != null) + { + string empCode = RemoveNull(GetTrayCode(result.result.Skip(1).Take(5).ToArray()));//鍛樺伐缂栫爜 + string machineCode = RemoveNull(GetTrayCode(result.result.Skip(9).Take(1).ToArray()));//鍖呰鏈哄彿 + int needWeight = Convert.ToInt32(Completion(result.result[10]) + Completion(result.result[11]), 2);//浜у搧闇�眰閲嶉噺 + int oneWeight = Convert.ToInt32(Completion(result.result[12]) + Completion(result.result[13]), 2);//鍗曟墭姣涢噸 + int readWeight = Convert.ToInt32(Completion(result.result[14]) + Completion(result.result[15]), 2);//鍗曟墭鍑�噸 + int fcWeight = Convert.ToInt32(Completion(result.result[16]) + Completion(result.result[17]), 2);//鍗曟墭澶嶇О閲嶉噺 + int trayType = Convert.ToInt32(Completion(result.result[18]), 2);//鎵樼洏绫诲瀷 + int addState = Convert.ToInt32(Completion(result.result[19]), 2);//鍙犲寘灞傛暟 + int bagNumber = Convert.ToInt32(Completion(result.result[20]), 2);//琚嬪彿 + int productTime = Convert.ToInt32(Completion(result.result[21]) + Completion(result.result[22]), 2);//鐢熶骇鏃ユ湡 + string timeCuoTwo = Convert.ToInt32(Completion(result.result[23]) + Completion(result.result[24]), 2).ToString(); //鏃堕棿鎴�+ + UpdateBuilder updateBuilder = Update.Set("employeeId", empCode).Set("trayCode", trayCode).Set("packingMachineNumber", machineCode).Set("needWeight", needWeight) + .Set("oneWeight", oneWeight).Set("realWeight", readWeight).Set("FCWeight", fcWeight).Set("trayType", trayType) + .Set("isFold", addState).Set("bagNumber", bagNumber).Set("productData", productTime); + //浜у搧鎵规鍙� 浜у搧鍨嬪彿 鐗╂枡鍚嶇О 璁¢噺鍗曚綅鍧囧彲鍦╡rp琛ㄤ腑鏍规嵁鐗╂枡缂栫爜鑾峰彇 + + result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + { + dataNum = 15, + addr = plc.readAddr + 131, + host = plc.ip, + port = plc.port + }); + + string materialCode = RemoveNull(GetTrayCode(result.result.Skip(0).Take(15).ToArray()).Trim().ToString()); + UpdateBuilder update = Update.Set("materialCode", materialCode); + MongoDBSingleton.Instance.Update<TimeCuoInfoComTwo>(Query.EQ("trayCode", trayCode), update, UpdateFlags.None); + } + } + } + } #endregion } } -- Gitblit v1.9.1