master
2 years ago
parent edbf474e05
commit 07762af512

@ -444,7 +444,7 @@ namespace Khd.Core.Application
WmsRawOutstock wmsRawOutstock = _dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == Convert.ToInt64(callMaterial.rawOutstockId)); WmsRawOutstock wmsRawOutstock = _dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == Convert.ToInt64(callMaterial.rawOutstockId));
if (wmsRawOutstock != null) if (wmsRawOutstock != null)
{ {
bool hasTask = _dbContext.WcsTask.Where(t => t.endPointId == 31 || t.currPointId == 31).Any(); bool hasTask = _dbContext.WcsTask.Where(t => t.currPointId == 31).Any();
bool hasTaskManual = _dbContext.WcsTaskManual.Where(t => t.endPointId == 31 || t.currPointId == 31 || t.taskType == 999).Any(); bool hasTaskManual = _dbContext.WcsTaskManual.Where(t => t.endPointId == 31 || t.currPointId == 31 || t.taskType == 999).Any();
if (hasTask || hasTaskManual) if (hasTask || hasTaskManual)
{ {

@ -45,7 +45,20 @@ namespace Khd.Core.Plc
{ {
return null; return null;
} }
return Encoding.UTF8.GetString(result).Replace("\0", "").Replace("$", "").Replace("\\u", "").Trim(); string res = Encoding.UTF8.GetString(result).Replace("\0", "").Replace("$", "").Replace("\\u", "").Trim();
if (res.Contains("JYHB"))
{
return res[res.IndexOf('J')..];
}
else if(res.Contains("C"))
{
return res[res.IndexOf('C')..];
}else
{
return "";
}
} }

@ -69,27 +69,27 @@ namespace Khd.Core.Wcs
} }
//SystemTimer systemTimer = new SystemTimer(_host); //SystemTimer systemTimer = new SystemTimer(_host);
//systemTimer.Start(); //systemTimer.Start();
////创建任务 //创建任务
//CreateTaskByRecord createTaskByRecord = new(_host); CreateTaskByRecord createTaskByRecord = new(_host);
//createTaskByRecord.StartPoint(); createTaskByRecord.StartPoint();
//一楼提升机以及接驳位 //一楼提升机以及接驳位
FirstFloor firstFloor = new(_host, StaticData.PlcDic[0]); FirstFloor firstFloor = new(_host, StaticData.PlcDic[0]);
firstFloor.StartPoint(); firstFloor.StartPoint();
////二层接驳位 //二层接驳位
//var SecondBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 1).First(); var SecondBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 1).First();
//SecondFloorPoint secondFloorPoint = new(_host, StaticData.PlcDic[0], SecondBaseFloorEquip.floorNo.Value); SecondFloorPoint secondFloorPoint = new(_host, StaticData.PlcDic[0], SecondBaseFloorEquip.floorNo.Value);
//secondFloorPoint.StartPoint(); secondFloorPoint.StartPoint();
//二层AGV //二层AGV
//var SecondFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 4).First(); var SecondFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 4).First();
//SecondFloorAGV secondFloorAGV = new(_host, StaticData.PlcDic[0], SecondFloorAgvEquip.floorNo.Value); SecondFloorAGV secondFloorAGV = new(_host, StaticData.PlcDic[0], SecondFloorAgvEquip.floorNo.Value);
//secondFloorAGV.StartPoint(); secondFloorAGV.StartPoint();
////二楼线体 ////二楼线体
//var SecondFloorLineEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 17).First(); //var SecondFloorLineEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 17).First();
//SecondFloorLine secondFloorLine = new(_host, StaticData.PlcDic[0], SecondFloorLineEquip.floorNo.Value); //SecondFloorLine secondFloorLine = new(_host, StaticData.PlcDic[2], SecondFloorLineEquip.floorNo.Value);
//secondFloorLine.StartPoint(); //secondFloorLine.StartPoint();
////三层接驳位 ////三层接驳位
@ -107,12 +107,12 @@ namespace Khd.Core.Wcs
//FiveFloorPoint fifthFloorPoint = new(_host, StaticData.PlcDic[0], FifthBaseFloorEquip.floorNo.Value); //FiveFloorPoint fifthFloorPoint = new(_host, StaticData.PlcDic[0], FifthBaseFloorEquip.floorNo.Value);
//fifthFloorPoint.StartPoint(); //fifthFloorPoint.StartPoint();
//五层CTU ////五层CTU
//var FiveFloorCTUEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 6).First(); //var FiveFloorCTUEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 6).First();
//FiveFloorCTU fiveFloorCTU = new(_host, StaticData.PlcDic[1], FiveFloorCTUEquip.floorNo.Value); //FiveFloorCTU fiveFloorCTU = new(_host, StaticData.PlcDic[1], FiveFloorCTUEquip.floorNo.Value);
//fiveFloorCTU.StartPoint(); //fiveFloorCTU.StartPoint();
//五层AGV ////五层AGV
//var FifthFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 5).First(); //var FifthFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 5).First();
//FiveFloorAGV fifthFloorAGV = new(_host, StaticData.PlcDic[0], FifthFloorAgvEquip.floorNo.Value); //FiveFloorAGV fifthFloorAGV = new(_host, StaticData.PlcDic[0], FifthFloorAgvEquip.floorNo.Value);
//fifthFloorAGV.StartPoint(); //fifthFloorAGV.StartPoint();

