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";