From 027b0f062d8e6e2dba875baaa61c58d4f5f3f278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com> Date: Tue, 6 Aug 2024 15:50:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E5=8D=87=E6=9C=BA=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Khd.Core.Wcs/Wcs/FirstFloor.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs index fda2bd3..9fc5ce5 100644 --- a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs +++ b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs @@ -4,6 +4,7 @@ using Khd.Core.Library; using Khd.Core.Library.Mapper; using Khd.Core.Plc.S7; using Khd.Core.Wcs.Global; +using Masuit.Tools; using Masuit.Tools.Logging; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -506,6 +507,7 @@ namespace Khd.Core.Wcs.Wcs var currentfloor06Value = StaticData.PlcDic[0].Read(this.currentfloor06.plcpointAddress); //提升机当前楼层 读 var targetfloor06Value = StaticData.PlcDic[0].Read(this.targetfloor06.plcpointAddress); //提升机目的楼层 写 var reserialno06 = StaticData.PlcDic[0].Read(this.reserialno06.plcpointAddress); //反馈流水号 + _logger.Info($"MES开启?{mesCloseValue},提升机流水号?{serialno06Value},提升机状态?{equipstate06Value},提升机货物到位状态?{hoisterTrayIn06Value},提升机当前楼层?{currentfloor06Value},提升机目的楼层?{targetfloor06Value},反馈流水号?{reserialno06}"); if (mesCloseValue != null && Convert.ToInt32(mesCloseValue) == 0) { //正常读到plc值 @@ -518,6 +520,7 @@ namespace Khd.Core.Wcs.Wcs var wcsTasks = dbContext.WcsTask.Where(t => t.nextPointId == T01).OrderBy(t => t.createTime).ToList(); foreach (var wcsTask in wcsTasks) { + _logger.Info($"当前任务?{wcsTask.ToJsonString()}"); bool hasTask = dbContext.WcsTask.Where(t => t.endPointId == wcsTask.endPointId && t.objid != wcsTask.objid).Any(); if (!hasTask) { @@ -537,7 +540,9 @@ namespace Khd.Core.Wcs.Wcs } BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo); - if (wcsTask.containerNo == StaticData.PlcDic[0].ReadRFID(floorPoint.plcpointAddress) || (string.IsNullOrEmpty(wcsTask.containerNo) && wcsTask.qty > 1)) + string? rfid = StaticData.PlcDic[0].ReadRFID(floorPoint.plcpointAddress); + _logger.Info($"{wcsTask.fromFloorNo}楼RFID?{rfid},任务RFID{wcsTask.containerNo}"); + if (wcsTask.containerNo == rfid || (string.IsNullOrEmpty(wcsTask.containerNo) && wcsTask.qty > 1)) { if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)//当前楼层和起始楼层一致 { @@ -579,7 +584,9 @@ namespace Khd.Core.Wcs.Wcs if (wcsTask.taskStatus == 1 && Convert.ToInt32(reserialno06) == wcsTask.serialNo) { BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo); - if (wcsTask.containerNo == StaticData.PlcDic[0].ReadRFID(floorPoint.plcpointAddress) || (string.IsNullOrEmpty(wcsTask.containerNo) && wcsTask.qty > 1)) + string? rfid = StaticData.PlcDic[0].ReadRFID(floorPoint.plcpointAddress); + _logger.Info($"{wcsTask.fromFloorNo}楼RFID?{rfid},任务RFID{wcsTask.containerNo}"); + if (wcsTask.containerNo == rfid || (string.IsNullOrEmpty(wcsTask.containerNo) && wcsTask.qty > 1)) { if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)//提升机当前楼层为初始地楼层 { @@ -620,9 +627,12 @@ namespace Khd.Core.Wcs.Wcs { if (wcsTask.floorNo == 1)//目的楼层是1 { - if (ReadEmptyLocation())//托盘库是否有任务,没有任务返回true + bool emptyStatus = ReadEmptyLocation(); + _logger.Info($"一楼托盘库是否有任务?{emptyStatus}"); + if (emptyStatus)//托盘库是否有任务,没有任务返回true { var linesignal = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == $"linesignal0{wcsTask.floorNo}").plcpointAddress); + _logger.Info($"一楼接驳位外侧是否有东西?{linesignal}"); if (linesignal != null && Convert.ToInt32(linesignal) == 0)//接驳位外侧没有东西 { BasePlcpoint clearPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == $"clear0{wcsTask.floorNo}"); @@ -665,6 +675,7 @@ namespace Khd.Core.Wcs.Wcs else { var linesignal = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == $"linesignal0{wcsTask.floorNo}").plcpointAddress); + _logger.Info($"{wcsTask.floorNo}楼接驳位外侧是否有东西?{linesignal}"); if (linesignal != null && Convert.ToInt32(linesignal) == 0) { wcsTask.taskStatus = 4; @@ -691,6 +702,7 @@ namespace Khd.Core.Wcs.Wcs { BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.floorNo && t.plcpointNo.Contains("wcsrun")); var wcsRun = StaticData.PlcDic[0].Read(basePlcpoint.plcpointAddress); + _logger.Info($"{wcsTask.floorNo}楼接驳位任务状态{wcsRun}"); if (wcsRun != null && Convert.ToInt32(wcsRun) == 0)//判断当前接驳位的任务状态,wcsrrun如果是1代表入库,2是出库,0是空闲 { BaseEquip floorEquip = StaticData.BaseEquip.First(t => t.objid == wcsTask.floorNo);