@ -4,7 +4,7 @@ namespace Khd.Core.Wcs
{ {
public class SystemData public class SystemData
{ {
public readonly static int maxTray = 10; public readonly static int maxTray = 5;
private static long _serialNo { get; set; } = 1; private static long _serialNo { get; set; } = 1;

@ -181,77 +181,78 @@ namespace Khd.Core.Wcs.Wcs
if (!canCreate) if (!canCreate)
{ {
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 35); BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 35);
if (baseEquip.emptyCount == (SystemData.maxTray / 2)) //if (baseEquip.emptyCount == (SystemData.maxTray / 2))
{ //{
var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 1 && t.emptyCount == (SystemData.maxTray / 2)); // var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 1 && t.emptyCount == (SystemData.maxTray / 2));
if (endEquip != null) // if (endEquip != null)
{ // {
var wcsTask = new WcsTask() // var wcsTask = new WcsTask()
{ // {
objid = StaticData.SnowId.NextId(), // objid = StaticData.SnowId.NextId(),
serialNo = SystemData.GetSerialNo(dbContext), // serialNo = SystemData.GetSerialNo(dbContext),
taskType = 40, // taskType = 40,
nextPointId = agvEquip.objid, // nextPointId = agvEquip.objid,
nextPointNo = agvEquip.equipNo, // nextPointNo = agvEquip.equipNo,
endPointId = baseEquip.objid, // endPointId = baseEquip.objid,
endPointNo = baseEquip.equipNo, // endPointNo = baseEquip.equipNo,
currPointId = endEquip.objid, // currPointId = endEquip.objid,
currPointNo = endEquip.equipNo, // currPointNo = endEquip.equipNo,
equipmentNo = agvEquip.equipNo, // equipmentNo = agvEquip.equipNo,
useFlag = 1, // useFlag = 1,
qty = 5, // qty = 5,
isEmpty = "1", // isEmpty = "1",
taskStatus = 0, // taskStatus = 0,
createBy = "WCS", // createBy = "WCS",
createTime = DateTime.Now, // createTime = DateTime.Now,
floorNo = 3, // floorNo = 3,
fromFloorNo = 3, // fromFloorNo = 3,
masterId = 0, // masterId = 0,
orderId = 0, // orderId = 0,
materialId = 0, // materialId = 0,
}; // };
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask); // WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTask); // dbContext.Add(wcsTask);
dbContext.Add(wcsTaskLog); // dbContext.Add(wcsTaskLog);
dbContext.SaveChanges(); // dbContext.SaveChanges();
} // }
else // else
{ // {
endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 0 && t.emptyCount == 0); // endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 0 && t.emptyCount == 0);
if (endEquip != null) // if (endEquip != null)
{ // {
var wcsTask = new WcsTask() // var wcsTask = new WcsTask()
{ // {
objid = StaticData.SnowId.NextId(), // objid = StaticData.SnowId.NextId(),
serialNo = SystemData.GetSerialNo(dbContext), // serialNo = SystemData.GetSerialNo(dbContext),
taskType = 43, // taskType = 43,
nextPointId = agvEquip.objid, // nextPointId = agvEquip.objid,
nextPointNo = agvEquip.equipNo, // nextPointNo = agvEquip.equipNo,
endPointId = endEquip.objid, // endPointId = endEquip.objid,
endPointNo = endEquip.equipNo, // endPointNo = endEquip.equipNo,
currPointId = baseEquip.objid, // currPointId = baseEquip.objid,
currPointNo = baseEquip.equipNo, // currPointNo = baseEquip.equipNo,
equipmentNo = agvEquip.equipNo, // equipmentNo = agvEquip.equipNo,
useFlag = 1, // useFlag = 1,
qty = 5, // qty = 5,
isEmpty = "1", // isEmpty = "1",
taskStatus = 0, // taskStatus = 0,
createBy = "WCS", // createBy = "WCS",
createTime = DateTime.Now, // createTime = DateTime.Now,
floorNo = 3, // floorNo = 3,
fromFloorNo = 3, // fromFloorNo = 3,
masterId = 0, // masterId = 0,
orderId = 0, // orderId = 0,
materialId = 0, // materialId = 0,
}; // };
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask); // WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTask); // dbContext.Add(wcsTask);
dbContext.Add(wcsTaskLog); // dbContext.Add(wcsTaskLog);
dbContext.SaveChanges(); // dbContext.SaveChanges();
} // }
} // }
} //}
else if (baseEquip.emptyCount == SystemData.maxTray) //else
if (baseEquip.emptyCount == SystemData.maxTray)
{ {
var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 0 && t.emptyCount == 0); var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 0 && t.emptyCount == 0);
if (endEquip != null) if (endEquip != null)
@ -269,7 +270,7 @@ namespace Khd.Core.Wcs.Wcs
currPointNo = baseEquip.equipNo, currPointNo = baseEquip.equipNo,
equipmentNo = agvEquip.equipNo, equipmentNo = agvEquip.equipNo,
useFlag = 1, useFlag = 1,
qty = 10, qty = SystemData.maxTray,
isEmpty = "1", isEmpty = "1",
taskStatus = 0, taskStatus = 0,
createBy = "WCS", createBy = "WCS",
@ -483,7 +484,10 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.locationScrapType == "1") .Where(t => t.locationScrapType == "1")
.Where(t => t.instockFlag == "0") .Where(t => t.instockFlag == "0")
.Where(t => t.outstockFlag == "0") .Where(t => t.outstockFlag == "0")
.Where(t => t.warehouseId == 311).ToList(); .Where(t => t.warehouseId == 311)
.OrderByDescending(t=>t.locRow)
.ThenByDescending(t=>t.locColumn)
.ToList();
var bill = from a in wmsBaseLocations var bill = from a in wmsBaseLocations
from b in wmsRawStocks from b in wmsRawStocks
where a.locationCode == b.locationCode where a.locationCode == b.locationCode
@ -1175,6 +1179,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Update(location); dbContext.Update(location);
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
dbContext.Update(stock); dbContext.Update(stock);
WcsTaskLog wcsTaskLog1 = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTaskLog1);
dbContext.SaveChanges(); dbContext.SaveChanges();
if (qty >= needNumber) if (qty >= needNumber)
{ {

@ -16,7 +16,6 @@ namespace Khd.Core.Wcs.Wcs
public class FirstFloor public class FirstFloor
{ {
private readonly IHost _host; private readonly IHost _host;
private Plc.S7.Plc _plc;
private readonly long F01 = 1; private readonly long F01 = 1;
private readonly long T01 = 6; private readonly long T01 = 6;
/// <summary> /// <summary>
@ -60,7 +59,6 @@ namespace Khd.Core.Wcs.Wcs
public FirstFloor(IHost host, Plc.S7.Plc plc) public FirstFloor(IHost host, Plc.S7.Plc plc)
{ {
this._host = host; this._host = host;
this._plc = plc;
//一楼RFID 读 //一楼RFID 读
this.RFID001 = StaticData.BasePlcpointList.First(t => t.equipmentNo.Contains("FirstFloorLine") && t.plcpointNo.Contains("RFID001")); this.RFID001 = StaticData.BasePlcpointList.First(t => t.equipmentNo.Contains("FirstFloorLine") && t.plcpointNo.Contains("RFID001"));
@ -89,11 +87,11 @@ namespace Khd.Core.Wcs.Wcs
/// </summary> /// </summary>
public void StartPoint() public void StartPoint()
{ {
//Thread firstFloorLine = new(FirstFloorLine) Thread firstFloorLine = new(FirstFloorLine)
//{ {
// IsBackground = true IsBackground = true
//}; };
//firstFloorLine.Start(); firstFloorLine.Start();
Console.WriteLine(DateTime.Now + ":一楼接驳位线程启动成功"); Console.WriteLine(DateTime.Now + ":一楼接驳位线程启动成功");
LogManager.Info("一楼接驳位线程启动成功"); LogManager.Info("一楼接驳位线程启动成功");
@ -138,6 +136,7 @@ namespace Khd.Core.Wcs.Wcs
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == i); BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == i);
if (baseEquip.equipStatus != 1) if (baseEquip.equipStatus != 1)
{ {
baseEquip.equipStatus = 1;
dbContext.Update(baseEquip); dbContext.Update(baseEquip);
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
@ -155,8 +154,9 @@ namespace Khd.Core.Wcs.Wcs
else else
{ {
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == i); BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == i);
bool hasTask = dbContext.WcsTask.Where(t => t.endPointId == i || t.currPointId == i).Any(); bool hasCmd = dbContext.WcsCmd.Where(t => t.nextPointId == i || t.currPointId == i).Any();
if (!hasTask) bool hasTask = dbContext.WcsTask.Where(t => (t.currPointId == i || t.endPointId == i) && t.taskStatus >= 1 && t.nextPointId == 6).Any();
if (!hasCmd|| !hasTask)
{ {
baseEquip.equipStatus = 0; baseEquip.equipStatus = 0;
dbContext.Update(baseEquip); dbContext.Update(baseEquip);
@ -210,7 +210,7 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var linesignal = this._plc.Read(this.linesignal01.plcpointAddress); var linesignal = StaticData.PlcDic[0].Read(this.linesignal01.plcpointAddress);
int taskCount = dbContext.WcsTask.Where(t => t.nextPointId == 6 && t.taskStatus > 0 && t.endPointId == 1).Count(); int taskCount = dbContext.WcsTask.Where(t => t.nextPointId == 6 && t.taskStatus > 0 && t.endPointId == 1).Count();
int firstFloorCount = dbContext.WcsTask.Where(t => t.currPointId == 1).Count(); int firstFloorCount = dbContext.WcsTask.Where(t => t.currPointId == 1).Count();
if (Convert.ToInt32(linesignal) == 0 && taskCount == 0 && firstFloorCount == 0) if (Convert.ToInt32(linesignal) == 0 && taskCount == 0 && firstFloorCount == 0)
@ -223,7 +223,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (wcsTaskManual.taskType == 53) if (wcsTaskManual.taskType == 53)
{ {
this._plc.WriteToPoint(someOutPoint.plcpointAddress, "1", someOutPoint.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(someOutPoint.plcpointAddress, "1", someOutPoint.plcpointLength.ToString());
WcsTask wcsTask = CoreMapper.Map<WcsTask>(wcsTaskManual); WcsTask wcsTask = CoreMapper.Map<WcsTask>(wcsTaskManual);
wcsTask.createTime = DateTime.Now; wcsTask.createTime = DateTime.Now;
wcsTask.createBy = "一楼接驳位线程"; wcsTask.createBy = "一楼接驳位线程";
@ -304,8 +304,8 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var RFID001Value = this._plc.ReadRFID(this.RFID001.plcpointAddress); //一楼RFID 读 var RFID001Value = StaticData.PlcDic[0].ReadRFID(this.RFID001.plcpointAddress); //一楼RFID 读
var linesignal01Value = this._plc.Read(this.linesignal01.plcpointAddress); //到位信号 读 var linesignal01Value = StaticData.PlcDic[0].Read(this.linesignal01.plcpointAddress); //到位信号 读
//正常读到plc值 //正常读到plc值
if (linesignal01Value != null && RFID001Value != null) if (linesignal01Value != null && RFID001Value != null)
{ {
@ -476,13 +476,13 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
var mesCloseValue = this._plc.Read(this.mesClose.plcpointAddress); //MES关闭状态 读 var mesCloseValue = StaticData.PlcDic[0].Read(this.mesClose.plcpointAddress); //MES关闭状态 读
var serialno06Value = this._plc.Read(this.serialno06.plcpointAddress); //提升机流水号 读 var serialno06Value = StaticData.PlcDic[0].Read(this.serialno06.plcpointAddress); //提升机流水号 读
var equipstate06Value = this._plc.Read(this.equipstate06.plcpointAddress); //提升机状态 读 var equipstate06Value = StaticData.PlcDic[0].Read(this.equipstate06.plcpointAddress); //提升机状态 读
var hoisterTrayIn06Value = this._plc.Read(this.hoistertrayin06.plcpointAddress); //提升机货物到位状态 读 var hoisterTrayIn06Value = StaticData.PlcDic[0].Read(this.hoistertrayin06.plcpointAddress); //提升机货物到位状态 读
var currentfloor06Value = this._plc.Read(this.currentfloor06.plcpointAddress); //提升机当前楼层 读 var currentfloor06Value = StaticData.PlcDic[0].Read(this.currentfloor06.plcpointAddress); //提升机当前楼层 读
var targetfloor06Value = this._plc.Read(this.targetfloor06.plcpointAddress); //提升机目的楼层 写 var targetfloor06Value = StaticData.PlcDic[0].Read(this.targetfloor06.plcpointAddress); //提升机目的楼层 写
var reserialno06 = this._plc.Read(this.reserialno06.plcpointAddress); //反馈流水号 var reserialno06 = StaticData.PlcDic[0].Read(this.reserialno06.plcpointAddress); //反馈流水号
if (mesCloseValue != null && Convert.ToInt32(mesCloseValue) == 0) if (mesCloseValue != null && Convert.ToInt32(mesCloseValue) == 0)
{ {
//正常读到plc值 //正常读到plc值
@ -501,7 +501,7 @@ namespace Khd.Core.Wcs.Wcs
LogManager.Info("提升机线程:有其他任务正在执行,跳过当前任务"); LogManager.Info("提升机线程:有其他任务正在执行,跳过当前任务");
continue; continue;
} }
BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == wcsTask.floorNo); BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == wcsTask.floorNo);
if (wcsTask.taskStatus == 0 && Convert.ToInt32(hoisterTrayIn06Value) == 0)//创建状态,并且里面没有货物 if (wcsTask.taskStatus == 0 && Convert.ToInt32(hoisterTrayIn06Value) == 0)//创建状态,并且里面没有货物
{ {
if (lineEquip.equipStatus == 1) if (lineEquip.equipStatus == 1)
@ -510,7 +510,7 @@ namespace Khd.Core.Wcs.Wcs
continue; continue;
} }
BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo); BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo);
if (wcsTask.containerNo == this._plc.ReadRFID(floorPoint.plcpointAddress) || (string.IsNullOrEmpty(wcsTask.containerNo) && wcsTask.qty > 1)) if (wcsTask.containerNo == StaticData.PlcDic[0].ReadRFID(floorPoint.plcpointAddress) || (string.IsNullOrEmpty(wcsTask.containerNo) && wcsTask.qty > 1))
{ {
if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo) if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)
{ {
@ -519,8 +519,8 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.updateTime = DateTime.Now; wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行中"; wcsTask.remark = "提升机任务执行中";
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.fromFloorNo && t.plcpointNo.Contains("wcsrun")); BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.fromFloorNo && t.plcpointNo.Contains("wcsrun"));
this._plc.WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
this._plc.WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
dbContext.Update(wcsTask); dbContext.Update(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" }); dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" });
lineEquip.equipStatus = 1; lineEquip.equipStatus = 1;
@ -533,8 +533,8 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.updateBy = "提升机线程"; wcsTask.updateBy = "提升机线程";
wcsTask.updateTime = DateTime.Now; wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行中"; wcsTask.remark = "提升机任务执行中";
this._plc.WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.fromFloorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层 StaticData.PlcDic[0].WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.fromFloorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层
this._plc.WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
dbContext.Update(wcsTask); dbContext.Update(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 1, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" }); dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 1, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" });
lineEquip.equipStatus = 1; lineEquip.equipStatus = 1;
@ -546,7 +546,7 @@ namespace Khd.Core.Wcs.Wcs
if (wcsTask.taskStatus == 1 && Convert.ToInt32(reserialno06) == wcsTask.serialNo) if (wcsTask.taskStatus == 1 && Convert.ToInt32(reserialno06) == wcsTask.serialNo)
{ {
BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo); BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo);
if (wcsTask.containerNo == this._plc.ReadRFID(floorPoint.plcpointAddress) || (string.IsNullOrEmpty(wcsTask.containerNo)&&wcsTask.qty>1)) if (wcsTask.containerNo == StaticData.PlcDic[0].ReadRFID(floorPoint.plcpointAddress) || (string.IsNullOrEmpty(wcsTask.containerNo) && wcsTask.qty > 1))
{ {
if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)//提升机当前楼层为初始地楼层 if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)//提升机当前楼层为初始地楼层
{ {
@ -555,8 +555,8 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.updateTime = DateTime.Now; wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行中"; wcsTask.remark = "提升机任务执行中";
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.fromFloorNo && t.plcpointNo.Contains("wcsrun")); BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.fromFloorNo && t.plcpointNo.Contains("wcsrun"));
this._plc.WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
this._plc.WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(this.serialno06.plcpointAddress, wcsTask.serialNo.ToString(), this.serialno06.plcpointLength.ToString());
dbContext.Update(wcsTask); dbContext.Update(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" }); dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 2, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行中" });
dbContext.SaveChanges(); dbContext.SaveChanges();
@ -571,7 +571,7 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.updateBy = "提升机线程"; wcsTask.updateBy = "提升机线程";
wcsTask.updateTime = DateTime.Now; wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行完成"; wcsTask.remark = "提升机任务执行完成";
this._plc.WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.floorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层 StaticData.PlcDic[0].WriteToPoint(this.targetfloor06.plcpointAddress, wcsTask.floorNo.ToString(), this.targetfloor06.plcpointLength.ToString());//目的地楼层
dbContext.Update(wcsTask); dbContext.Update(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" }); dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
dbContext.SaveChanges(); dbContext.SaveChanges();
@ -583,7 +583,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (ReadEmptyLocation()) if (ReadEmptyLocation())
{ {
var linesignal = _plc.Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == $"linesignal0{wcsTask.floorNo}").plcpointAddress); var linesignal = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == $"linesignal0{wcsTask.floorNo}").plcpointAddress);
if (linesignal != null && Convert.ToInt32(linesignal) == 0) if (linesignal != null && Convert.ToInt32(linesignal) == 0)
{ {
wcsTask.taskStatus = 4; wcsTask.taskStatus = 4;
@ -591,7 +591,7 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.updateTime = DateTime.Now; wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行完成"; wcsTask.remark = "提升机任务执行完成";
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.floorNo && t.plcpointNo.Contains("wcsrun")); BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.floorNo && t.plcpointNo.Contains("wcsrun"));
this._plc.WriteToPoint(basePlcpoint.plcpointAddress, "2", basePlcpoint.plcpointLength.ToString());//去向为2表示提升机已到达目的地让货出去 StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "2", basePlcpoint.plcpointLength.ToString());//去向为2表示提升机已到达目的地让货出去
dbContext.Update(wcsTask); dbContext.Update(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" }); dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
dbContext.SaveChanges(); dbContext.SaveChanges();
@ -599,13 +599,13 @@ namespace Khd.Core.Wcs.Wcs
else else
{ {
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.equipmentNo == $"clear0{wcsTask.floorNo}"); BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.equipmentNo == $"clear0{wcsTask.floorNo}");
this._plc.WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
} }
} }
} }
else else
{ {
var linesignal = _plc.Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == $"linesignal0{wcsTask.floorNo}").plcpointAddress); var linesignal = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == $"linesignal0{wcsTask.floorNo}").plcpointAddress);
if (linesignal != null && Convert.ToInt32(linesignal) == 0) if (linesignal != null && Convert.ToInt32(linesignal) == 0)
{ {
wcsTask.taskStatus = 4; wcsTask.taskStatus = 4;
@ -613,7 +613,7 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.updateTime = DateTime.Now; wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行完成"; wcsTask.remark = "提升机任务执行完成";
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.floorNo && t.plcpointNo.Contains("wcsrun")); BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.floorNo == wcsTask.floorNo && t.plcpointNo.Contains("wcsrun"));
this._plc.WriteToPoint(basePlcpoint.plcpointAddress, "2", basePlcpoint.plcpointLength.ToString());//去向为2表示提升机已到达目的地让货出去 StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "2", basePlcpoint.plcpointLength.ToString());//去向为2表示提升机已到达目的地让货出去
dbContext.Update(wcsTask); dbContext.Update(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" }); dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4, updateBy = "提升机线程", updateTime = DateTime.Now, remark = "提升机任务执行完成" });
dbContext.SaveChanges(); dbContext.SaveChanges();
@ -621,7 +621,7 @@ namespace Khd.Core.Wcs.Wcs
else else
{ {
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.equipmentNo == $"clear0{wcsTask.floorNo}"); BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.equipmentNo == $"clear0{wcsTask.floorNo}");
this._plc.WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
} }
} }
} }
@ -649,7 +649,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (currentfloor06Value != null && targetfloor06Value != null) if (currentfloor06Value != null && targetfloor06Value != null)
{ {
this._plc.WriteToPoint(this.targetfloor06.plcpointAddress, Convert.ToString(currentfloor06Value), this.targetfloor06.plcpointLength.ToString()); StaticData.PlcDic[0].WriteToPoint(this.targetfloor06.plcpointAddress, Convert.ToString(currentfloor06Value), this.targetfloor06.plcpointLength.ToString());
continue; continue;
} }
} }

