liuwf 10 months ago
parent 9bb81d2263
commit 8db327c867

@ -20,19 +20,19 @@ namespace Khd.Core.Wcs.Wcs
{ {
private readonly LoggerUtils _logger = new LoggerUtils(); private readonly LoggerUtils _logger = new LoggerUtils();
private readonly IHost _host; private readonly IHost _host;
int FloorNo { get; set; } private int FloorNo { get; set; }
public SecondFloorLine(IHost host, int floor) public SecondFloorLine(IHost host, int floor)
{ {
this._host = host; this._host = host;
FloorNo = floor; FloorNo = floor;
} }
/// <summary> /// <summary>
/// 启动上件扫描监听 /// 启动上件扫描监听
/// </summary> /// </summary>
public void StartPoint() public void StartPoint()
{ {
Thread FlowPointThread = new Thread(MonitorInLocatorPoint); Thread FlowPointThread = new Thread(MonitorInLocatorPoint);
FlowPointThread.IsBackground = true; FlowPointThread.IsBackground = true;
FlowPointThread.Name = "SecondFloorLine"; FlowPointThread.Name = "SecondFloorLine";
@ -61,7 +61,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
dbContext.ChangeTracker.Clear(); dbContext.ChangeTracker.Clear();
var agvPutValue = StaticData.PlcDic[2].Read(agvPutPoint.plcpointAddress);//托盘库叫料信号 var agvPutValue = StaticData.PlcDic[2].Read(agvPutPoint.plcpointAddress);//托盘库叫料信号
var ConnectStatus2F = StaticData.PlcDic[2].Read(ConnectStatus2FPoint.plcpointAddress);//2F托盘库产线数据通讯情况 var ConnectStatus2F = StaticData.PlcDic[2].Read(ConnectStatus2FPoint.plcpointAddress);//2F托盘库产线数据通讯情况
var PalletInIsHas2F = StaticData.PlcDic[2].Read(PalletInIsHas2FPoint.plcpointAddress);//2F托盘库入口上料光电 var PalletInIsHas2F = StaticData.PlcDic[2].Read(PalletInIsHas2FPoint.plcpointAddress);//2F托盘库入口上料光电
@ -73,11 +73,18 @@ namespace Khd.Core.Wcs.Wcs
// 托盘库叫料信号,并且通讯正常,并且小包入口无料才可叫料 // 托盘库叫料信号,并且通讯正常,并且小包入口无料才可叫料
if (Convert.ToInt32(agvPutValue) == 1 && Convert.ToInt32(ConnectStatus2F) == 1 && Convert.ToInt32(PalletInIsHas2F) == 0)//小包入口叫料 if (Convert.ToInt32(agvPutValue) == 1 && Convert.ToInt32(ConnectStatus2F) == 1 && Convert.ToInt32(PalletInIsHas2F) == 0)//小包入口叫料
{ {
bool canCreate = dbContext.WcsTask.Where(t => t.nextPointId == 8 || t.endPointId == endEquip.objid).Any();//有没有生成任务 bool canCreate = dbContext.WcsTask.Where(t => t.nextPointId == 8 || t.endPointId == endEquip.objid).Any();//有没有生成任务
//36 是小包入口的设备信息8是二楼Agv设备 //36 是小包入口的设备信息8是二楼Agv设备
if (!canCreate)//没有任务 if (!canCreate)//没有任务
{ {
//间隔20分钟以下禁止再次生成空托盘配送到小包入口任务
bool hasHistoryTask = dbContext.WcsTaskLog.Where(t => t.endPointNo == endEquip.equipNo && t.createTime >= DateTime.Now.AddMinutes(-20)).Any();
if (hasHistoryTask)
{
//20分钟内已经生成过任务
continue;
}
BaseEquip? baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 20 && t.emptyCount >= 1);//二楼周转区是否存在一个空托盘以上的 BaseEquip? baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 20 && t.emptyCount >= 1);//二楼周转区是否存在一个空托盘以上的
if (baseEquip != null)//二楼周转区有可以去小包入口的库位 if (baseEquip != null)//二楼周转区有可以去小包入口的库位
{ {
@ -335,7 +342,6 @@ namespace Khd.Core.Wcs.Wcs
if (wmsBaseLocation != null)//如果找到库位,生成入库任务 if (wmsBaseLocation != null)//如果找到库位,生成入库任务
{ {
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 37); BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 37);
var wcsTask = new WcsTask() var wcsTask = new WcsTask()
{ {
@ -375,12 +381,10 @@ namespace Khd.Core.Wcs.Wcs
// TODO: 没有找到库位,添加报警处理 // TODO: 没有找到库位,添加报警处理
Thread.Sleep(1000 * 5); Thread.Sleep(1000 * 5);
} }
} }
} }
} }
} }
} }
} }
} }
@ -388,7 +392,6 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (ex is PlcException) if (ex is PlcException)
{ {
} }
else else
{ {
@ -402,4 +405,4 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
} }
Loading…
Cancel
Save