From c248264e3bc150d145fd38f76f468f938270782a Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期五, 20 六月 2025 17:14:26 +0800 Subject: [PATCH] 111 --- ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs | 4 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs | 2 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs | 245 +++++++++++++++++++++++++++++++++--------------- ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs | 1 4 files changed, 173 insertions(+), 79 deletions(-) diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs index a5d34e3..42ab204 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs @@ -230,6 +230,7 @@ { MongoDBSingleton.Instance.Remove<SendErpTaskInfoTable>(Query.EQ("_id", a._id), "SendErpTaskInfoTable", RemoveFlags.None); MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoCom", RemoveFlags.None); + MongoDBSingleton.Instance.Remove<TimeCuoInfoComTwo>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoComTwo", RemoveFlags.None); } }); } diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs index 126e53a..67b86a9 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs @@ -339,7 +339,7 @@ //鍥涢挻杞﹂棿鎵撳寘涓嬬嚎鐗╂枡淇℃伅闇�浠庝笅绾垮彛鑾峰彇 if (currActionModel.CN_N_ACTION_CODE == 10016) { - var plc = Settings.GetPlcInfo().Where(a => a.enable == 1 && a.deviceType == "26").FirstOrDefault(); + var plc = Settings.GetPlcInfo().Where(a => a.enable == 1 && a.deviceType == "27").FirstOrDefault(); if (plc != null) { if (CheckStartFree(plc.location)) diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs index d541128..7d3bc4d 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs @@ -22,6 +22,8 @@ using static Hanhe.iWCS.TaizhouGEMTwoProtocol.ProtocolAnalysis; using log4net.Appender; using System.Net.Configuration; +using static System.Runtime.CompilerServices.RuntimeHelpers; +using System.Reflection.Emit; namespace Hanhe.iWCS.TaizhouGEMTwoProtocol { @@ -4144,107 +4146,198 @@ internal static void CheckPackingLineFullThree(Settings.PlcInfo plc) { - string trayCode = ""; var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel { - dataNum = 25, - addr = plc.readAddr, + dataNum = 1, + addr = plc.readAddr + 1, host = plc.ip, port = plc.port }); + CMMLog.Info($"涓嬬嚎鍙�ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.writeAddr + 1}锛宺euslt:{JsonConvert.SerializeObject(result)}."); if(result != null && result.errCode == 0) { if (result.result[0] == 1) { - //鑾峰彇鐗╂枡淇℃伅 鏍规嵁鎵樼洏鐮佸尯鍒�- 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) + var resultTime = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel { - 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琛ㄤ腑鏍规嵁鐗╂枡缂栫爜鑾峰彇 + dataNum = 26, + addr = plc.readAddr + 8, + host = plc.ip, + port = plc.port + }); + CMMLog.Info($"涓嬬嚎鍙�ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.writeAddr + 8}锛宺euslt:{JsonConvert.SerializeObject(resultTime)}."); + if (resultTime.errCode == 0) + { + string timeCuoData = (resultTime.result[0] * 65536 + resultTime.result[1]).ToString(); + string empCode = RemoveNull(GetTrayCode(resultTime.result.Skip(2).Take(5).ToArray()));//鍛樺伐缂栫爜 + string machineCode = RemoveNull(GetTrayCode(resultTime.result.Skip(10).Take(1).ToArray()));//鍖呰鏈哄彿 + int needWeight = Convert.ToInt32(Completion(resultTime.result[11]) + Completion(resultTime.result[12]), 2);//浜у搧闇�眰閲嶉噺 + int oneWeight = Convert.ToInt32(Completion(resultTime.result[13]) + Completion(resultTime.result[14]), 2);//鍗曟墭姣涢噸 + int readWeight = Convert.ToInt32(Completion(resultTime.result[15]) + Completion(resultTime.result[16]), 2);//鍗曟墭鍑�噸 + int fcWeight = Convert.ToInt32(Completion(resultTime.result[17]) + Completion(resultTime.result[18]), 2);//鍗曟墭澶嶇О閲嶉噺 + int trayType = Convert.ToInt32(Completion(resultTime.result[19]), 2);//鎵樼洏绫诲瀷 + int addState = Convert.ToInt32(Completion(resultTime.result[20]), 2);//鍙犲寘灞傛暟 + int bagNumber = Convert.ToInt32(Completion(resultTime.result[21]), 2);//琚嬪彿 + int productTime = Convert.ToInt32(Completion(resultTime.result[22]) + Completion(resultTime.result[23]), 2);//鐢熶骇鏃ユ湡 result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel { dataNum = 15, - addr = plc.readAddr + 131, + addr = plc.readAddr + 140, host = plc.ip, port = plc.port }); - + CMMLog.Info($"涓嬬嚎鍙o紝ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.readAddr + 140},result:{JsonConvert.SerializeObject(result)}"); string materialCode = RemoveNull(GetTrayCode(result.result.Skip(0).Take(15).ToArray()).Trim().ToString()); - UpdateBuilder update = Update.Set("materialCode", materialCode).Set("createTime",DateTime.Now); - MongoDBSingleton.Instance.Update<TimeCuoInfoComTwo>(Query.EQ("trayCode", trayCode), update, UpdateFlags.None); - var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + CMMLog.Info($"涓嬬嚎鍙o細timeCuoData:{timeCuoData},empCode:{empCode},machineCode:{machineCode},needWeight:{needWeight},oneWeight:{oneWeight},readWeight:{readWeight}" + + $",fcWeight:{fcWeight},trayType:{trayType},addState:{addState},bagNumber:{bagNumber},productTime:{productTime},TimeCuo:{timeCuoData}"); + var timeTwo = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("TimeCuo", timeCuoData), "TimeCuoInfoComTwo"); + if (timeTwo == null) { - host = plc.ip, - addr = plc.writeAddr, - data = 1, - port = plc.port - }); - CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓�."); - } - } - } - - var xxPlc = Settings.GetPlcInfo().Where(a => a.deviceType == "27" && a.enable == 1).FirstOrDefault(); - if(xxPlc != null) - { - result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel - { - dataNum = 1, - addr = plc.readAddr + 1, - host = plc.ip, - port = plc.port - }); - if(result != null && result.errCode == 0) - { - if (result.result[0] == 1) - { - var resultTime = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel - { - dataNum = 2, - addr = plc.readAddr + 8, - host = plc.ip, - port = plc.port - }); - if (resultTime.errCode == 0) - { - string timeCuoData = (resultTime.result[0] * 65536 + resultTime.result[1]).ToString(); - TimeCuoInfoComTwo time = null; - var timeTwo = MongoDBSingleton.Instance.Find<TimeCuoInfoComTwo>(Query.EQ("trayCode", trayCode), "TimeCuoInfoComTwo"); - if(timeTwo.Count > 0) + MongoDBSingleton.Instance.Insert<TimeCuoInfoComTwo>(new TimeCuoInfoComTwo { - time = timeTwo.OrderBy(a => a.createTime).FirstOrDefault(); - MongoDBSingleton.Instance.Update<TimeCuoInfoComTwo>(Query.EQ("_id", time._id),Update.Set("TimeCuo", timeCuoData)); - } - string wmstaskno = ""; - WMSHelper.WMSIn(plc.location, "time", ref wmstaskno, ref timeCuoData, timeCuoData, time.employeeId, true); + timeCuo = timeCuoData, + employeeId = empCode, + packingMachineNumber = machineCode, + needWeight = needWeight, + oneWeight = oneWeight, + realWeight = readWeight, + FCWeight = fcWeight, + trayType = trayType.ToString(), + isFold = addState, + bagNumber = bagNumber, + productData = productTime.ToString(), + TimeCuo = timeCuoData, + materialCode = materialCode + }, "TimeCuoInfoComTwo"); } + else + { + var query1 = Query.EQ("TimeCuo", timeCuoData); + UpdateBuilder updateBuilder = Update.Set("employeeId", empCode).Set("packingMachineNumber", machineCode).Set("needWeight", needWeight) + .Set("oneWeight", oneWeight).Set("realWeight", readWeight).Set("FCWeight", fcWeight).Set("trayType", trayType.ToString()) + .Set("isFold", addState).Set("bagNumber", bagNumber).Set("productData", productTime.ToString()).Set("TimeCuo", timeCuoData) + .Set("materialCode", materialCode); + MongoDBSingleton.Instance.Update<TimeCuoInfoComTwo>(query1, updateBuilder, "TimeCuoInfoComTwo", UpdateFlags.None); + } + string wmstaskno = ""; + WMSHelper.WMSIn(plc.location, "time", ref wmstaskno, ref timeCuoData, timeCuoData, empCode, true); } } } - else - { - CMMLog.Info("涓嬬嚎鍙h澶囨湭閰嶇疆"); - } + + + //string trayCode = ""; + //var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + //{ + // dataNum = 25, + // addr = plc.readAddr, + // host = plc.ip, + // port = plc.port + //}); + //CMMLog.Info($"璐存爣鏈鸿幏鍙栦俊鎭紝ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.readAddr},result:{JsonConvert.SerializeObject(result)}"); + //if(result != null && result.errCode == 0) + //{ + // if (result.result[0] == 1) + // { + // //鑾峰彇鐗╂枡淇℃伅 鏍规嵁鎵樼洏鐮佸尯鍒�+ // trayCode = RemoveNull(GetTrayCode(result.result.Skip(6).Take(3).ToArray()));//鎵樼洏鐮�+ // + // if (!string.IsNullOrEmpty(trayCode)) + // { + // 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 + // }); + // CMMLog.Info($"璐存爣鏈猴紝ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.readAddr + 131},result:{JsonConvert.SerializeObject(result)}"); + // string materialCode = RemoveNull(GetTrayCode(result.result.Skip(0).Take(15).ToArray()).Trim().ToString()); + // UpdateBuilder update = Update.Set("materialCode", materialCode).Set("createTime", DateTime.Now); + // MongoDBSingleton.Instance.Update<TimeCuoInfoComTwo>(Query.EQ("trayCode", trayCode), update, UpdateFlags.None); + // + // var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel + // { + // host = plc.ip, + // addr = plc.writeAddr, + // data = 1, + // port = plc.port + // }); + // CMMLog.Debug($"璐存爣鏈猴紝鍐欏叆 ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.writeAddr}鐨勬暟鎹负1."); + // } + // } + // } + //} + // + //var xxPlc = Settings.GetPlcInfo().Where(a => a.deviceType == "27" && a.enable == 1).FirstOrDefault(); + //if(xxPlc != null) + //{ + // if (CheckStartFree(plc.location)) + // { + // result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + // { + // dataNum = 1, + // addr = plc.readAddr + 1, + // host = plc.ip, + // port = plc.port + // }); + // + // CMMLog.Debug($"涓嬬嚎鍙�ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.writeAddr + 1}锛宺euslt:{JsonConvert.SerializeObject(result)}."); + // if (result != null && result.errCode == 0) + // { + // if (result.result[0] == 1) + // { + // var resultTime = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + // { + // dataNum = 2, + // addr = plc.readAddr + 8, + // host = plc.ip, + // port = plc.port + // }); + // CMMLog.Debug($"涓嬬嚎鍙�ip锛歿plc.ip}锛宲ort:{plc.port},addr:{plc.writeAddr + 8}锛宺euslt:{JsonConvert.SerializeObject(result)}."); + // if (resultTime.errCode == 0) + // { + // string timeCuoData = (resultTime.result[0] * 65536 + resultTime.result[1]).ToString(); + // TimeCuoInfoComTwo time = null; + // var timeTwo = MongoDBSingleton.Instance.Find<TimeCuoInfoComTwo>(Query.EQ("trayCode", trayCode), "TimeCuoInfoComTwo"); + // if (timeTwo.Count > 0) + // { + // time = timeTwo.OrderBy(a => a.createTime).FirstOrDefault(); + // MongoDBSingleton.Instance.Update<TimeCuoInfoComTwo>(Query.EQ("_id", time._id), Update.Set("TimeCuo", timeCuoData)); + // } + // string wmstaskno = ""; + // WMSHelper.WMSIn(plc.location, "time", ref wmstaskno, ref timeCuoData, timeCuoData, time.employeeId, true); + // } + // } + // } + // } + //} + //else + //{ + // CMMLog.Info("涓嬬嚎鍙h澶囨湭閰嶇疆"); + //} } #endregion diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs index 6a3d933..044cfd0 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs @@ -423,8 +423,8 @@ } else { - var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom"); - CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}"); + var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("TimeCuo", timeStamp), "TimeCuoInfoComTwo"); + CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細TimeCuo={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}"); var erpItemTableInfo = MongoDBSingleton.Instance.FindOne<ERPItemTable>(Query.EQ("item_code", time.materialCode), "ERPItemTable"); CMMLog.Info($"WMSIn-{startBit}:鏌ヨ鏉′欢锛歩tem_code={time.materialCode},璇诲嚭 ERPItemTable 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(erpItemTableInfo)}"); if (ItemCode == "time" && time != null && erpItemTableInfo != null) -- Gitblit v1.9.1