@ -18,14 +18,12 @@ namespace Khd.Core.Wcs.Wcs
public class FiveFloorAGV public class FiveFloorAGV
{ {
private readonly IHost _host; private readonly IHost _host;
private readonly Plc.S7.Plc _plc;
private readonly BasePlcpoint LineSignal; private readonly BasePlcpoint LineSignal;
int FloorNo { get; set; } int FloorNo { get; set; }
int agvID = 28; int agvID = 28;
public FiveFloorAGV(IHost host, Plc.S7.Plc plc, int floor) public FiveFloorAGV(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal05"); this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal05");
} }
@ -76,7 +74,7 @@ namespace Khd.Core.Wcs.Wcs
LogManager.Info("五楼AGV:接驳位有任务,无法下发出库任务"); LogManager.Info("五楼AGV:接驳位有任务,无法下发出库任务");
continue; continue;
} }
if (Convert.ToInt32(this._plc.Read(LineSignal.plcpointAddress)) == 1 && !canSend) if (Convert.ToInt32(StaticData.PlcDic[0].Read(LineSignal.plcpointAddress)) == 1 && !canSend)
{ {
Console.WriteLine($"{DateTime.Now}:5楼接驳位上有货无法下发Agv出库任务"); Console.WriteLine($"{DateTime.Now}:5楼接驳位上有货无法下发Agv出库任务");
continue; continue;
@ -506,7 +504,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (item.currPointId == 5) if (item.currPointId == 5)
{ {
var lineSignalValue = this._plc.Read(LineSignal.plcpointAddress); var lineSignalValue = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress);
if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 0) if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 0)
{ {
Console.WriteLine(DateTime.Now + ":五楼Agv接驳位为空无法取货"); Console.WriteLine(DateTime.Now + ":五楼Agv接驳位为空无法取货");
@ -516,7 +514,7 @@ namespace Khd.Core.Wcs.Wcs
} }
else if (item.endPointId == 5) else if (item.endPointId == 5)
{ {
var lineSignalValue = this._plc.Read(LineSignal.plcpointAddress); var lineSignalValue = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress);
if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 1) if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 1)
{ {
Console.WriteLine(DateTime.Now + ":五楼Agv接驳位有货无法送货"); Console.WriteLine(DateTime.Now + ":五楼Agv接驳位有货无法送货");

@ -19,13 +19,11 @@ namespace Khd.Core.Wcs.Wcs
{ {
private readonly IHost _host; private readonly IHost _host;
private readonly Plc.S7.Plc _plc;
int FloorNo { get; set; } int FloorNo { get; set; }
int agvID = 10; int agvID = 10;
public FiveFloorBearAgv(IHost host, Plc.S7.Plc plc, int floor) public FiveFloorBearAgv(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
} }
/// <summary> /// <summary>

@ -20,7 +20,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
List<BasePlcpoint> ScanPoint { get; set; }//点位信息 List<BasePlcpoint> ScanPoint { get; set; }//点位信息
private readonly IHost _host; private readonly IHost _host;
private Plc.S7.Plc _plc;
private readonly BasePlcpoint LineRFID; private readonly BasePlcpoint LineRFID;
private readonly BasePlcpoint isarrive; private readonly BasePlcpoint isarrive;
private readonly BasePlcpoint isput; private readonly BasePlcpoint isput;
@ -32,7 +32,6 @@ namespace Khd.Core.Wcs.Wcs
public FiveFloorCTU(IHost host, Plc.S7.Plc plc, int floor) public FiveFloorCTU(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID5001"); this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID5001");
this.isarrive = StaticData.BasePlcpointList.First(t => t.plcpointNo == "isarrive"); this.isarrive = StaticData.BasePlcpointList.First(t => t.plcpointNo == "isarrive");
@ -70,14 +69,14 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
flag = !flag; flag = !flag;
this._plc.WriteToPoint(heartPoint.plcpointAddress, flag.ToString(), heartPoint.plcpointLength.ToString()); StaticData.PlcDic[1].WriteToPoint(heartPoint.plcpointAddress, flag.ToString(), heartPoint.plcpointLength.ToString());
} }
catch catch
{ {
try try
{ {
this._plc = new Plc.S7.Plc(this._plc.CPU, this._plc.IP, this._plc.Port, this._plc.Rack, this._plc.Slot); StaticData.PlcDic[1] = new Plc.S7.Plc(StaticData.PlcDic[1].CPU, StaticData.PlcDic[1].IP, StaticData.PlcDic[1].Port, StaticData.PlcDic[1].Rack, StaticData.PlcDic[1].Slot);
this._plc.Open(); StaticData.PlcDic[1].Open();
} }
catch catch
{ {
@ -98,15 +97,15 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var rfid = this._plc.ReadRFID(LineRFID.plcpointAddress); var rfid = StaticData.PlcDic[1].ReadRFID(LineRFID.plcpointAddress);
var isArrive = this._plc.Read(isarrive.plcpointAddress); var isArrive = StaticData.PlcDic[1].Read(isarrive.plcpointAddress);
var receiveMaterial = this._plc.Read(ReceiveMaterial.plcpointAddress); var receiveMaterial = StaticData.PlcDic[1].Read(ReceiveMaterial.plcpointAddress);
var waring = this._plc.Read(CtuLineWaring.plcpointAddress); var waring = StaticData.PlcDic[1].Read(CtuLineWaring.plcpointAddress);
if (rfid != null && isArrive != null && receiveMaterial != null && Convert.ToInt32(receiveMaterial) == 1 && Convert.ToInt32(isArrive) == 1) if (rfid != null && isArrive != null && receiveMaterial != null && Convert.ToInt32(receiveMaterial) == 1 && Convert.ToInt32(isArrive) == 1)
{ {
if (Convert.ToBoolean(waring)) if (Convert.ToBoolean(waring))
{ {
this._plc.WriteToPoint(CtuLineWaring.plcpointAddress, "false", CtuLineWaring.plcpointLength.ToString()); StaticData.PlcDic[1].WriteToPoint(CtuLineWaring.plcpointAddress, "false", CtuLineWaring.plcpointLength.ToString());
} }
rfid = rfid[rfid.IndexOf('C')..]; rfid = rfid[rfid.IndexOf('C')..];
WcsTask? task = dbContext.WcsTask.FirstOrDefault(t => t.containerNo == rfid); WcsTask? task = dbContext.WcsTask.FirstOrDefault(t => t.containerNo == rfid);
@ -238,17 +237,17 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (!Convert.ToBoolean(waring)) if (!Convert.ToBoolean(waring))
{ {
this._plc.WriteToPoint(CtuLineWaring.plcpointAddress, "true", CtuLineWaring.plcpointLength.ToString()); StaticData.PlcDic[1].WriteToPoint(CtuLineWaring.plcpointAddress, "true", CtuLineWaring.plcpointLength.ToString());
} }
} }
else if (receiveMaterial != null && Convert.ToInt32(receiveMaterial) == 1) else if (receiveMaterial != null && Convert.ToInt32(receiveMaterial) == 1)
{ {
//Task.Run(() => //Task.Run(() =>
//{ //{
// var receiveMaterial2 = this._plc.Read(ReceiveMaterial.plcpointAddress); // var receiveMaterial2 = StaticData.PlcDic[1].Read(ReceiveMaterial.plcpointAddress);
// while (receiveMaterial2 != null && Convert.ToInt32(receiveMaterial2) == 1) // while (receiveMaterial2 != null && Convert.ToInt32(receiveMaterial2) == 1)
// { // {
// receiveMaterial2 = this._plc.Read(ReceiveMaterial.plcpointAddress); // receiveMaterial2 = StaticData.PlcDic[1].Read(ReceiveMaterial.plcpointAddress);
// lock (SystemData.outStockLock) // lock (SystemData.outStockLock)
// { // {
// WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First(); // WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First();
@ -272,8 +271,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
this._plc = new Plc.S7.Plc(this._plc.CPU, this._plc.IP, this._plc.Port, this._plc.Rack, this._plc.Slot); StaticData.PlcDic[1] = new Plc.S7.Plc(StaticData.PlcDic[1].CPU, StaticData.PlcDic[1].IP, StaticData.PlcDic[1].Port, StaticData.PlcDic[1].Rack, StaticData.PlcDic[1].Slot);
this._plc.Open(); StaticData.PlcDic[1].Open();
} }
catch catch
{ {
@ -588,7 +587,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (item.taskType == 30 || item.taskType == 100) if (item.taskType == 30 || item.taskType == 100)
{ {
var canOut = this._plc.Read(isput.plcpointAddress); var canOut = StaticData.PlcDic[1].Read(isput.plcpointAddress);
if (canOut != null && Convert.ToInt64(canOut) == 0) if (canOut != null && Convert.ToInt64(canOut) == 0)
{ {
var agvTask = new var agvTask = new
@ -672,7 +671,7 @@ namespace Khd.Core.Wcs.Wcs
int wcsTaskCount = dbContext.WcsTask.Where(t => t.taskType == 30 && t.taskStatus != 6).Count(); int wcsTaskCount = dbContext.WcsTask.Where(t => t.taskType == 30 && t.taskStatus != 6).Count();
if (wcsTaskCount == 0) if (wcsTaskCount == 0)
{ {
this._plc.WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString()); StaticData.PlcDic[1].WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString());
} }
} }
else if (item.taskType == 29)//入库任务 else if (item.taskType == 29)//入库任务
@ -714,7 +713,7 @@ namespace Khd.Core.Wcs.Wcs
int wcsTaskCount = dbContext.WcsTask.Where(t => (t.taskType == 30 || t.taskType == 100) && t.taskStatus != 6).Count(); int wcsTaskCount = dbContext.WcsTask.Where(t => (t.taskType == 30 || t.taskType == 100) && t.taskStatus != 6).Count();
if (wcsTaskCount == 0) if (wcsTaskCount == 0)
{ {
this._plc.WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString()); StaticData.PlcDic[1].WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString());
} }
} }
} }
@ -728,8 +727,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
this._plc = new Plc.S7.Plc(this._plc.CPU, this._plc.IP, this._plc.Port, this._plc.Rack, this._plc.Slot); StaticData.PlcDic[1] = new Plc.S7.Plc(StaticData.PlcDic[1].CPU, StaticData.PlcDic[1].IP, StaticData.PlcDic[1].Port, StaticData.PlcDic[1].Rack, StaticData.PlcDic[1].Slot);
this._plc.Open(); StaticData.PlcDic[1].Open();
} }
catch catch
{ {

@ -15,7 +15,6 @@ namespace Khd.Core.Wcs.Wcs
public class FiveFloorPoint public class FiveFloorPoint
{ {
private readonly IHost _host; private readonly IHost _host;
private Plc.S7.Plc _plc;
private readonly BasePlcpoint LineRFID; private readonly BasePlcpoint LineRFID;
private readonly BasePlcpoint LineSignal; private readonly BasePlcpoint LineSignal;
@ -24,7 +23,6 @@ namespace Khd.Core.Wcs.Wcs
public FiveFloorPoint(IHost host, Plc.S7.Plc plc, int floor) public FiveFloorPoint(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID005"); this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID005");
this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal05"); this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal05");
@ -55,8 +53,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
//入库任务 //入库任务
var rfid = this._plc.ReadRFID(LineRFID.plcpointAddress); var rfid = StaticData.PlcDic[0].ReadRFID(LineRFID.plcpointAddress);
var isSignal = this._plc.Read(LineSignal.plcpointAddress); var isSignal = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress);
if (rfid != null && isSignal != null) if (rfid != null && isSignal != null)
{ {
if (BigContainerCodes.Contains(rfid)) if (BigContainerCodes.Contains(rfid))
@ -217,8 +215,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
this._plc = new Plc.S7.Plc(this._plc.CPU, this._plc.IP, this._plc.Port, this._plc.Rack, this._plc.Slot); StaticData.PlcDic[0] = new Plc.S7.Plc(StaticData.PlcDic[0].CPU, StaticData.PlcDic[0].IP, StaticData.PlcDic[0].Port, StaticData.PlcDic[0].Rack, StaticData.PlcDic[0].Slot);
this._plc.Open(); StaticData.PlcDic[0].Open();
} }
catch catch
{ {

@ -14,14 +14,12 @@ namespace Khd.Core.Wcs.Wcs
public class FourthFloorPoint public class FourthFloorPoint
{ {
private readonly int Floor; private readonly int Floor;
private readonly Plc.S7.Plc _plc;
private readonly IHost _host; private readonly IHost _host;
private readonly BasePlcpoint LineRFID; private readonly BasePlcpoint LineRFID;
private readonly BasePlcpoint LineSignal; private readonly BasePlcpoint LineSignal;
public FourthFloorPoint(int floor, Plc.S7.Plc plc, IHost host) public FourthFloorPoint(int floor, Plc.S7.Plc plc, IHost host)
{ {
Floor = floor; Floor = floor;
_plc = plc;
this._host = host; this._host = host;
this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID004"); this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID004");
this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo.Contains("linesignal04")); this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo.Contains("linesignal04"));
@ -44,8 +42,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
//入库任务 //入库任务
var rfid = this._plc.ReadRFID(LineRFID.plcpointAddress); var rfid = StaticData.PlcDic[0].ReadRFID(LineRFID.plcpointAddress);
var isSignal = this._plc.Read(LineSignal.plcpointAddress); var isSignal = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress);
if (rfid != null && isSignal != null) if (rfid != null && isSignal != null)
{ {

@ -18,7 +18,6 @@ namespace Khd.Core.Wcs.Wcs
public class SecondFloorAGV public class SecondFloorAGV
{ {
private readonly IHost _host; private readonly IHost _host;
private readonly Plc.S7.Plc _plc;
int FloorNo { get; set; } int FloorNo { get; set; }
int EquipID = 8; //2楼AGV int EquipID = 8; //2楼AGV
@ -26,7 +25,6 @@ namespace Khd.Core.Wcs.Wcs
public SecondFloorAGV(IHost host, Plc.S7.Plc plc, int floor) public SecondFloorAGV(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
} }
@ -186,6 +184,7 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 49)//小包出口-库位 else if (item.taskType == 49)//小包出口-库位
{ {
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId);
BaseEquip startEquip = dbContext.BaseEquip.First(t=>t.objid==item.currPointId);
WcsCmd wcsCmd = new WcsCmd() WcsCmd wcsCmd = new WcsCmd()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -196,8 +195,8 @@ namespace Khd.Core.Wcs.Wcs
containerNo = item.containerNo, containerNo = item.containerNo,
createTime = DateTime.Now, createTime = DateTime.Now,
createBy = FloorNo + "楼AGV", createBy = FloorNo + "楼AGV",
currPointId = item.currPointId, currPointId = startEquip.objid,
currPointNo = outEquip.agvPositionCode, currPointNo = startEquip.agvPositionCode,
nextPointId = item.endPointId, nextPointId = item.endPointId,
nextPointNo = wmsBaseLocation.agvPositionCode, nextPointNo = wmsBaseLocation.agvPositionCode,
}; };
@ -319,7 +318,7 @@ namespace Khd.Core.Wcs.Wcs
createBy = FloorNo + "楼AGV", createBy = FloorNo + "楼AGV",
currPointId = item.currPointId, currPointId = item.currPointId,
currPointNo = startPoint.agvPositionCode, currPointNo = startPoint.agvPositionCode,
nextPointId = item.endPointId, nextPointId = lineEquip.objid,
nextPointNo = lineEquip.agvPositionCode, nextPointNo = lineEquip.agvPositionCode,
}; };
var agvTask = new RequestAGVTaskDto var agvTask = new RequestAGVTaskDto
@ -882,6 +881,7 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.outstockFlag = "0"; wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
item.nextPointId = 2;
item.taskStatus = 8; item.taskStatus = 8;
dbContext.Remove(wmsProductStock); dbContext.Remove(wmsProductStock);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);

@ -15,12 +15,10 @@ namespace Khd.Core.Wcs.Wcs
public class SecondFloorLine public class SecondFloorLine
{ {
private readonly IHost _host; private readonly IHost _host;
private readonly Plc.S7.Plc _plc;
int FloorNo { get; set; } int FloorNo { get; set; }
public SecondFloorLine(IHost host, Plc.S7.Plc plc, int floor) public SecondFloorLine(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
} }
@ -50,9 +48,9 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var agvGetValue = this._plc.Read(agvGetPoint.plcpointAddress); var agvGetValue = StaticData.PlcDic[2].Read(agvGetPoint.plcpointAddress);
var agvPutValue = this._plc.Read(agvPutPoint.plcpointAddress); var agvPutValue = StaticData.PlcDic[2].Read(agvPutPoint.plcpointAddress);
var rfidValue = this._plc.ReadRFID(rfidPoint.plcpointAddress); var rfidValue = StaticData.PlcDic[2].ReadRFID(rfidPoint.plcpointAddress);
if (agvGetValue != null && agvPutValue != null && rfidValue != null) if (agvGetValue != null && agvPutValue != null && rfidValue != null)
{ {
if (Convert.ToInt32(agvPutValue) == 0) if (Convert.ToInt32(agvPutValue) == 0)
@ -92,7 +90,7 @@ namespace Khd.Core.Wcs.Wcs
} }
else else
{ {
baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.emptyCount == 10 && t.equipStatus == 1); baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.emptyCount == SystemData.maxTray && t.equipStatus == 1);
if (baseEquip != null) if (baseEquip != null)
{ {
BaseEquip ThirdLineEquip = StaticData.BaseEquip.First(t => t.objid == 3); BaseEquip ThirdLineEquip = StaticData.BaseEquip.First(t => t.objid == 3);
@ -109,7 +107,7 @@ namespace Khd.Core.Wcs.Wcs
floorNo = 2, floorNo = 2,
fromFloorNo = 3, fromFloorNo = 3,
isEmpty = "1", isEmpty = "1",
qty = 10, qty = SystemData.maxTray,
taskType = 101, taskType = 101,
currPointId = baseEquip.objid, currPointId = baseEquip.objid,
currPointNo = baseEquip.equipNo, currPointNo = baseEquip.equipNo,

@ -13,14 +13,12 @@ namespace Khd.Core.Wcs.Wcs
public class SecondFloorPoint public class SecondFloorPoint
{ {
private readonly IHost _host; private readonly IHost _host;
private Plc.S7.Plc _plc;
private readonly BasePlcpoint LineRFID; private readonly BasePlcpoint LineRFID;
private readonly BasePlcpoint LineSignal; private readonly BasePlcpoint LineSignal;
int FloorNo { get; set; } int FloorNo { get; set; }
public SecondFloorPoint(IHost host, Plc.S7.Plc plc, int floor) public SecondFloorPoint(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID002"); this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID002");
this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal02"); this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal02");
@ -53,8 +51,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
//入库任务 //入库任务
var rfid = this._plc.ReadRFID(LineRFID.plcpointAddress); var rfid = StaticData.PlcDic[0].ReadRFID(LineRFID.plcpointAddress);
var isSignal = this._plc.Read(LineSignal.plcpointAddress); var isSignal = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress);
//var agvPutValue = StaticData.PlcDic[2].Read(agvPutPoint.plcpointAddress); //var agvPutValue = StaticData.PlcDic[2].Read(agvPutPoint.plcpointAddress);
var agvPutValue = ""; var agvPutValue = "";
@ -65,11 +63,11 @@ namespace Khd.Core.Wcs.Wcs
{ {
//获取条码信息 //获取条码信息
BaseEquip baseEquip = StaticData.BaseEquip.First(t => t.objid == 2); BaseEquip baseEquip = StaticData.BaseEquip.First(t => t.objid == 2);
var wcsTask = dbContext.WcsTask.OrderBy(t => t.createTime) var wcsTask = dbContext.WcsTask.Where(t => t.nextPointId == 2).OrderBy(t => t.createTime)
.FirstOrDefault(); .FirstOrDefault();
if (wcsTask != null) if (wcsTask != null)
{ {
if (wcsTask.taskStatus == 5)//入托盘入口,提升机任务是完成状态 if (wcsTask.taskStatus == 5 && (wcsTask.nextPointId == 6 || wcsTask.nextPointId == 2))//入托盘入口,提升机任务是完成状态
{ {
if (wcsTask.taskType != 99) if (wcsTask.taskType != 99)
{ {
@ -241,30 +239,61 @@ namespace Khd.Core.Wcs.Wcs
} }
else if (wcsTask.taskStatus == 8) else if (wcsTask.taskStatus == 8)
{ {
BaseEquip? endEquip = StaticData.BaseEquip.First(t => t.objid == 1); if (wcsTask.taskType == 50 && wcsTask.containerNo == rfid)
dbContext.WcsTask.Remove(wcsTask); {
WcsTask newTask = CoreMapper.Map<WcsTask>(wcsTask); BaseEquip? endEquip = StaticData.BaseEquip.First(t => t.objid == 1);
newTask.serialNo = SystemData.GetSerialNo(dbContext); dbContext.WcsTask.Remove(wcsTask);
newTask.taskStatus = 0; WcsTask newTask = CoreMapper.Map<WcsTask>(wcsTask);
newTask.objid = StaticData.SnowId.NextId(); newTask.serialNo = SystemData.GetSerialNo(dbContext);
newTask.nextPointId = tsjEquip.objid; newTask.taskStatus = 0;
newTask.nextPointNo = tsjEquip.equipNo; newTask.objid = StaticData.SnowId.NextId();
newTask.createTime = DateTime.Now; newTask.nextPointId = tsjEquip.objid;
newTask.updateTime = DateTime.Now; newTask.nextPointNo = tsjEquip.equipNo;
newTask.endPointId = endEquip.objid; newTask.createTime = DateTime.Now;
newTask.endPointNo = endEquip.equipNo; newTask.updateTime = DateTime.Now;
newTask.containerNo = rfid; newTask.endPointId = endEquip.objid;
newTask.currPointId = lineEquip.objid; newTask.endPointNo = endEquip.equipNo;
newTask.currPointNo = lineEquip.equipNo; newTask.containerNo = rfid;
newTask.useFlag = 1; newTask.currPointId = lineEquip.objid;
newTask.fromFloorNo = 2; newTask.currPointNo = lineEquip.equipNo;
newTask.floorNo = endEquip.floorNo; newTask.useFlag = 1;
dbContext.WcsTask.Add(newTask); newTask.fromFloorNo = 2;
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask); newTask.floorNo = endEquip.floorNo;
dbContext.Add(wcsTaskLog); dbContext.WcsTask.Add(newTask);
dbContext.SaveChanges(); WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
LogManager.Info("二楼接驳位生成任务出库成功,托盘号:" + rfid); dbContext.Add(wcsTaskLog);
Console.WriteLine(DateTime.Now + ":二楼接驳位生成任务出库成功,托盘号:" + rfid); dbContext.SaveChanges();
LogManager.Info("二楼接驳位生成任务出库成功,托盘号:" + rfid);
Console.WriteLine(DateTime.Now + ":二楼接驳位生成任务出库成功,托盘号:" + rfid);
}
else
{
BaseEquip? endEquip = StaticData.BaseEquip.First(t => t.objid == 1);
dbContext.WcsTask.Remove(wcsTask);
WcsTask newTask = CoreMapper.Map<WcsTask>(wcsTask);
newTask.serialNo = SystemData.GetSerialNo(dbContext);
newTask.taskStatus = 0;
newTask.objid = StaticData.SnowId.NextId();
newTask.nextPointId = tsjEquip.objid;
newTask.nextPointNo = tsjEquip.equipNo;
newTask.createTime = DateTime.Now;
newTask.updateTime = DateTime.Now;
newTask.endPointId = endEquip.objid;
newTask.endPointNo = endEquip.equipNo;
newTask.containerNo = rfid;
newTask.currPointId = lineEquip.objid;
newTask.currPointNo = lineEquip.equipNo;
newTask.useFlag = 1;
newTask.fromFloorNo = 2;
newTask.floorNo = endEquip.floorNo;
dbContext.WcsTask.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
LogManager.Info("二楼接驳位生成任务出库成功,托盘号:" + rfid);
Console.WriteLine(DateTime.Now + ":二楼接驳位生成任务出库成功,托盘号:" + rfid);
}
} }
} }
} }
@ -275,8 +304,8 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
this._plc = new Plc.S7.Plc(this._plc.CPU, this._plc.IP, this._plc.Port, this._plc.Rack, this._plc.Slot); StaticData.PlcDic[0] = new Plc.S7.Plc(StaticData.PlcDic[0].CPU, StaticData.PlcDic[0].IP, StaticData.PlcDic[0].Port, StaticData.PlcDic[0].Rack, StaticData.PlcDic[0].Slot);
this._plc.Open(); StaticData.PlcDic[0].Open();
} }
catch catch
{ {

@ -17,14 +17,12 @@ namespace Khd.Core.Wcs.Wcs
public class ThirdFloorAGV public class ThirdFloorAGV
{ {
private readonly IHost _host; private readonly IHost _host;
private readonly Plc.S7.Plc _plc;
int FloorNo { get; set; } int FloorNo { get; set; }
private readonly BasePlcpoint putTrayPoint; private readonly BasePlcpoint putTrayPoint;
private readonly BasePlcpoint getTrayPoint; private readonly BasePlcpoint getTrayPoint;
public ThirdFloorAGV(IHost host, Plc.S7.Plc plc, int floor) public ThirdFloorAGV(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
this.putTrayPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "putTray"); this.putTrayPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "putTray");
this.getTrayPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "getTray"); this.getTrayPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "getTray");
@ -55,20 +53,23 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var getTrayValue = this._plc.Read(getTrayPoint.plcpointAddress); //var getTrayValue = this._plc.Read(getTrayPoint.plcpointAddress);
if (getTrayValue != null && Convert.ToInt32(getTrayValue) == 1) //if (getTrayValue != null && Convert.ToInt32(getTrayValue) == 1)
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 31);
if (baseEquip.emptyCount == 1)
{ {
var task = dbContext.WcsTask.Where(t => t.taskType == 42 && t.useFlag == 0).FirstOrDefault(); var task = dbContext.WcsTask.Where(t => t.taskType == 42 && t.useFlag == 0).FirstOrDefault();
if (task!=null) if (task != null)
{ {
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 35); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 35);
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 31); BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 31);
BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 9); BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 9);
if (endEquip.emptyCount != (SystemData.maxTray / 2) && endEquip.emptyCount != SystemData.maxTray) //if (endEquip.emptyCount != (SystemData.maxTray / 2) && endEquip.emptyCount != SystemData.maxTray)
if (endEquip.emptyCount != SystemData.maxTray)
{ {
task.taskType = 42; task.taskType = 42;
task.useFlag = 1; task.useFlag = 1;
task.taskStatus = 1; task.taskStatus = 0;
task.isEmpty = "1"; task.isEmpty = "1";
task.qty = 1; task.qty = 1;
task.nextPointId = agvEquip.objid; task.nextPointId = agvEquip.objid;
@ -91,7 +92,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
LogManager.Error(ex); LogManager.Error(ex);
} }
Thread.Sleep(5000); Thread.Sleep(3000);
} }
} }
@ -839,7 +840,7 @@ namespace Khd.Core.Wcs.Wcs
mesBasePalletInfo.materialId = null; mesBasePalletInfo.materialId = null;
mesBasePalletInfo.materialName = null; mesBasePalletInfo.materialName = null;
mesBasePalletInfo.updateBy = "WCS"; mesBasePalletInfo.updateBy = "WCS";
mesBasePalletInfo.updateTime=DateTime.Now; mesBasePalletInfo.updateTime = DateTime.Now;
dbContext.Update(mesBasePalletInfo); dbContext.Update(mesBasePalletInfo);
BaseEquip emptyEquip = dbContext.BaseEquip.First(t => t.objid == 35); BaseEquip emptyEquip = dbContext.BaseEquip.First(t => t.objid == 35);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);

