From dbb1b2395413ace7d3b5ee9839eddabd26498d43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com> Date: Fri, 26 Jul 2024 09:17:36 +0800 Subject: [PATCH] 20240726 --- src/Khd.Core.Wcs/MainCentralControl.cs | 6 +- src/Khd.Core.Wcs/Wcs/FirstFloor.cs | 2 +- src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs | 2 +- src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs | 6 +- src/Khd.Core.Wcs/Wcs/SystemTimer.cs | 12 ++- src/Khd.Core.Wpf/Form/FormBoardT.xaml | 119 +++++++++++++++++++---- src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs | 81 +++++++++++---- 7 files changed, 183 insertions(+), 45 deletions(-) diff --git a/src/Khd.Core.Wcs/MainCentralControl.cs b/src/Khd.Core.Wcs/MainCentralControl.cs index ab6ea1d..243eeef 100644 --- a/src/Khd.Core.Wcs/MainCentralControl.cs +++ b/src/Khd.Core.Wcs/MainCentralControl.cs @@ -110,8 +110,10 @@ namespace Khd.Core.Wcs FiveFloorAGV fifthFloorAGV = new(_host, FifthFloorAgvEquip.floorNo.Value); fifthFloorAGV.StartPoint(); - - + //背负式Agv + var FifthFloorBearAgvEquip = StaticData.BaseEquip.Where(t => t.objid == 28).First(); + FiveFloorBearAgv fiveFloorBearAgv = new(_host, FifthFloorBearAgvEquip.floorNo.Value); + fiveFloorBearAgv.StartPoint(); } catch (Exception ex) { diff --git a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs index b381941..d8a6e75 100644 --- a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs +++ b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs @@ -292,7 +292,7 @@ namespace Khd.Core.Wcs.Wcs { //判断task表里没有该rfid的未完成的入库 //信息,未下发去向 - var task = dbContext.WcsTask.Where(t => t.IsDelete == 0).Where(t => t.nextPointId == 1).OrderBy(t => t.createTime).FirstOrDefault(); + var task = dbContext.WcsTask.Where(t => t.IsDelete == 0||t.IsDelete==null).Where(t => t.nextPointId == 1).OrderBy(t => t.createTime).FirstOrDefault(); if (task == null) { if (BigContainerCodes.Contains(RFID001Value)) diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs index e41fc95..977d0b9 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs @@ -53,7 +53,7 @@ namespace Khd.Core.Wcs.Wcs { dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); var taskList = dbContext.WcsTask - .Where(t => t.IsDelete == 0 || t.IsDelete == null) + .Where(t => t.IsDelete == 0 || t.IsDelete == null) .Where(t => t.nextPointId == agvID) .OrderBy(t => t.createTime).ToList(); diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs index 41689f0..1a5662b 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs @@ -174,6 +174,7 @@ namespace Khd.Core.Wcs.Wcs equipmentNo = baseEquip.equipNo, createBy = FloorNo + "楼CTU", createTime = DateTime.Now, + ud3 = "1"//标记任务是出库任务转为入库任务 }; wmsBaseLocation.locationStatus = "2"; wmsBaseLocation.updateTime = DateTime.Now; @@ -439,8 +440,9 @@ namespace Khd.Core.Wcs.Wcs dbContext.Update(item); lock (SystemData.outStockLock) { - bool hasTask = dbContext.WcsTask.Where(t=>t.nextPointId==11&&t.taskType==30).Any(); - if (!hasTask)//如果CTU当前任务数量很多,取消预执行任务 + bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 11 && t.taskType == 30).Any(); + int taskCount = dbContext.WcsTask.Where(t => t.nextPointId == 11 && t.taskType == 29).Count(); + if ((!hasTask && item.ud3 == "1") || (taskCount >= 6))//如果CTU当前任务数量很多,取消预执行任务,或者出库的任务都生成了入库任务 { ExecuteInTask(baseEquip); } diff --git a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs index 953fd77..c45b246 100644 --- a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs +++ b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs @@ -8,6 +8,7 @@ using Masuit.Tools; using Masuit.Tools.Logging; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.IdentityModel.Tokens; using Newtonsoft.Json; namespace Khd.Core.Wcs.Wcs @@ -48,13 +49,14 @@ namespace Khd.Core.Wcs.Wcs }; PlcHeartBeat31Thread.Start();//脉冲 - var PlcHearBeat220Thread = new Thread(PlcHearBeat220Logic) { + var PlcHearBeat220Thread = new Thread(PlcHearBeat220Logic) + { Name = "PlcHeartBeat220Thread", IsBackground = true }; PlcHearBeat220Thread.Start(); - var deleteTaskThread=new Thread(DeleteTaskLogic) + var deleteTaskThread = new Thread(DeleteTaskLogic) { Name = "DeleteTaskThread", IsBackground = true @@ -75,9 +77,9 @@ namespace Khd.Core.Wcs.Wcs List wcsTasks = dbContext.WcsTask.Where(t => t.IsDelete == 1).ToList(); foreach (var item in wcsTasks) { - if (!string.IsNullOrEmpty(item.taskCode)) + BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == item.nextPointId); + if (!string.IsNullOrEmpty(item.taskCode) && !string.IsNullOrEmpty(agvEquip.serverIp)) { - BaseEquip agvEquip = StaticData.BaseEquip.First(t=>t.objid==item.nextPointId); dbContext.WcsTask.Remove(item); var cancelTask = new { @@ -152,7 +154,7 @@ namespace Khd.Core.Wcs.Wcs heartBeatCount = !heartBeatCount; StaticData.PlcDic[0].WriteToPoint(HeartBeat30.plcpointAddress, heartBeatCount, HeartBeat30.plcpointLength?.ToString()); } - catch + catch { try { diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml b/src/Khd.Core.Wpf/Form/FormBoardT.xaml index 5ebf26d..12ff207 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml @@ -1967,28 +1967,113 @@ - + - - - - - - - - + + + +