From 702649c6705ec258a607d2886d907139316cd9be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com>
Date: Tue, 16 Jul 2024 09:10:47 +0800
Subject: [PATCH] 20240716
---
.../Controllers/RecieveRcsController.cs | 6 +
.../Interface/IWcsTaskApplication.cs | 1 +
.../WcsTaskApplication.cs | 47 ++-
src/Khd.Core.Wcs/MainCentralControl.cs | 4 +-
src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 338 +++++++++---------
src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs | 2 +-
src/Khd.Core.Wcs/Wcs/SystemTimer.cs | 35 +-
src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs | 4 +-
8 files changed, 253 insertions(+), 184 deletions(-)
diff --git a/src/Khd.Core.Api/Controllers/RecieveRcsController.cs b/src/Khd.Core.Api/Controllers/RecieveRcsController.cs
index c84fffb..55bebd3 100644
--- a/src/Khd.Core.Api/Controllers/RecieveRcsController.cs
+++ b/src/Khd.Core.Api/Controllers/RecieveRcsController.cs
@@ -93,5 +93,11 @@ namespace Khd.Core.Api.Controllers
LogManager.Info($"CallMaterial 接口收到消息: {callMaterial}");
return _application.CallMaterial(callMaterial);
}
+
+ [HttpPost("AgvTaskComplete")]
+ public ReponseMessage AGVTaskComplete()
+ {
+ return _application.AGVTaskComplete();
+ }
}
}
\ No newline at end of file
diff --git a/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs b/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs
index 0420acd..1071720 100644
--- a/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs
+++ b/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs
@@ -31,5 +31,6 @@ namespace Khd.Core.Application.Interface
AgvCompeletedResponse TaskReturn(TaskReturn taskReturn);
ReponseagvCallbackDto AgvCallback2(agvCallbackDto agvCallbackDto);
ReponseMessage CallMaterial(CallMaterial callMaterial);
+ ReponseMessage AGVTaskComplete();
}
}
\ No newline at end of file
diff --git a/src/Khd.Core.Application/WcsTaskApplication.cs b/src/Khd.Core.Application/WcsTaskApplication.cs
index c15c180..61dacce 100644
--- a/src/Khd.Core.Application/WcsTaskApplication.cs
+++ b/src/Khd.Core.Application/WcsTaskApplication.cs
@@ -28,6 +28,7 @@ namespace Khd.Core.Application
.FirstOrDefault();
return entity;
}
+
public WcsTask Add(WcsTask model)
{
var entity = _dbContext.Add(model);
@@ -35,11 +36,13 @@ namespace Khd.Core.Application
return entity.Entity;
}
+
public WcsTask Update(WcsTask model)
{
var list = _dbContext.WcsTask.Where(t => t.objid == model.objid).Update(a => model);
return model;
}
+
///
/// 接收agv接收任务通知接口
///
@@ -153,6 +156,7 @@ namespace Khd.Core.Application
return reponseagvCallbackDto;
}
+
///
/// 入库完成
///
@@ -161,6 +165,7 @@ namespace Khd.Core.Application
{
return "";
}
+
///
/// 出库完成
///
@@ -184,7 +189,10 @@ namespace Khd.Core.Application
BaseEquip baseEquip = _dbContext.BaseEquip.FirstOrDefault(t => t.equipNo == agvCompeletedRequest.endStationCode);
if (baseEquip != null)
{
- var wcsCmd = _dbContext.WcsCmd.Where(t => t.nextPointId == baseEquip.objid).Where(t => t.cmdStatus == 5).FirstOrDefault();
+ var wcsCmd = _dbContext.WcsCmd
+ .Where(t => t.cmdType == 32 || t.cmdType == 48)
+ .Where(t => t.nextPointId == baseEquip.objid || t.currPointId == baseEquip.objid)
+ .FirstOrDefault();
if (wcsCmd != null)
{
WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.objid == wcsCmd.taskId);
@@ -192,7 +200,6 @@ namespace Khd.Core.Application
{
if (wcsTask.taskType != 48)
{
-
wcsCmd.cmdStatus = 7;
wcsTask.taskStatus = 7;
_dbContext.WcsCmd.Update(wcsCmd);
@@ -205,7 +212,6 @@ namespace Khd.Core.Application
}
else
{
-
wcsCmd.cmdStatus = 4;
wcsTask.taskStatus = 4;
_dbContext.WcsCmd.Update(wcsCmd);
@@ -217,6 +223,11 @@ namespace Khd.Core.Application
agvCompeletedResponse.message = "成功";
}
}
+ else
+ {
+ agvCompeletedResponse.code = "1";
+ agvCompeletedResponse.message = "未找到当前任务";
+ }
}
else
{
@@ -227,7 +238,7 @@ namespace Khd.Core.Application
else
{
agvCompeletedResponse.code = "1";
- agvCompeletedResponse.message = "未找到当前设备";
+ agvCompeletedResponse.message = "未找到当前工位";
}
}
catch (Exception ex)
@@ -277,6 +288,7 @@ namespace Khd.Core.Application
}
return compeletedResponse;
}
+
///
/// 柜体拆分区通知返库
///
@@ -465,5 +477,32 @@ namespace Khd.Core.Application
}
return reponseMessage;
}
+
+ public ReponseMessage AGVTaskComplete()
+ {
+ ReponseMessage reponseMessage = new ReponseMessage();
+ try
+ {
+ _dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
+ bool hasTask = _dbContext.WcsTask.Where(t => t.taskType == 41).Any();
+ if (hasTask)
+ {
+ reponseMessage.code = "0";
+ reponseMessage.message = "成功";
+ }
+ else
+ {
+ reponseMessage.code = "1";
+ reponseMessage.message = "当前无任务";
+ }
+ }
+ catch (Exception ex)
+ {
+ reponseMessage.code = "1";
+ reponseMessage.message = ex.Message;
+ LogManager.Error(ex);
+ }
+ return reponseMessage;
+ }
}
}
\ No newline at end of file
diff --git a/src/Khd.Core.Wcs/MainCentralControl.cs b/src/Khd.Core.Wcs/MainCentralControl.cs
index 8faad72..ae9c196 100644
--- a/src/Khd.Core.Wcs/MainCentralControl.cs
+++ b/src/Khd.Core.Wcs/MainCentralControl.cs
@@ -68,8 +68,8 @@ namespace Khd.Core.Wcs
StaticData.PlcDic.TryAdd(plcConfig.Code, plc);
}
}
- SystemTimer systemTimer = new SystemTimer(_host);
- systemTimer.Start();
+ //SystemTimer systemTimer = new SystemTimer(_host);
+ //systemTimer.Start();
////创建任务
//CreateTaskByRecord createTaskByRecord = new(_host);
//createTaskByRecord.StartPoint();
diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs
index f0da00e..7724904 100644
--- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs
+++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs
@@ -227,6 +227,9 @@ namespace Khd.Core.Wcs.Wcs
}
}
+ ///
+ /// 背负式Agv退库
+ ///
private void BackReturnTaskLogic()
{
using var scope = _host.Services.CreateScope();
@@ -235,7 +238,7 @@ namespace Khd.Core.Wcs.Wcs
{
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.taskType == 28).FirstOrDefault();
- if(wcsTask != null)
+ if (wcsTask != null)
{
WmsRawInstock? wmsRawInstock = dbContext.WmsRawInstock.Where(t => t.instockType == "2" && t.warehouseId == 511 && t.executeStatus == "0").FirstOrDefault();
if (wmsRawInstock != null)
@@ -247,15 +250,15 @@ namespace Khd.Core.Wcs.Wcs
WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail()
{
rawInstockDetailId = StaticData.SnowId.NextId(),
- rawInstockId=wmsRawInstock.rawInstockId,
+ rawInstockId = wmsRawInstock.rawInstockId,
instockWay = "2",
- activeFlag="1",
+ activeFlag = "1",
stackAmount = 1,
createBy = "WCS",
createDate = DateTime.Now,
materialId = wmsRawInstock.materialId,
instockAmount = 1,
- executeStatus="0",
+ executeStatus = "0",
};
dbContext.Update(wmsRawInstock);
dbContext.Update(wcsTask);
@@ -868,7 +871,9 @@ namespace Khd.Core.Wcs.Wcs
{
var proStock = dbContext.WmsProductStock
.Where(t => t.warehouseId == 231)
- .Where(t => t.activeFlag == "0").ToList();
+ .Where(t => t.activeFlag == "0")
+ .Where(t => t.totalAmount > t.frozenAmount)
+ .ToList();
var proOutStock = dbContext.WmsProductOutstock
.Where(t => t.outstockQty < t.applyQty)
.Where(t => t.auditStatus == "1")
@@ -878,197 +883,184 @@ namespace Khd.Core.Wcs.Wcs
//获取最早入库时间
foreach (var item in proOutStock)
{
- task = dbContext.WcsTask.Where(t => t.nextPointId == 8 && t.taskStatus <= 7).Any();
- if (!task)
+
+ BaseEquip endEquip = dbContext.BaseEquip.First(t => t.floorNo == 2 && t.equipType == 1);
+ var wmsproStocks = proStock
+ .Where(t => t.productId == item.productId && t.warehouseId == item.warehouseId)
+ .Select(t => t.palletInfoCode)
+ .ToList();
+
+ var wmsBaseLocations = dbContext.WmsBaseLocation
+ .Where(t => t.activeFlag == "1")
+ .Where(t => t.delFlag == "0")
+ .Where(t => t.locationScrapType == "1")
+ .Where(t => t.instockFlag == "0")
+ .Where(t => t.outstockFlag == "0")
+ .Where(t => t.warehouseId == item.warehouseId)
+ .Where(t => wmsproStocks.Contains(t.containerCode))
+ .ToList();
+
+ decimal needNumber = Convert.ToDecimal(item.applyQty - item.outstockQty);
+ if (needNumber <= 0)
{
- BaseEquip endEquip = dbContext.BaseEquip.First(t => t.floorNo == 2 && t.equipType == 1);
- var wmsproStocks = proStock
- .Where(t => t.productId == item.productId && t.warehouseId == item.warehouseId)
- .Select(t => t.palletInfoCode)
- .ToList();
+ item.executeStatus = "2";
+ dbContext.Update(item);
+ dbContext.SaveChanges();
+ continue;
+ }
- var wmsBaseLocations = dbContext.WmsBaseLocation
- .Where(t => t.activeFlag == "1")
- .Where(t => t.delFlag == "0")
- .Where(t => t.locationScrapType == "1")
- .Where(t => t.instockFlag == "0")
- .Where(t => t.outstockFlag == "0")
- .Where(t => t.warehouseId == item.warehouseId)
- .Where(t => wmsproStocks.Contains(t.containerCode))
- .ToList();
+ var bill = from a in wmsBaseLocations
+ from b in proStock
+ where a.containerCode == b.palletInfoCode
+ select new { a, b };
- decimal needNumber = Convert.ToDecimal(item.applyQty - item.outstockQty);
- if (needNumber <= 0)
+ BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 8);
+ BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 2);
+ foreach (var b in bill)
+ {
+ item.executeStatus = "1";
+ WmsBaseLocation location = b.a;
+ WmsProductStock stock = b.b;
+ WcsTask wcsTask;
+ int qty = 0;
+ if (stock.totalAmount - stock.frozenAmount <= needNumber)
{
- item.executeStatus = "2";
- dbContext.Update(item);
- dbContext.SaveChanges();
- continue;
- }
-
- var bill = from a in wmsBaseLocations
- from b in proStock
- where a.containerCode == b.palletInfoCode
- select new { a, b };
- //如果第一列满足需求,则按第一列排序,否则按最后一列排序
- if (bill.Where(t => t.a.locColumn == 1).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() > needNumber)
- {
- bill = bill.OrderBy(t => t.a.locColumn).ToList();
+ item.outstockQty += stock.totalAmount - stock.frozenAmount;
+ qty = Convert.ToInt32(stock.totalAmount - stock.frozenAmount);
+ stock.updateDate = DateTime.Now;
}
else
{
- bill = bill.OrderByDescending(t => t.a.locColumn).ToList();
+ item.outstockQty += needNumber;
+ qty = Convert.ToInt32(needNumber);
+ stock.updateDate = DateTime.Now;
}
- //做数量限制
-
- BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 8);
- BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 2);
- foreach (var b in bill)
+ MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == location.containerCode);
+ if (mesBasePalletInfo != null)
{
- item.executeStatus = "1";
- WmsBaseLocation location = b.a;
- WmsProductStock stock = b.b;
- WcsTask wcsTask;
- int qty = 0;
- if (stock.totalAmount - stock.frozenAmount <= needNumber)//该料箱全部出
+ WmsProductOutstockDetail detail = new()
{
- item.outstockQty += stock.totalAmount - stock.frozenAmount;
- qty = Convert.ToInt32(stock.totalAmount - stock.frozenAmount);
- stock.updateDate = DateTime.Now;
- }
- else
+ productId = item.productId,
+ productOutstockId = item.productOutstockId,
+ locationCode = location.locationCode,
+ executeStatus = "1",
+ beginTime = DateTime.Now,
+ warehouseId = item.warehouseId,
+ erpAmount = 0,
+ confirmAmount = 0,
+ outstockAmount = 1,
+ planAmount = 1,
+ productBatch = item.productBatch,
+ productOutstockDetailId = StaticData.SnowId.NextId(),
+ productBarcode = mesBasePalletInfo.materialBarcode,
+ };
+ if (location.locDeep == 1)//如果是深库位
{
- item.outstockQty += needNumber;
- qty = Convert.ToInt32(needNumber);
- stock.updateDate = DateTime.Now;
- }
- MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == location.containerCode);
- if (mesBasePalletInfo != null)
- {
- WmsProductOutstockDetail detail = new()
+ int? row = 0;
+ if (location.locRow % 2 == 1)
{
- productId = item.productId,
- productOutstockId = item.productOutstockId,
- locationCode = location.locationCode,
- executeStatus = "1",
- beginTime = DateTime.Now,
- warehouseId = item.warehouseId,
- erpAmount = 0,
- confirmAmount = 0,
- outstockAmount = 1,
- planAmount = 1,
- productBatch = item.productBatch,
- productOutstockDetailId = StaticData.SnowId.NextId(),
- productBarcode = mesBasePalletInfo.materialBarcode
- };
- if (location.locDeep == 1)
+ row = location.locRow + 1;
+ }
+ else
{
- int? row = 0;
- if (location.locRow % 2 == 1)
+ row = location.locRow - 1;
+ }
+ WmsBaseLocation? wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locRow == row)
+ .Where(t => t.locColumn == location.locColumn)
+ .Where(t => t.warehouseId == location.warehouseId).FirstOrDefault();
+ if (wmsBaseLocation != null && !string.IsNullOrEmpty(wmsBaseLocation.containerCode))
+ {
+ WmsBaseLocation? toLocation = dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId)
+ .Where(t => t.locDeep == 1)
+ .Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();
+ toLocation ??= dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId)
+ .Where(t => t.warehouseId != location.locationId)
+ .Where(t => string.IsNullOrEmpty(t.containerCode))
+ .FirstOrDefault();
+ if (toLocation != null)
{
- row = location.locRow + 1;
+ var RemoveTask = new WcsTask()
+ {
+ objid = StaticData.SnowId.NextId(),
+ orderId = item.productOutstockId,
+ taskType = 38,
+ containerNo = wmsBaseLocation.containerCode,
+ createBy = "WCS",
+ createTime = DateTime.Now.AddSeconds(-10),
+ taskStatus = 0,
+ materialId = item.productId,
+ currPointId = wmsBaseLocation.locationId,
+ currPointNo = wmsBaseLocation.locationCode,
+ nextPointId = agvEquip.objid,
+ nextPointNo = agvEquip.equipNo,
+ endPointId = toLocation.locationId,
+ endPointNo = toLocation.locationCode,
+ equipmentNo = agvEquip.equipNo,
+ useFlag = 1,
+ qty = qty
+ };
+ toLocation.locationStatus = "4";
+ toLocation.instockFlag = "1";
+ toLocation.updateBy = "WCS";
+ toLocation.updateTime = DateTime.Now;
+ wmsBaseLocation.updateBy = "WCS";
+ wmsBaseLocation.updateTime = DateTime.Now;
+ wmsBaseLocation.outstockFlag = "1";
+ wmsBaseLocation.locationStatus = "4";
+ dbContext.Update(toLocation);
+ dbContext.Update(wmsBaseLocation);
+ dbContext.Add(RemoveTask);
+ WcsTaskLog wcsTaskLog = CoreMapper.Map(RemoveTask);
+ dbContext.Add(wcsTaskLog);
}
else
{
- row = location.locRow - 1;
- }
- WmsBaseLocation? wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locRow == row)
- .Where(t => t.locColumn == location.locColumn)
- .Where(t => t.warehouseId == location.warehouseId).FirstOrDefault();
- if (wmsBaseLocation != null && !string.IsNullOrEmpty(wmsBaseLocation.containerCode))
- {
- WmsBaseLocation? toLocation = dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId)
- .Where(t => t.locDeep == 1)
- .Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();
- toLocation ??= dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId)
- .Where(t => t.warehouseId != location.locationId)
- .Where(t => string.IsNullOrEmpty(t.containerCode))
- .FirstOrDefault();
- if (toLocation != null)
- {
- var RemoveTask = new WcsTask()
- {
- objid = StaticData.SnowId.NextId(),
- orderId = item.productOutstockId,
- taskType = 38,
- containerNo = wmsBaseLocation.containerCode,
- createBy = "WCS",
- createTime = DateTime.Now.AddSeconds(-10),
- taskStatus = 0,
- materialId = item.productId,
- currPointId = wmsBaseLocation.locationId,
- currPointNo = wmsBaseLocation.locationCode,
- nextPointId = agvEquip.objid,
- nextPointNo = agvEquip.equipNo,
- endPointId = toLocation.locationId,
- endPointNo = toLocation.locationCode,
- equipmentNo = agvEquip.equipNo,
- useFlag = 1,
- qty = qty
- };
- toLocation.locationStatus = "4";
- toLocation.instockFlag = "1";
- toLocation.updateBy = "WCS";
- toLocation.updateTime = DateTime.Now;
- wmsBaseLocation.updateBy = "WCS";
- wmsBaseLocation.updateTime = DateTime.Now;
- wmsBaseLocation.outstockFlag = "1";
- wmsBaseLocation.locationStatus = "4";
- dbContext.Update(toLocation);
- dbContext.Update(wmsBaseLocation);
- dbContext.Add(RemoveTask);
- WcsTaskLog wcsTaskLog = CoreMapper.Map(RemoveTask);
- dbContext.Add(wcsTaskLog);
- }
- else
- {
- continue;
- }
+ continue;
}
}
- wcsTask = new WcsTask()
- {
- objid = StaticData.SnowId.NextId(),
- orderId = item.productOutstockId,
- taskType = 38,
- containerNo = location.containerCode,
- createBy = "WCS",
- createTime = DateTime.Now,
- taskStatus = 0,
- materialId = item.productId,
- currPointId = location.locationId,
- currPointNo = location.locationCode,
- nextPointId = agvEquip.objid,
- nextPointNo = agvEquip.equipNo,
- endPointId = lineEquip.objid,
- endPointNo = lineEquip.equipNo,
- equipmentNo = agvEquip.equipNo,
- useFlag = 1,
- qty = qty
- };
- location.outstockFlag = "1";
- location.locationStatus = "6";
- location.updateBy = "WCS";
- location.updateTime = DateTime.Now;
- dbContext.Add(detail);
- dbContext.Update(location);
- dbContext.Add(wcsTask);
- dbContext.Update(stock);
- dbContext.SaveChanges();
- if (qty >= needNumber)
- {
- break;
- }
+ }
+ wcsTask = new WcsTask()
+ {
+ objid = StaticData.SnowId.NextId(),
+ orderId = item.productOutstockId,
+ taskType = 38,
+ containerNo = location.containerCode,
+ createBy = "WCS",
+ createTime = DateTime.Now,
+ taskStatus = 0,
+ materialId = item.productId,
+ currPointId = location.locationId,
+ currPointNo = location.locationCode,
+ nextPointId = agvEquip.objid,
+ nextPointNo = agvEquip.equipNo,
+ endPointId = lineEquip.objid,
+ endPointNo = lineEquip.equipNo,
+ equipmentNo = agvEquip.equipNo,
+ useFlag = 1,
+ qty = qty
+ };
+ location.outstockFlag = "1";
+ location.locationStatus = "6";
+ location.updateBy = "WCS";
+ location.updateTime = DateTime.Now;
+ dbContext.Add(detail);
+ dbContext.Update(location);
+ dbContext.Add(wcsTask);
+ dbContext.Update(stock);
+ dbContext.SaveChanges();
+ if (qty >= needNumber)
+ {
break;
}
+ break;
}
- if (item.beginTime == null)
- {
- item.beginTime = DateTime.Now;
- }
- dbContext.Update(item);
- dbContext.SaveChanges();
}
+ if (item.beginTime == null)
+ {
+ item.beginTime = DateTime.Now;
+ }
+ dbContext.Update(item);
+ dbContext.SaveChanges();
}
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs
index 9bdbdea..0c76cf9 100644
--- a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs
+++ b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs
@@ -92,7 +92,7 @@ namespace Khd.Core.Wcs.Wcs
{
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService();
- bool IsStart = false;
+ //bool IsStart = false;
while (true)
{
try
diff --git a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs
index 5ff0df7..a8bc84e 100644
--- a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs
+++ b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs
@@ -207,6 +207,7 @@ namespace Khd.Core.Wcs.Wcs
FiveBearAgvLogic(dbContext);
CtuCmdLogic(dbContext);
SecondAgvLogic(dbContext);
+ SendTrayMessage(dbContext);
UpdatePlcPointValue(dbContext);
}
catch (Exception ex)
@@ -230,10 +231,40 @@ namespace Khd.Core.Wcs.Wcs
}
}
- Thread.Sleep(5000);
+ Thread.Sleep(1000);
}
}
+ private void SendTrayMessage(DefaultDbContext dbContext)
+ {
+ BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 40);
+ BasePlcpoint oneInPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "oneIn");
+ BasePlcpoint oneOutPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "oneOut");
+ BasePlcpoint someOutPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "someOut");
+ BasePlcpoint someInPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "someIn");
+ BasePlc basePlc = StaticData.basePlcs.First(t => t.Name == "托盘库去向");
+ BasePlc basePlc2 = StaticData.basePlcs.First(t => t.Name == "托盘库数量");
+ string? value = "0";
+ if (StaticData.PlcDic[0].Read(oneInPoint.plcpointAddress)?.ToString() == "1")
+ {
+ value = "1";
+ }
+ else if (StaticData.PlcDic[0].Read(oneOutPoint.plcpointAddress)?.ToString() == "1")
+ {
+ value = "2";
+ }
+ else if (StaticData.PlcDic[0].Read(someOutPoint.plcpointAddress)?.ToString() == "1")
+ {
+ value = "3";
+ }
+ else if (StaticData.PlcDic[0].Read(someInPoint.plcpointAddress)?.ToString() == "1")
+ {
+ value = "4";
+ }
+ StaticData.PlcDic[2].WriteToPoint(basePlc.Address, value, basePlc.type);
+ StaticData.PlcDic[2].WriteToPoint(basePlc2.Address, baseEquip.emptyCount.ToString(), basePlc2.type);
+ }
+
private void UpdatePlcPointValue(DefaultDbContext dbContext)
{
try
@@ -364,7 +395,7 @@ namespace Khd.Core.Wcs.Wcs
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
- basePlcs= StaticData.basePlcs.Where(t => t.Station == "5楼背负式").ToList();
+ basePlcs = StaticData.basePlcs.Where(t => t.Station == "5楼背负式").ToList();
cardStatus = reponse.data.First(t => t.RobotCode == "6011");
cardStatus.DateNow = DateTime.Now;
quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
index 633124b..5a08e0c 100644
--- a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
+++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
@@ -579,10 +579,10 @@ namespace Khd.Core.Wcs.Wcs
};
dbContext.Add(wmsRawStock);
dbContext.Update(wmsBaseLocation);
- dbContext.WcsTask.Where(t => t.objid == item.objid).Delete();
+ dbContext.Remove(wcsCmd);
+ dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
- dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Delete();
dbContext.SaveChanges();
}
}