@ -15,17 +15,15 @@ namespace Khd.Core.Wcs.Wcs
public class ThirdFloorPoint public class ThirdFloorPoint
{ {
private readonly IHost _host; private readonly IHost _host;
private readonly Plc.S7.Plc _plc;
private readonly BasePlcpoint LineRFID; private readonly BasePlcpoint LineRFID;
private readonly BasePlcpoint LineSignal; private readonly BasePlcpoint LineSignal;
int FloorNo { get; set; } int FloorNo { get; set; }
public ThirdFloorPoint(IHost host, Plc.S7.Plc plc, int floor) public ThirdFloorPoint(IHost host, Plc.S7.Plc plc, int floor)
{ {
this._host = host; this._host = host;
this._plc = plc;
FloorNo = floor; FloorNo = floor;
this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID002"); this.LineRFID = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID003");
this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal02"); this.LineSignal = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal03");
} }
/// <summary> /// <summary>
/// 启动上件扫描监听 /// 启动上件扫描监听
@ -50,8 +48,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
//入库任务 //入库任务
var rfid = this._plc.ReadRFID(LineRFID.plcpointAddress); var rfid = StaticData.PlcDic[0].ReadRFID(LineRFID.plcpointAddress);
var isSignal = this._plc.Read(LineSignal.plcpointAddress); var isSignal = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress);
if (rfid != null && isSignal != null) if (rfid != null && isSignal != null)
{ {
@ -71,6 +69,8 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.instockFlag == "0") .Where(t => t.instockFlag == "0")
.Where(t => t.outstockFlag == "0") .Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1") .Where(t => t.locationStatus == "1")
.OrderByDescending(t=>t.locRow)
.ThenByDescending(t=>t.locColumn)
.ToList(); .ToList();
List<string> containerCodes = wmsBaseLocations.Where(t => t.locDeep == 1).Select(t => t.containerCode).ToList();//深库位的托盘 List<string> containerCodes = wmsBaseLocations.Where(t => t.locDeep == 1).Select(t => t.containerCode).ToList();//深库位的托盘

@ -442,7 +442,7 @@
</ControlTemplate> </ControlTemplate>
</Button.Template> </Button.Template>
</Button> </Button>
<Button Content="删除任务" Visibility="Collapsed" FontSize="25" Foreground="White" Height="50" Width="132" Click="btnDelTask_Click"> <Button Content="删除任务" FontSize="25" Foreground="White" Height="50" Width="132" Click="btnDelTask_Click">
<Button.Template > <Button.Template >
<ControlTemplate TargetType="{x:Type Button}" > <ControlTemplate TargetType="{x:Type Button}" >
<Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="4,4,4,4"> <Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="4,4,4,4">
@ -621,7 +621,8 @@
Header="创建时间" Header="创建时间"
IsReadOnly="True" /> IsReadOnly="True" />
<DataGridTemplateColumn <DataGridTemplateColumn
Width="100" Visibility="Collapsed"
Width="150"
MinWidth="10" MinWidth="10"
Header=" 操作" Header=" 操作"
IsReadOnly="True"> IsReadOnly="True">
@ -957,7 +958,7 @@
<Label Content="Label"/> <Label Content="Label"/>
</StackPanel> </StackPanel>
</TabItem> </TabItem>
<TabItem x:Name="LocationManager" Header="库存信息" Background="#213269" Style="{StaticResource DefaultItem}" Foreground="White" FontSize="25" Width="160" Height="100" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="5" > <TabItem x:Name="LocationManager" Header="库存信息" Background="#213269" Style="{StaticResource DefaultItem}" Foreground="White" FontSize="25" Width="160" Height="100" VerticalAlignment="Top" HorizontalAlignment="Center" >
<StackPanel <StackPanel
x:Name="orderControl" x:Name="orderControl"
Canvas.Left="174" Canvas.Left="174"
@ -1517,6 +1518,7 @@
Header="托盘号" Header="托盘号"
IsReadOnly="True" /> IsReadOnly="True" />
<DataGridTemplateColumn <DataGridTemplateColumn
Visibility="Collapsed"
Width="300" Width="300"
MinWidth="10" MinWidth="10"
Header=" 操作" Header=" 操作"
@ -1744,7 +1746,7 @@
<hc:Pagination x:Name="Pagination2" Grid.Row="2" MaxWidth="1500" MaxPageCount="1" Margin="0,0,0,15" PageUpdated="Pagination2_PageUpdated" IsJumpEnabled="True" HorizontalAlignment="Center" Width="339" /> <hc:Pagination x:Name="Pagination2" Grid.Row="2" MaxWidth="1500" MaxPageCount="1" Margin="0,0,0,15" PageUpdated="Pagination2_PageUpdated" IsJumpEnabled="True" HorizontalAlignment="Center" Width="339" />
</Grid> </Grid>
</TabItem> </TabItem>
<TabItem x:Name="InventoryManager" Header="盘库任务" Style="{StaticResource DefaultItem}" FontSize="25" HorizontalContentAlignment="Center" Background="#213269" VerticalContentAlignment="Center" Foreground="White" Width="160" Height="100" Margin="5"> <TabItem Visibility="Collapsed" x:Name="InventoryManager" Header="盘库任务" Style="{StaticResource DefaultItem}" FontSize="25" HorizontalContentAlignment="Center" Background="#213269" VerticalContentAlignment="Center" Foreground="White" Width="160" Height="100" Margin="5">
<Grid Height="1100" Width="1700"> <Grid Height="1100" Width="1700">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>

@ -1234,7 +1234,7 @@ namespace Khd.Core.Wpf.Form
/// <param name="e"></param> /// <param name="e"></param>
private void CheckBox_Click(object sender, RoutedEventArgs e) private void CheckBox_Click(object sender, RoutedEventArgs e)
{ {
if (sender is CheckBox checkbox && LoadMaterial0.SelectedItem is WcsTask Currentselected) if (sender is CheckBox checkbox && LoadMaterial0.SelectedItem is taskModel Currentselected)
{ {
SelectedItem[Currentselected.objid] = checkbox.IsChecked ?? false; SelectedItem[Currentselected.objid] = checkbox.IsChecked ?? false;
} }

@ -1,4 +1,5 @@
using Khd.Core.Domain.Models; using Khd.Core.Domain.Models;
using Khd.Core.Wpf.dto;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
@ -82,7 +83,7 @@ namespace Khd.Core.Wpf.myConverter
} }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
WcsTask? wcsTask = value as WcsTask; taskModel? wcsTask = value as taskModel;
if (wcsTask != null) if (wcsTask != null)
{ {
BaseEquip baseEquip = SystemData.BaseEquip.First(t => t.objid == wcsTask.nextPointId); BaseEquip baseEquip = SystemData.BaseEquip.First(t => t.objid == wcsTask.nextPointId);

Loading…
Cancel
Save