From 08eb1d72105662b301275fefd876be18df1b9fec Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期二, 29 四月 2025 15:12:47 +0800 Subject: [PATCH] 修改小车充电流程 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 117 +++++++++++++++++++------------------- Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 8 +- Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs | 12 ++- 3 files changed, 72 insertions(+), 65 deletions(-) diff --git a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs index 5a0b3ce..34fc097 100644 --- a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs +++ b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs @@ -76,12 +76,16 @@ /// 鏋侀檺鐢甸噺 浣庝簬姝ょ數閲忎笉鎵ц浠诲姟 /// </summary> [Description("鏋侀檺鐢甸噺")] - Dl = 30, + Dl = 60, /// <summary> /// 鍋ュ悍鐢甸噺 浣庝簬姝ょ數閲� 涓旀棤浠诲姟鏃跺幓鍏呯數 /// </summary> [Description("鍋ュ悍鐢甸噺")] - Dl2 = 80, - - + Dl2 = 90, + /// <summary> + /// 鏋侀檺鐢甸噺 浣庝簬姝ょ數閲忎笉鎵ц浠诲姟 + /// </summary> + [Description("鏋侀檺鐢甸噺")] + Dl3 = 50, + } diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index a25f1e5..bc201db 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -170,68 +170,66 @@ int valueTaskStr = Convert.ToInt32(valueTask); //鑾峰彇浠诲姟淇℃伅 鏍规嵁 浠诲姟鍙枫�佸皬杞︾紪鍙� var carTask = _db.Queryable<WcsCarTasks>().First(m=>m.IsDelete == false && m.Status == TaskStatusEnum.Doing && m.CarTaskNo == valueTaskStr && m.CarNo == modDevice.PlcIdIP); - if (carTask == null) + if (carTask != null) { //var modRests = modDevice.listStation.FirstOrDefault(s => s.Text == "澶嶄綅"); //plcConn.SetDBValue(modRests.PosType, modRests.PlcPos, "1");//娌℃湁鎵惧埌浠诲姟 澶嶄綅 - return; - } - - var modFinshTask = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.TaskNo == carTask.TaskNo); - if (modFinshTask == null) - { - break;//娌℃湁鏌ヨ鍒版�讳换鍔� - } - if (carTask != null && carTask.Status != TaskStatusEnum.Complete) - { - carTask.Status = TaskStatusEnum.Complete; - carTask.UpdateTime = DateTime.Now; - _db.Updateable(carTask).ExecuteCommand(); - //娣诲姞浠诲姟鏄庣粏 - var taskMonitor = new WcsTaskMonitor() - { - TaskNo = carTask.TaskNo, - PlcName = modDevice.Text, - InteractiveMsg = $"绌挎杞﹀弽棣堜换鍔″畬鎴�" - }; - _db.Insertable(taskMonitor).ExecuteCommand(); - //涓嬪彂浠诲姟鏃ュ織 - HubUtil.PublicTaskMonitor(taskMonitor.Adapt<WcsTaskMonitorOutput>()); - } - //鑾峰彇璺緞2鐨勪换鍔� 涓嬪彂 - carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First(); - //鎬讳换鍔′笅娌℃湁鍏朵粬鏈墽琛屽皬杞︾殑浠诲姟 鍙樻洿鎬讳换鍔′俊鎭� - if (carTaskNext == null && modFinshTask != null && modFinshTask.Status != TaskStatusEnum.Complete) - { - modFinshTask.Status = TaskStatusEnum.Complete; - modFinshTask.FinishDate = DateTime.Now; - _db.Updateable(modFinshTask).ExecuteCommand(); - - //鍒ゆ柇浠诲姟鏄惁鍏呯數浠诲姟,涓嬪彂寮�濮嬪厖鐢靛懡浠� - if (modFinshTask.Levels == 888) + var modFinshTask = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.TaskNo == carTask.TaskNo); + if (modFinshTask == null) { - //鍐欏叆寮�濮嬪厖鐢� - var modCd = modDevice.listStation.FirstOrDefault(s => s.Text == "鍏呯數鍛戒护"); - plcConn.SetDBValue(modCd.PosType, modCd.PlcPos.ToString(), "2"); + break;//娌℃湁鏌ヨ鍒版�讳换鍔� + } + if (carTask != null && carTask.Status != TaskStatusEnum.Complete) + { + carTask.Status = TaskStatusEnum.Complete; + carTask.UpdateTime = DateTime.Now; + _db.Updateable(carTask).ExecuteCommand(); + //娣诲姞浠诲姟鏄庣粏 + var taskMonitor = new WcsTaskMonitor() + { + TaskNo = carTask.TaskNo, + PlcName = modDevice.Text, + InteractiveMsg = $"绌挎杞﹀弽棣堜换鍔″畬鎴�" + }; + _db.Insertable(taskMonitor).ExecuteCommand(); + //涓嬪彂浠诲姟鏃ュ織 + + HubUtil.PublicTaskMonitor(taskMonitor.Adapt<WcsTaskMonitorOutput>()); } - - //鍙嶉WMS绯荤粺 浠诲姟瀹屾垚 - //HttpService httpService = new HttpService(); - //var requestMode = new TaskRequestWMS() - //{ - // TaskNo = modFinshTask.TaskNo, - // PalletNo = modFinshTask.PalletNo, - // TaskType = ((int)modFinshTask.TaskType).ToString(), - // TaskStatus = ((int)TaskStatusEnum.Complete).ToString() - //}; - //var modResponseTask = httpService.RequestTask(requestMode).Result; - //modFinshTask.IsSuccess = TaskSuccessEnum.Success; - //_db.Updateable(modFinshTask).ExecuteCommand(); - HubUtil.PublicTask(modFinshTask.Adapt<WcsTaskOutput>()); + //鑾峰彇璺緞2鐨勪换鍔� 涓嬪彂 + carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First(); + //鎬讳换鍔′笅娌℃湁鍏朵粬鏈墽琛屽皬杞︾殑浠诲姟 鍙樻洿鎬讳换鍔′俊鎭� + if (carTaskNext == null && modFinshTask != null && modFinshTask.Status != TaskStatusEnum.Complete) + { + modFinshTask.Status = TaskStatusEnum.Complete; + modFinshTask.FinishDate = DateTime.Now; + _db.Updateable(modFinshTask).ExecuteCommand(); + //鍒ゆ柇浠诲姟鏄惁鍏呯數浠诲姟,涓嬪彂寮�濮嬪厖鐢靛懡浠� + if (modFinshTask.Levels == 888) + { + //鍐欏叆寮�濮嬪厖鐢� + var modCd = modDevice.listStation.FirstOrDefault(s => s.Text == "鍏呯數鍛戒护"); + plcConn.SetDBValue(modCd.PosType, modCd.PlcPos.ToString(), "2"); + } + + //鍙嶉WMS绯荤粺 浠诲姟瀹屾垚 + //HttpService httpService = new HttpService(); + //var requestMode = new TaskRequestWMS() + //{ + // TaskNo = modFinshTask.TaskNo, + // PalletNo = modFinshTask.PalletNo, + // TaskType = ((int)modFinshTask.TaskType).ToString(), + // TaskStatus = ((int)TaskStatusEnum.Complete).ToString() + //}; + //var modResponseTask = httpService.RequestTask(requestMode).Result; + //modFinshTask.IsSuccess = TaskSuccessEnum.Success; + //_db.Updateable(modFinshTask).ExecuteCommand(); + HubUtil.PublicTask(modFinshTask.Adapt<WcsTaskOutput>()); + + } } - } WcsTask modTask; @@ -260,12 +258,12 @@ var modStationZ = modDevice.listStation.FirstOrDefault(s => s.Text == "鍥涘悜杞︿綅缃�(Z)"); var (resultz, valuez) = plcConn.GetDBValue(modStationZ.PosType, modStationZ.PlcPos); var carXYZ = valuex.ToString().PadLeft(2, '0') + valuey.ToString().PadLeft(2, '0') + valuez.ToString().PadLeft(2, '0'); - if (modTask == null || carTaskNext == null) + if (modTask == null) { //璇诲彇灏忚溅鐢甸噺 var modPosCarDl = modDevice.listStation.FirstOrDefault(s => s.Text == "鐢垫睜鐢甸噺"); var (resultDl, valueDl) = plcConn.GetDBValue(modPosCarDl.PosType, modPosCarDl.PlcPos); - if (resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl) + if (resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl) { var endLocateCar = ""; if (valuez == 1) @@ -297,7 +295,7 @@ _db.Insertable(modCarTask).ExecuteCommand(); HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>()); } - else if(resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl2) + else if(resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl2) { //鍒ゆ柇灏忚溅鏄惁鏈夌┖闂叉椂闂磋褰� 娌℃湁锛氭坊鍔� 鏈夛細鍒ゆ柇褰撳墠鏃堕棿涓庤褰曟椂闂存槸鍚︽弧瓒�5鍒嗛挓 婊¤冻锛氭坊鍔犺灏忚溅鍘诲厖鐢典换鍔� var carTime = _db.Queryable<WcsCarTime>().First(m => m.IsDelete == false && m.CarIp == modDevice.PlcIdIP); @@ -364,7 +362,10 @@ return; } - + if (carTaskNext == null) + { + return; + } if (carTaskNext.Status == TaskStatusEnum.Doing) { Thread.Sleep(3000); diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs index 08712ca..ab3e7b4 100644 --- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs +++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs @@ -417,11 +417,11 @@ { var modCarDl = plcPosition.FirstOrDefault(s => s.Text == "鐢垫睜鐢甸噺"); var (resultDl, valueDl) = modbusUtil.GetDBValue(modCarDl.PosType, modCarDl.PlcPos); - if (resultDl.IsSucceed && valueDl> FourWayCarDLEnum.Dl) + if (resultDl.IsSucceed && valueDl> (int)FourWayCarDLEnum.Dl3) { //鍐欏叆缁撴潫鍏呯數鍛戒护 var modCdEnd = plcPosition.FirstOrDefault(s => s.Text == "鍏呯數鍛戒护"); - modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "2") ; + var resultDl22 = modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "3") ; carErr = true; break; //鏆傜紦鍒嗛厤锛岄槻姝㈠悓灞傚皬杞﹀叧鏈烘垨澶辫仈瀵艰嚧闃绘尅璺緞 } @@ -505,13 +505,15 @@ } } var typeStr = "1"; + var typeStr2 = 1; if (waitTask.Levels == 888 ) { typeStr = "0";//灏忚溅浠诲姟鏄厖鐢典换鍔� + typeStr2 = 0; } //鑾峰彇灏忚溅鍘绘斁璐у偍浣嶄换鍔¤矾寰� var data2 = FourWayCarUtil.GetCarPath(waitTask.StartLocate, waitTask.EndLocate, typeStr); - var datas2 = FourWayCarUtil.GetCarPathUp(data2, 1); + var datas2 = FourWayCarUtil.GetCarPathUp(data2, typeStr2); if (datas2 == null) { -- Gitblit v1.8.0