diff --git a/SlnMesnac.WCS/WCS/BearAgv.cs b/SlnMesnac.WCS/WCS/BearAgv.cs index a917f9e..d545c7f 100644 --- a/SlnMesnac.WCS/WCS/BearAgv.cs +++ b/SlnMesnac.WCS/WCS/BearAgv.cs @@ -507,14 +507,20 @@ namespace SlnMesnac.WCS.WCS if (busyFlag == 0) { int amount = sqlSugarClient.Queryable().Where(x => x.TaskType == StaticTaskType.TransferMaterialMetrologyRoomBoxTask).Count(); - if (amount < 2) - { - Thread.Sleep(3500); - } - else //优先级最高,释放掉一个agv + + int hoistFloor = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#提升机当前层")); + if (hoistFloor == 2) //如果提升机正好在2楼 { Thread.Sleep(300); } + else if (amount < 2) //如果只有一个agv送料任务 + { + Thread.Sleep(2500); + } + else if (amount == 2) + {//如果有两个以上agv送料任务,释放掉一个agv + Thread.Sleep(500); + } int work2LineBusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态")); busyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); if (busyFlag == 0 && work2LineBusyFlag == 0) diff --git a/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs b/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs index 87d5a5b..c8753ed 100644 --- a/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs +++ b/SlnMesnac.WCS/WCS/CreateTaskByRecord.cs @@ -167,13 +167,14 @@ namespace SlnMesnac.WCS.WCS } if (!string.IsNullOrEmpty(rfid)) { - if (Amount < 3) + int hoistFloor = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#提升机当前层")); + if (Amount < 3 && hoistFloor == 1) //如果提升机正好在1楼 { - Thread.Sleep(2000); + Thread.Sleep(300); } else if (anyTonerPallet) //有色粉空转 { - Thread.Sleep(4500); + Thread.Sleep(3500); } busy2Flag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); @@ -185,12 +186,12 @@ namespace SlnMesnac.WCS.WCS { //注意:plc上旋转移栽必须锁住线体状态才可以,2#接驳位如果有满料,那么通知plc信号,plc在连廊不再把箱体放到旋转移栽上 //调度系统结合上面缓存链条线库存,如果上面低于3,那么空箱可以上来缓存线 + workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); bool createResult = CreateDeliverTonerTask(rfid); if (createResult) { //3色粉上提升机移栽等待 _logger.Info($"2#移栽===={rfid}携带色粉去往色粉库位"); - workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 3); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); } @@ -198,7 +199,6 @@ namespace SlnMesnac.WCS.WCS { //色粉库位无空闲位置,空转一圈 //2空箱转运 _logger.Info($"2#移栽===={rfid}携带色粉,色粉库位无空闲位置,空转一圈"); - workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#移栽平台任务"), 2); workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#料箱运回RFID读取"), false); }