From e3ee006de3ccd8940ad2a600c03675cd2ac5e2cb Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期五, 27 六月 2025 17:38:42 +0800 Subject: [PATCH] 合肥佳通优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs | 78 +++++++++++++++++++++++++++++++------- 1 files changed, 63 insertions(+), 15 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs index 8734562..2be6a68 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs @@ -2,11 +2,13 @@ using HH.WCS.JiaTong.core; using HH.WCS.JiaTong.device; using HH.WCS.JiaTong.dispatch; +using HH.WCS.JiaTong.LISTA.models; using HH.WCS.JiaTong.LISTA.process; using HH.WCS.JiaTong.util; using HH.WCS.JiaTong.wms; using Microsoft.Owin.BuilderProperties; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using SqlSugar; using System; using System.Collections.Generic; @@ -82,13 +84,10 @@ } else { - //璧风偣缁堢偣瑙i攣 LocationHelper.UnLockLoc(mst.S_START_LOC); LocationHelper.UnLockLoc(mst.S_END_LOC); - } - } /// <summary> @@ -133,7 +132,11 @@ } else { - ModbusHelper.WriteSingleRegister(40089, EndLoc.N_LAYER, device.address, 1024); + int layerValue = 0; + if (EndLoc.N_LAYER == 1) layerValue = 1; + else if (EndLoc.N_LAYER == 2) layerValue = 3; + else if (EndLoc.N_LAYER == 3) layerValue = 5; + ModbusHelper.WriteSingleRegister(40089, layerValue, device.address, 1024); ModbusHelper.WriteSingleRegister(40101, 2, device.address, 1024); ModbusHelper.WriteSingleRegister(40003, 2, device.address, 1024); ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); @@ -209,13 +212,25 @@ if (Device != null) { //鍐欏叆澶辫触閲嶆柊鍐欏叆 - while (!S7Helper.WriteDpj(Device.address, 1001, 1)) + if (!S7Helper.WriteDpj(Device.address, 1001, 1)) { - Thread.Sleep(1000); + Task.Run(() => + { + while (!S7Helper.WriteDpj(Device.address, 1001, 1)) + { + Thread.Sleep(1000); + } + }); } - while (!S7Helper.WriteDpj(Device.address, 1002, 0)) + if (!S7Helper.WriteDpj(Device.address, 1002, 0)) { - Thread.Sleep(1000); + Task.Run(() => + { + while (!S7Helper.WriteDpj(Device.address, 1002, 0)) + { + Thread.Sleep(1000); + } + }); } } else @@ -249,9 +264,13 @@ } else { + int layerValue = 0; + if (startloc.N_LAYER == 1) layerValue = 1; + else if (startloc.N_LAYER == 2) layerValue = 3; + else if (startloc.N_LAYER == 3) layerValue = 5; ModbusHelper.WriteSingleRegister(40101, 2, device.address, 1024); ModbusHelper.WriteSingleRegister(40003, 2, device.address, 1024); - ModbusHelper.WriteSingleRegister(40089, startloc.N_LAYER, device.address, 1024); + ModbusHelper.WriteSingleRegister(40089, layerValue, device.address, 1024); ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); } @@ -294,7 +313,11 @@ { LogHelper.Info($"鏍规嵁浠诲姟缁堢偣:{mstbyEqno.S_END_LOC},鏈壘鍒板搴旇揣浣�); } - ModbusHelper.WriteSingleRegister(40089, Endloc.N_LAYER, device.address, 1024); + int value = 0; + if (Endloc.N_LAYER == 1) value = 1; + else if (Endloc.N_LAYER == 2) value = 3; + else if (Endloc.N_LAYER == 3) value = 5; + ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024); ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); } @@ -430,6 +453,14 @@ { var result = true; var db = new SqlHelper<object>().GetInstance(); + //鏍规嵁璧风偣浠撳簱缂栫爜鍒ゆ柇鏄惁鍙互鎺ㄩ� + var taskLimit = db.Queryable<TASK_LIMIT>().Where(a => a.S_WH_CODE == mst.S_START_WH && a.OPEN == "1").First(); + if (taskLimit != null) + { + Console.WriteLine($"浠诲姟锛歿mst.S_CODE},璧风偣浠撳簱锛歿mst.S_START_WH}宸茬粡绂佺敤鎺ㄩ�"); + return false; + } + var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO == mst.S_EQ_NO).ToList(); if (mstbyEqno.Count() == 1) { @@ -455,12 +486,16 @@ else if (mst.S_TYPE == "鐢垫2") { var mst2 = mstbyEqno.Where(a => a.S_TYPE == "鐢垫1").First(); - if (mst2.S_B_STATE == "鍗歌揣瀹屾垚" || mst2.S_B_STATE == "瀹屾垚") - { + if (mst2 == null) + { return result; } else { + if (mst2.S_B_STATE == "鍗歌揣瀹屾垚" || mst2.S_B_STATE == "瀹屾垚") + { + return result; + } result = false; } } @@ -523,14 +558,22 @@ internal static bool SendTask(WCSTask mst) { - + var db = new SqlHelper<object>().GetInstance(); var result = false; var start = "0"; var end = "0"; var taskType = mst.S_TYPE.Trim(); + var list = db.Queryable<Location>().ToList().Count; + //LogHelper.Info($"鏌ヨ鍏ㄩ儴璐т綅鏁版嵁{list}"); // if (mst.N_B_STATE == 0) { if (mst.N_SCHEDULE_TYPE == 1) { LogHelper.Info($"浠诲姟鎺ㄩ�鏁版嵁锛歿JsonConvert.SerializeObject(mst)}"); + if (string.IsNullOrEmpty(mst.S_START_LOC)|| string.IsNullOrEmpty(mst.S_END_LOC)) + { + LogHelper.Info($"浠诲姟{mst.S_CODE},璧风偣缁堢偣鏈夌┖鍙傛暟锛屼笉鎺ㄩ�浠诲姟"); + } + + start = LocationHelper.GetAgvSite(mst.S_START_LOC); end = LocationHelper.GetAgvSite(mst.S_END_LOC); //if (mst.N_START_LAYER > 1) @@ -582,7 +625,12 @@ { LogHelper.Info($"鏍规嵁浠诲姟璧风偣:{mst.S_START_LOC},鏈壘鍒板搴旇揣浣�); } - ModbusHelper.WriteSingleRegister(40089, loc.N_LAYER, device.address, 1024); + int value = 0; + if (loc.N_LAYER == 1) value = 1; + else if (loc.N_LAYER == 2) value = 3; + else if (loc.N_LAYER == 3) value = 5; + + ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024); ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); @@ -864,7 +912,7 @@ mesItemBackModel.Rfid = mst.S_CNTR_CODE; mesItemBackModel.LocationNum = mst.S_END_LOC; mesItemBackModel.Result = "1"; - mesItemBackModel.ArricalTime = DateTime.Now.ToString("yyyy-MM-dd"); + mesItemBackModel.ArricalTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); if (cntritem != null) { -- Gitblit v1.9.1