add-2#补空箱忙碌状态与线体忙碌分离

master
liuwf 7 months ago
parent 0e6f64f194
commit c6a9d00846

@ -499,6 +499,7 @@ namespace SlnMesnac.WCS.WCS
return; return;
} }
int busyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); int busyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"));
if (busyFlag == 1) if (busyFlag == 1)
{ {
return; return;
@ -514,12 +515,13 @@ namespace SlnMesnac.WCS.WCS
{ {
Thread.Sleep(300); Thread.Sleep(300);
} }
int work2LineBusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态"));
busyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); busyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"));
if (busyFlag == 0) if (busyFlag == 0 && work2LineBusyFlag == 0)
{ {
//抢占线体状态agv进入接驳位 //抢占线体状态agv进入接驳位
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1); workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态"), 1);
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态"), 1);
bool result = ContinueTaskHandle(task).Result; bool result = ContinueTaskHandle(task).Result;
if (!result) if (!result)
{ {

@ -655,17 +655,21 @@ namespace SlnMesnac.WCS.WCS
return; return;
} }
int work2EmptyAmount = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存链条线库存数")); int work2EmptyAmount = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存链条线库存数"));
int work2BusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); int work2LineBusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态"));
if (work2EmptyAmount > 0 && work2BusyFlag == 0) if (work2EmptyAmount > 0 && work2LineBusyFlag == 0)
{ {
//防止抢占其他任务节奏 //防止抢占其他任务节奏
Thread.Sleep(1000); Thread.Sleep(1000);
work2BusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#线体忙碌状态")); work2LineBusyFlag = workShop2Plc.readInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态"));
work2EmptyAmount = 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<WcsTask>().Any(x => x.TaskType == StaticTaskType.DeliverTonerTask && x.TaskStatus < 5);
if (hasTask)
{ //如果有agv等着接色粉暂时不生成补充空托盘任务
return;
}
workShop2Plc.writeInt16ByAddress(StaticData.GetPlcAddress("2#缓存空箱线体状态"), 1);
WcsTask task = new WcsTask(); WcsTask task = new WcsTask();
task.TaskType = StaticTaskType.SupplySmallPalletTask; task.TaskType = StaticTaskType.SupplySmallPalletTask;
task.CurrPointNo = "2DeliverMetrologyRoomPoint"; task.CurrPointNo = "2DeliverMetrologyRoomPoint";

Loading…
Cancel
Save