add-优化速度:根据2#提升机所在楼层,优先下发对应楼层的补空箱或者送满料任务

master
liuwf 7 months ago
parent 5efe8b388d
commit d5be7cfb83

@ -507,14 +507,20 @@ namespace SlnMesnac.WCS.WCS
if (busyFlag == 0)
{
int amount = sqlSugarClient.Queryable<WcsTask>().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)

@ -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);
}

Loading…
Cancel
Save