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/WMSHelper.cs | 121 ++++++------- ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs | 17 - ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs | 90 +++++++-- ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs | 179 +------------------ ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs | 79 ++++++++ 5 files changed, 221 insertions(+), 265 deletions(-) diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs index 7493131..cd54819 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs @@ -682,6 +682,85 @@ CMMLog.Debug($"WriteItemInfo:End!"); } + /// <summary> + /// 鍐欏叆鍖呰鏈虹墿鏂欎俊鎭�+ /// </summary> + /// <param name="plcInfo"></param> + public static void WriteItemInfoTwo(Settings.PlcInfo plcInfo) + { + CMMLog.Debug($"WriteItemInfo:Start!"); + + try + { + //璇诲彇銆愮炕椤点�閫氶亾鏁版嵁 + var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + { + dataNum = 1, + addr = plcInfo.FyReadAddr, + host = plcInfo.ip, + port = plcInfo.port + }); + CMMLog.Debug($"WriteItemInfo:璇诲彇銆愮炕椤点�閫氶亾鏁版嵁涓猴細{JsonConvert.SerializeObject(result)}!"); + if (true) // result != null && result.errCode == 0 + { + // 绀轰緥锛氳鍑哄�涓� 鑾峰彇1~5缂栧彿鐨勭墿鏂欐暟鎹�璇诲嚭鍊间负2 鑾峰彇6~10缂栧彿鐨勭墿鏂欐暟鎹�瑙勫垯 result.result[0] * 5 - 4 璧峰缂栧彿 + //int startItemNo = 1; + int startItemNo = result.result[0] * 5 - 4; + CMMLog.Debug($"WriteItemInfo:缈婚〉鏁版嵁涓猴細{startItemNo}!"); + var reLocationTask = MongoDBSingleton.Instance.Find<ERPItemTable>(Query.And(Query.In("item_no", new List<MongoDB.Bson.BsonValue>() { startItemNo, startItemNo + 1, startItemNo + 2, startItemNo + 3, startItemNo + 4 })), "ERPItemTable").ToList(); + int reLocationTaskNum = reLocationTask != null ? reLocationTask.Count : 0; + CMMLog.Debug($"WriteItemInfo:鏌ヨ鍑篍RP鐗╂枡琛ㄦ暟鎹暟閲忎负锛歿reLocationTaskNum}!澶囨敞锛氬彧鏈夋暟閲忎负5鎵嶄細鍐欏叆鏁版嵁"); + if (reLocationTaskNum == 5) + { + int no = 0; + reLocationTask.ForEach(a => + { + int writeAddr = plcInfo.FyWriteAddr + no * 50; + if (no > 0) writeAddr = writeAddr + 40; + no++; + // 瑙f瀽鐗╂枡鏁版嵁骞跺啓鍏�鏈夋晥鏁版嵁閫氶亾 50,50(浜у搧鍨嬪彿-10 鐗╂枡缂栫爜-15 鐗╂枡鍚嶇О-20 璁¢噺鍗曚綅-5) + int[] num = new int[50]; + // 鍐呭瓨鍦板潃 0~19 鍗忚鍦板潃 1~20 鎵规鍙�浜哄伐杈撳叆,涓嶉渶瑕佺▼搴忓啓鍏�+ for (int i = 0; i <= 19; i++) num[i] = 0; + // 鍐呭瓨鍦板潃 20~29 鍗忚鍦板潃 21~30 浜у搧鍨嬪彿 + // HandleItemInfo(a.item_spec, 20, 29, num); + HandleItemInfoChina(a.item_spec, 0, 9, num); + CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_spec},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + // 鍐呭瓨鍦板潃 30~49 鍗忚鍦板潃 31~50 鐗╂枡缂栫爜 + HandleItemInfo(a.item_code, 10, 24, num); + CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_code},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + // 鍐呭瓨鍦板潃 50~64 鍗忚鍦板潃 51~65 鐗╂枡鍚嶇О + // HandleItemInfo(a.item_name, 50, 64, num); + HandleItemInfoChina(a.item_name, 25, 44, num);// 涓枃澶勭悊 + CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_name},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + // 鍐呭瓨鍦板潃 65~69 鍗忚鍦板潃 66~70 璁¢噺鍗曚綅 + HandleItemInfo(a.item_uom, 45, 49, num); + CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_uom},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + + CMMLog.Debug($"WriteItemInfo:鍙戦�鐗╂枡淇℃伅銆傚簭鍙凤細{a.item_no},ip:{plcInfo.ip},port:{plcInfo.port},鍐欏叆璧峰鍦板潃:{writeAddr},鍐欏叆鏁版嵁:{JsonConvert.SerializeObject(num)}"); + + var wirteall01 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti + { + addr = writeAddr, + host = plcInfo.ip, + port = plcInfo.port, + data = num + }); + int writeResult = wirteall01 != null ? wirteall01.errCode : 1; + CMMLog.Debug($"WriteItemInfo:鍙戦�鐗╂枡淇℃伅銆傚簭鍙凤細{a.item_no},鍐欏叆缁撴灉锛歿writeResult}銆俰p:{plcInfo.ip},port:{plcInfo.port},鍐欏叆璧峰鍦板潃:{writeAddr},鍐欏叆鏁版嵁:{JsonConvert.SerializeObject(num)}"); + }); + } + } + else CMMLog.Debug($"WriteItemInfo:鏈鍙栥�缈婚〉銆戦�閬撴暟鎹�"); + } + catch (Exception ex) + { + CMMLog.Debug($"WriteItemInfo Error:{ex.Message}"); + } + + CMMLog.Debug($"WriteItemInfo:End!"); + } + public static void HandleItemInfo(string itemInfo,int startIndex, int endIndex , int[] num) { string data = itemInfo;// 瑕佸啓鍏ョ殑澶勭悊鍚庢暟鎹�diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs index 56acb2c..6cc5262 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs @@ -166,15 +166,7 @@ { list.ForEach(a => { - if(a.deviceType == "1") - { - PLCControl.PickUpBlank(a); - } - else - { - PLCControl.PickUpBlankTwo(a); - } - + PLCControl.PickUpBlankTwo(a); }); } } @@ -322,7 +314,7 @@ list.ForEach(a => { // 鍖呰鏈哄惎鍔ㄦ椂璇诲彇銆愮炕椤甸�閬撱�锛屾牴鎹〉鍙疯幏鍙栦簲鏉℃暟鎹紝鐒跺悗鍐欏叆鍖呰鏈�- //ERPService.WriteItemInfo(a); + //ERPService.WriteItemInfoTwo(a); PLCControl.CheckPackingMachineTetracobalt(a); }); @@ -338,7 +330,7 @@ { lock (lock10015) { - ERPService.insertMidTable(); + //ERPService.insertMidTable(); } } #endregion @@ -352,7 +344,8 @@ { if (CheckStartFree(plc.location)) { - PLCControl.CheckPackingLineFullTwo(plc); + //PLCControl.CheckPackingLineFullTwo(plc); + PLCControl.CheckPackingLineFullThree(plc); } } //Thread.Sleep(500); diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs index 316631d..0e5f1a7 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs @@ -249,10 +249,6 @@ int productTime = Convert.ToInt32(Completion(result[(i - 1) * 24 + 20]) + Completion(result[(i - 1) * 24 + 21]), 2);//鐢熶骇鏃ユ湡 string timeCuoTwo = Convert.ToInt32(Completion(result[(i - 1) * 24 + 22]) + Completion(result[(i - 1) * 24 + 23]), 2).ToString(); //鏃堕棿鎴� - //娉ㄦ剰锛氳繖閲岃祴鍊间腑闂磋〃鍙傛暟璇峰鐓т俊鎭氦浜掕〃鍏蜂綋閫氶亾鍊煎搴�- //UpdateBuilder update = Update.Set("employeeId" + i.ToString(), empCode).Set("trayCode" + i.ToString(), trayCode).Set("packingMachineNumber" + i.ToString(), machineCode).Set("needWeight" + i.ToString(), needWeight) - // .Set("oneWeight" + i.ToString(), oneWeight).Set("realWeight" + i.ToString(), readWeight).Set("FCWeight" + i.ToString(), fcWeight).Set("trayType" + i.ToString(), trayType) - // .Set("isFold" + i.ToString(), addState).Set("bagNumber" + i.ToString(), bagNumber).Set("productData" + i.ToString(), productTime).Set("timeCuo" + i.ToString(), timeCuoTwo); UpdateBuilder updateBuilder = Update.Set("employeeId" + i.ToString(), empCode).Set("trayCode" + i.ToString(), trayCode).Set("packingMachineNumber" + i.ToString(), machineCode).Set("needWeight" + i.ToString(), needWeight) .Set("oneWeight" + i.ToString(), oneWeight).Set("realWeight" + i.ToString(), readWeight).Set("FCWeight" + i.ToString(), fcWeight).Set("trayType" + i.ToString(), trayType) .Set("isFold" + i.ToString(), addState).Set("bagNumber" + i.ToString(), bagNumber).Set("productData" + i.ToString(), productTime).Set("timeCuo" + i.ToString(), timeCuoTwo); @@ -1135,201 +1131,51 @@ /// <summary> /// 鍛樺伐缂栧彿1 /// </summary> - public string employeeId1 { get; set; } + public string employeeId { get; set; } /// <summary> /// 鎵樼洏鐮� /// </summary> - public string trayCode1 { get; set; } + public string trayCode { get; set; } /// <summary> /// 鍖呰鏈哄彿1 /// </summary> - public string packingMachineNumber1 { get; set; } + public string packingMachineNumber { get; set; } /// <summary> /// 浜у搧闇�眰閲嶉噺1锛�2浣嶆暣鏁� /// </summary> - public int needWeight1 { get; set; } + public int needWeight { get; set; } /// <summary> /// 鍗曟墭姣涢噸1锛�2浣嶆暣鏁� /// </summary> - public int oneWeight1 { get; set; } + public int oneWeight { get; set; } /// <summary> /// 鍗曟墭瀹為檯閲嶉噺1锛�2浣嶆暣鏁� /// </summary> - public int realWeight1 { get; set; } + public int realWeight { get; set; } /// <summary> /// 鍗曟墭澶嶇О閲嶉噺1锛�2浣嶆暣鏁� /// </summary> - public int FCWeight1 { get; set; } + public int FCWeight { get; set; } /// <summary> /// 鎵樼洏绫诲瀷1 /// </summary> - public string trayType1 { get; set; } + public string trayType { get; set; } /// <summary> /// 鍙犲寘灞傛暟1 /// </summary> - public int isFold1 { get; set; } + public int isFold { get; set; } /// <summary> /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�10) 鏁存暟1 /// </summary> - public int bagNumber1 { get; set; } + public int bagNumber { get; set; } /// <summary> /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級1 /// </summary> - public string productData1 { get; set; } + public string productData { get; set; } /// <summary> /// 鍗曞寘涓嬫枡鏃堕棿鎴� /// </summary> - public string timeCuo1 { get; set; } - - - /// <summary> - /// 鍛樺伐缂栧彿2 - /// </summary> - public string employeeId2 { get; set; } - /// <summary> - /// 鎵樼洏鐮� - /// </summary> - public string trayCode2 { get; set; } - /// <summary> - /// 鍖呰鏈哄彿2 - /// </summary> - public string packingMachineNumber2 { get; set; } - /// <summary> - /// 浜у搧闇�眰閲嶉噺2锛�2浣嶆暣鏁�- /// </summary> - public int needWeight2 { get; set; } - /// <summary> - /// 鍗曟墭姣涢噸2锛�2浣嶆暣鏁�- /// </summary> - public int oneWeight2 { get; set; } - /// <summary> - /// 鍗曟墭瀹為檯閲嶉噺2锛�2浣嶆暣鏁�- /// </summary> - public int realWeight2 { get; set; } - /// <summary> - /// 鍗曟墭澶嶇О閲嶉噺2锛�2浣嶆暣鏁�- /// </summary> - public int FCWeight2 { get; set; } - /// <summary> - /// 鎵樼洏绫诲瀷2 - /// </summary> - public string trayType2 { get; set; } - /// <summary> - /// 鍙犲寘灞傛暟2 - /// </summary> - public int isFold2 { get; set; } - /// <summary> - /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�20) 鏁存暟2 - /// </summary> - public int bagNumber2 { get; set; } - /// <summary> - /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級2 - /// </summary> - public string productData2 { get; set; } - /// <summary> - /// 鍗曞寘涓嬫枡鏃堕棿鎴�- /// </summary> - public string timeCuo2 { get; set; } - - - /// <summary> - /// 鍛樺伐缂栧彿3 - /// </summary> - public string employeeId3 { get; set; } - /// <summary> - /// 鎵樼洏鐮� - /// </summary> - public string trayCode3 { get; set; } - /// <summary> - /// 鍖呰鏈哄彿3 - /// </summary> - public string packingMachineNumber3 { get; set; } - /// <summary> - /// 浜у搧闇�眰閲嶉噺3锛�3浣嶆暣鏁�- /// </summary> - public int needWeight3 { get; set; } - /// <summary> - /// 鍗曟墭姣涢噸3锛�2浣嶆暣鏁�- /// </summary> - public int oneWeight3 { get; set; } - /// <summary> - /// 鍗曟墭瀹為檯閲嶉噺3锛�2浣嶆暣鏁�- /// </summary> - public int realWeight3 { get; set; } - /// <summary> - /// 鍗曟墭澶嶇О閲嶉噺3锛�2浣嶆暣鏁�- /// </summary> - public int FCWeight3 { get; set; } - /// <summary> - /// 鎵樼洏绫诲瀷3 - /// </summary> - public string trayType3 { get; set; } - /// <summary> - /// 鍙犲寘灞傛暟3 - /// </summary> - public int isFold3 { get; set; } - /// <summary> - /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�30) 鏁存暟3 - /// </summary> - public int bagNumber3 { get; set; } - /// <summary> - /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級3 - /// </summary> - public string productData3 { get; set; } - /// <summary> - /// 鍗曞寘涓嬫枡鏃堕棿鎴�- /// </summary> - public string timeCuo3 { get; set; } - - - /// <summary> - /// 鍛樺伐缂栧彿4 - /// </summary> - public string employeeId4 { get; set; } - /// <summary> - /// 鎵樼洏鐮� - /// </summary> - public string trayCode4 { get; set; } - /// <summary> - /// 鍖呰鏈哄彿4 - /// </summary> - public string packingMachineNumber4 { get; set; } - /// <summary> - /// 浜у搧闇�眰閲嶉噺4锛�2浣嶆暣鏁�- /// </summary> - public int needWeight4 { get; set; } - /// <summary> - /// 鍗曟墭姣涢噸4锛�2浣嶆暣鏁�- /// </summary> - public int oneWeight4 { get; set; } - /// <summary> - /// 鍗曟墭瀹為檯閲嶉噺4锛�2浣嶆暣鏁�- /// </summary> - public int realWeight4 { get; set; } - /// <summary> - /// 鍗曟墭澶嶇О閲嶉噺4锛�2浣嶆暣鏁�- /// </summary> - public int FCWeight4 { get; set; } - /// <summary> - /// 鎵樼洏绫诲瀷4 - /// </summary> - public string trayType4 { get; set; } - /// <summary> - /// 鍙犲寘灞傛暟4 - /// </summary> - public int isFold4 { get; set; } - /// <summary> - /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�40) 鏁存暟4 - /// </summary> - public int bagNumber4 { get; set; } - /// <summary> - /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級4 - /// </summary> - public string productData4 { get; set; } - /// <summary> - /// 鍗曞寘涓嬫枡鏃堕棿鎴�- /// </summary> - public string timeCuo4 { get; set; } + public string timeCuo { get; set; } /// <summary> /// 澶嶇О鎬婚噸閲�@@ -1359,6 +1205,7 @@ /// 璁¢噺鍗曚綅 /// </summary> public string measurementUnit { get; set; } + public DateTime createTime { get; set; } } /// <summary> diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs index e356c85..afa5106 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs @@ -1751,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.婊℃墭涓嬬嚎 @@ -1762,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) { @@ -2058,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繑鍥炲�涓虹┖锛�); } @@ -3977,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锛夋槸鍚︽湁绌烘墭锛屾湁绌烘墭鍒ゆ柇鏄惁鏈変换鍔★紝鏈変换鍔″垯鍒ゆ柇鍙︿竴涓偣浣�@@ -3990,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)) { @@ -4017,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 { @@ -4204,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 } } diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs index e38c750..9754fb4 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs @@ -423,40 +423,31 @@ } else { - var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom"); - CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}"); - if (ItemCode == "time" && time != null) - { - CMMLog.Info($"WMSIn-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�); - model.data.Add(new ItemData() - { - //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級 - //isFold = time.isFold, - //packingMachineNumber = time.packingMachineNumber, - itemCode = time.productModel, - lotNo = time.lotNo, - machineNo = time.packingMachineNumber1.ToString(), - packageCode = time.bagNumber1.ToString(), - //palletLayers = time.bagNumber1.ToString(), - foldingbag = time.isFold1.ToString(), - //totalWeight = time.totalWeight, - timeStamp = int.Parse(time.TimeCuo), - //productType = time.productModel, - //bagNumber = time.bagNumber, - //needWeight = time.needWeight, - realWeight = time.realWeight1, - //batchNumber = time.batchNumber, - //totalCount = time.totalCount, - - Jm_Item_Code = time.materialCode, - Jm_Item_Name = time.materialName, - Jm_Item_Model = time.productModel, - Jm_Item_Unit = time.measurementUnit, - Jm_Item_Staff = employee_id - }); - } + //var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom"); + //CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={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) + //{ + // CMMLog.Info($"WMSIn-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�); + // model.data.Add(new ItemData() + // { + // itemCode = time.productModel, + // lotNo = time.lotNo, + // machineNo = time.packingMachineNumber1.ToString(), + // packageCode = time.bagNumber1.ToString(), + // foldingbag = time.isFold1.ToString(), + // timeStamp = int.Parse(time.TimeCuo), + // realWeight = time.realWeight1, + // + // Jm_Item_Code = time.materialCode, + // Jm_Item_Name = time.materialName, + // Jm_Item_Model = time.productModel, + // Jm_Item_Unit = time.measurementUnit, + // Jm_Item_Staff = employee_id + // }); + //} } - } else { @@ -644,38 +635,38 @@ } else { - var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom"); - CMMLog.Info($"WMSInTwo-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}"); - if (ItemCode == "time" && time != null) - { - CMMLog.Info($"WMSInTwo-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�); - model.data.Add(new ItemData() - { - //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級 - //isFold = time.isFold, - //packingMachineNumber = time.packingMachineNumber, - itemCode = time.productModel, - lotNo = time.lotNo, - machineNo = time.packingMachineNumber1.ToString(), - packageCode = time.bagNumber1.ToString(), - //palletLayers = time.bagNumber1.ToString(), - foldingbag = time.isFold1.ToString(), - //totalWeight = time.totalWeight, - timeStamp = int.Parse(time.TimeCuo), - //productType = time.productModel, - //bagNumber = time.bagNumber, - //needWeight = time.needWeight, - realWeight = time.realWeight1, - //batchNumber = time.batchNumber, - //totalCount = time.totalCount, - - Jm_Item_Code = time.materialCode, - Jm_Item_Name = time.materialName, - Jm_Item_Model = time.productModel, - Jm_Item_Unit = time.measurementUnit, - Jm_Item_Staff = employee_id - }); - } + //var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom"); + //CMMLog.Info($"WMSInTwo-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}"); + //if (ItemCode == "time" && time != null) + //{ + // CMMLog.Info($"WMSInTwo-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�); + // model.data.Add(new ItemData() + // { + // //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級 + // //isFold = time.isFold, + // //packingMachineNumber = time.packingMachineNumber, + // itemCode = time.productModel, + // lotNo = time.lotNo, + // machineNo = time.packingMachineNumber1.ToString(), + // packageCode = time.bagNumber1.ToString(), + // //palletLayers = time.bagNumber1.ToString(), + // foldingbag = time.isFold1.ToString(), + // //totalWeight = time.totalWeight, + // timeStamp = int.Parse(time.TimeCuo), + // //productType = time.productModel, + // //bagNumber = time.bagNumber, + // //needWeight = time.needWeight, + // realWeight = time.realWeight1, + // //batchNumber = time.batchNumber, + // //totalCount = time.totalCount, + // + // Jm_Item_Code = time.materialCode, + // Jm_Item_Name = time.materialName, + // Jm_Item_Model = time.productModel, + // Jm_Item_Unit = time.measurementUnit, + // Jm_Item_Staff = employee_id + // }); + //} } } -- Gitblit v1.9.1