From c6a9d008460e933e7a827f936509c3739fbe8253 Mon Sep 17 00:00:00 2001 From: liuwf Date: Tue, 27 May 2025 13:45:19 +0800 Subject: [PATCH] =?UTF-8?q?add-2#=E8=A1=A5=E7=A9=BA=E7=AE=B1=E5=BF=99?= =?UTF-8?q?=E7=A2=8C=E7=8A=B6=E6=80=81=E4=B8=8E=E7=BA=BF=E4=BD=93=E5=BF=99?= =?UTF-8?q?=E7=A2=8C=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SlnMesnac.WCS/WCS/BearAgv.cs | 6 ++++-- SlnMesnac.WCS/WCS/CreateTaskByRecord.cs | 16 ++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/SlnMesnac.WCS/WCS/BearAgv.cs b/SlnMesnac.WCS/WCS/BearAgv.cs index fa4f418..cc834ca 100644 --- a/SlnMesnac.WCS/WCS/BearAgv.cs +++ b/SlnMesnac.WCS/WCS/BearAgv.cs @@ -499,6 +499,7 @@ namespace SlnMesnac.WCS.WCS return; } int busyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); + if (busyFlag == 1) { return; @@ -514,12 +515,13 @@ namespace SlnMesnac.WCS.WCS { Thread.Sleep(300); } - + int work2LineBusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态")); busyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); - if (busyFlag == 0) + if (busyFlag == 0 && work2LineBusyFlag == 0) { //抢占线体状态,agv进入接驳位 workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); + workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态"), 1); bool result = ContinueTaskHandle(task).Result; if (!result) { diff --git a/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs b/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs index 78d874e..87d5a5b 100644 --- a/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs +++ b/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs @@ -655,17 +655,21 @@ namespace SlnMesnac.WCS.WCS return; } int work2EmptyAmount = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存链条线库存数")); - int work2BusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); - if (work2EmptyAmount > 0 && work2BusyFlag == 0) + int work2LineBusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态")); + if (work2EmptyAmount > 0 && work2LineBusyFlag == 0) { //防止抢占其他任务节奏 Thread.Sleep(1000); - work2BusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); + work2LineBusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态")); work2EmptyAmount = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存链条线库存数")); - if (work2EmptyAmount > 0 && work2BusyFlag == 0) + if (work2EmptyAmount > 0 && work2LineBusyFlag == 0) { - workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); - + bool hasTonerTask = sqlSugarClient.Queryable().Any(x => x.TaskType == StaticTaskType.DeliverTonerTask && x.TaskStatus < 5); + if (hasTask) + { //如果有agv等着接色粉,暂时不生成补充空托盘任务 + return; + } + workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态"), 1); WcsTask task = new WcsTask(); task.TaskType = StaticTaskType.SupplySmallPalletTask; task.CurrPointNo = "2DeliverMetrologyRoomPoint";