From af42a9904d1d3939da7fa0a00c3a7a2ced78258e Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期三, 21 五月 2025 17:26:18 +0800 Subject: [PATCH] 佳通问题优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 105 insertions(+), 15 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs index 9d644c9..8a26bb6 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs @@ -4,11 +4,13 @@ using HH.WCS.JiaTong.util; using HH.WCS.JiaTong.wms; using Newtonsoft.Json; +using S7.Net; using System; using System.Collections.Generic; using System.Linq; using System.Threading; using static HH.WCS.JiaTong.LISTA.process.HttpModel; +using static System.Collections.Specialized.BitVector32; namespace HH.WCS.JiaTong.process { @@ -31,7 +33,7 @@ { if (data == "") { - Traystacker(plc); + // Traystacker(plc); } } } @@ -45,38 +47,47 @@ /// <summary> /// 鍙犵洏鏈虹┖鎵樿繑鍥� /// </summary> - internal static void Traystacker(Settings.deviceInfo device) + internal static void Traystacker(string loc, int qty, int type) { try { //涓婁紶鏁版嵁 - Result<Traystacker> result1 = new Result<Traystacker>(); - Traystacker traystacker = new Traystacker() { station = device.TN_Location[0], taskSource = 1, Qty = 7 }; - result1.data.Add(traystacker); + Traystacker result1 = new Traystacker() { station = loc, taskSource = 1, Qty = qty, dpType = type }; + HttpHelper httpHelper = new HttpHelper(); Result result = new Result(); string date = JsonConvert.SerializeObject(result1); - string url = Settings.tableUrls.Find(a => a.id == 2).url; - LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥烇細鍦板潃:{url}锛屽唴瀹癸細{date}"); - var r = httpHelper.WebPost(url, date); - result = JsonConvert.DeserializeObject<Result>(r); - if (result.code == "0") + var url = Settings.tableUrls.Find(a => a.id == 3); + if (url != null) { + LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥烇細鍦板潃:{url.url}锛屽唴瀹癸細{date}"); + var r = httpHelper.WebPost(url.url, date); + result = JsonConvert.DeserializeObject<Result>(r); + if (result.code == "0") + { - LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥炶姹傛垚鍔�); + LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥炶姹傛垚鍔�); + } + else + { + LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥炶姹傚け璐�>msg:{result.msg}"); + } } else { - LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥炶姹傚け璐�>msg:{result.msg}"); + LogHelper.Info($"鍙犵洏鏈虹┖鎵�鏍规嵁id=3锛屾湭鎵惧埌閰嶇疆閾炬帴锛岃妫�煡閰嶇疆鏂囦欢"); } } catch (Exception ex) { - LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥� Error=>{ex.ToString()}"); + LogHelper.Error($"鍙犵洏鏈虹┖鎵樿繑鍥� Error=>{ex.ToString()}", ex); } } + /// <summary> + /// 鍘熸潗鏂欏簱agv鍙犵洏鍥炲簱 + /// </summary> internal static void Traffic() { var db = new SqlHelper<object>().GetInstance(); @@ -106,11 +117,90 @@ } } } - - } /// <summary> + /// 浜曟澗agv鍙犵洏鍥炲簱 + /// </summary> + internal static void KjTraffic() + { + + + var db = new SqlHelper<object>().GetInstance(); + List<string> locs = new List<string>() { "PMDDW-001" }; + var location = db.Queryable<Location>().Where(a => locs.Contains(a.S_CODE)).ToList(); + if (location.Count > 0) + { + // string cntrcode = ""; + foreach (var item in location) + { + + if (item.N_CURRENT_NUM >= 6) + { + //var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == item.S_CODE).ToList(); + //if (cntr.Count > 0) + //{ + // var cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray(); + // cntrcode = string.Join(",", cntrcodes); + //} + + //鍒涘缓杩囨湭瀹屾垚鐨勪换鍔′笉鍙戣捣璇锋眰 + var mst = WCSHelper.GetTaskByStartloc(item.S_CODE); + if (mst == null) + { + Traystacker(item.S_CODE, item.N_CURRENT_NUM, 1); + } + } + } + } + } + + /// <summary> + /// 浜曟澗鍙犵洏鏈哄彔鐩樺洖搴�+ /// </summary> + internal static void DpjTraffic() + { + string startBti = "CMB17-DP-001"; + try + { + var IsDp = S7Helper.ReadDpj(2001, S7.Net.VarType.Byte); + var value = S7Helper.ReadDpj(2014, S7.Net.VarType.Int); + + if (value >= 1 && IsDp == 1) + { + //var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == item.S_CODE).ToList(); + //if (cntr.Count > 0) + //{ + // var cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray(); + // cntrcode = string.Join(",", cntrcodes); + //} + + //鍒涘缓杩囨湭瀹屾垚鐨勪换鍔′笉鍙戣捣璇锋眰 + var mst = WCSHelper.GetTaskByStartloc(startBti); + if (mst == null) + { + Traystacker(startBti, value, 2); + } + else + { + LogHelper.Info($"鏈夋墽琛屼腑鐨勫彔鐩樺洖搴撲换鍔mst.S_CODE}锛屼笉瑙﹀彂鍙犵洏浠诲姟"); + } + + } + else + { + LogHelper.Info($"鍙犵洏鏈烘暟閲忥細{value},鍙犵洏淇″彿锛歿IsDp}锛屼笉瑙﹀彂鍙犵洏浠诲姟"); + } + Thread.Sleep(8000); + } + catch (Exception ex) + { + LogHelper.Error($"ReadDpj DpjTraffic:{ex}", ex); + + } + + } + /// <summary> /// 鍘熸潗鏂欏簱鎺ュ彛璁块棶 /// </summary> internal static void AgvEmptyBack(string loc, string cntrcode) -- Gitblit v1.9.1