|
|
|
|
@ -494,6 +494,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
{
|
|
|
|
|
using var scope = _host.Services.CreateScope();
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
using var transaction = dbContext.Database.BeginTransaction();
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
@ -545,15 +546,16 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
wcsTask.updateTime = DateTime.Now;
|
|
|
|
|
wcsTask.remark = "提升机任务执行中";
|
|
|
|
|
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.fromFloorNo && t.plcpointNo.Contains("wcsrun"));
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发" + wcsTask.fromFloorNo + "楼入库指令");
|
|
|
|
|
_logger.Info("提升机下发" + wcsTask.fromFloorNo + "楼入库指令");
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" });
|
|
|
|
|
lineEquip.equipStatus = 1;
|
|
|
|
|
dbContext.Update(lineEquip);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发" + wcsTask.fromFloorNo + "楼入库指令");
|
|
|
|
|
_logger.Info("提升机下发" + wcsTask.fromFloorNo + "楼入库指令");
|
|
|
|
|
transaction.Commit();
|
|
|
|
|
}
|
|
|
|
|
else//当前楼层和起始楼层不一致
|
|
|
|
|
{
|
|
|
|
|
@ -561,15 +563,16 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
wcsTask.updateBy = "提升机线程";
|
|
|
|
|
wcsTask.updateTime = DateTime.Now;
|
|
|
|
|
wcsTask.remark = "提升机任务执行中";
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.fromFloorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发去往" + wcsTask.fromFloorNo + "楼指令");
|
|
|
|
|
_logger.Info("提升机下发去往" + wcsTask.fromFloorNo + "楼指令");
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 1, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" });
|
|
|
|
|
lineEquip.equipStatus = 1;
|
|
|
|
|
dbContext.Update(lineEquip);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.fromFloorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发去往" + wcsTask.fromFloorNo + "楼指令");
|
|
|
|
|
_logger.Info("提升机下发去往" + wcsTask.fromFloorNo + "楼指令");
|
|
|
|
|
transaction.Commit();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -585,13 +588,14 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
wcsTask.updateTime = DateTime.Now;
|
|
|
|
|
wcsTask.remark = "提升机任务执行中";
|
|
|
|
|
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.fromFloorNo && t.plcpointNo.Contains("wcsrun"));
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发" + wcsTask.fromFloorNo + "楼入库指令");
|
|
|
|
|
_logger.Info("提升机下发" + wcsTask.fromFloorNo + "楼入库指令");
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
transaction.Commit();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -603,12 +607,13 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
wcsTask.updateBy = "提升机线程";
|
|
|
|
|
wcsTask.updateTime = DateTime.Now;
|
|
|
|
|
wcsTask.remark = "提升机任务执行完成";
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.floorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发去往" + wcsTask.floorNo + "楼目的地指令");
|
|
|
|
|
_logger.Info("提升机下发去往" + wcsTask.floorNo + "楼目的地指令");
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.floorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发去往" + wcsTask.floorNo + "楼目的地指令");
|
|
|
|
|
_logger.Info("提升机下发去往" + wcsTask.floorNo + "楼目的地指令");
|
|
|
|
|
transaction.Commit();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (wcsTask.taskStatus == 3 && Convert.ToInt32(currentfloor06Value) == wcsTask.floorNo && Convert.ToInt32(reserialno06) == wcsTask.serialNo)//任务状态为3,且当前楼层为任务的目的楼层
|
|
|
|
|
@ -632,13 +637,14 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
wcsTask.updateBy = "提升机线程";
|
|
|
|
|
wcsTask.updateTime = DateTime.Now;
|
|
|
|
|
wcsTask.remark = "提升机任务执行完成";
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.floorNo && t.plcpointNo.Contains("wcsrun"));
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "2", basePlcpoint.plcpointLength.ToString());//去向为2,表示提升机已到达目的地,让货出去
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发" + wcsTask.floorNo + "楼出库指令");
|
|
|
|
|
_logger.Info("提升机下发" + wcsTask.floorNo + "楼出库指令");
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
transaction.Commit();
|
|
|
|
|
}
|
|
|
|
|
else//接驳位外侧有东西
|
|
|
|
|
{
|
|
|
|
|
@ -665,13 +671,14 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
wcsTask.updateBy = "提升机线程";
|
|
|
|
|
wcsTask.updateTime = DateTime.Now;
|
|
|
|
|
wcsTask.remark = "提升机任务执行完成";
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.floorNo && t.plcpointNo.Contains("wcsrun"));
|
|
|
|
|
StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "2", basePlcpoint.plcpointLength.ToString());//去向为2,表示提升机已到达目的地,让货出去
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":提升机下发" + wcsTask.floorNo + "楼出库指令");
|
|
|
|
|
_logger.Info("提升机下发" + wcsTask.floorNo + "楼出库指令");
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
transaction.Commit();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
@ -700,6 +707,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 5, nextPointId = floorEquip.objid, nextPointNo = floorEquip.equipNo, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
transaction.Commit();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
@ -723,6 +731,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
transaction.Rollback();
|
|
|
|
|
if (ex is PlcException)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|