master
1 year ago
parent 07762af512
commit 4d04a4e706

@ -77,45 +77,45 @@ namespace Khd.Core.Wcs
FirstFloor firstFloor = new(_host, StaticData.PlcDic[0]);
firstFloor.StartPoint();
//二层接驳位
var SecondBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 1).First();
SecondFloorPoint secondFloorPoint = new(_host, StaticData.PlcDic[0], SecondBaseFloorEquip.floorNo.Value);
secondFloorPoint.StartPoint();
////二层接驳位
//var SecondBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 1).First();
//SecondFloorPoint secondFloorPoint = new(_host, StaticData.PlcDic[0], SecondBaseFloorEquip.floorNo.Value);
//secondFloorPoint.StartPoint();
//二层AGV
var SecondFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 4).First();
SecondFloorAGV secondFloorAGV = new(_host, StaticData.PlcDic[0], SecondFloorAgvEquip.floorNo.Value);
secondFloorAGV.StartPoint();
////二层AGV
//var SecondFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 4).First();
//SecondFloorAGV secondFloorAGV = new(_host, StaticData.PlcDic[0], SecondFloorAgvEquip.floorNo.Value);
//secondFloorAGV.StartPoint();
////二楼线体
//var SecondFloorLineEquip = StaticData.BaseEquip.Where(t => t.floorNo == 2 && t.equipType == 17).First();
//SecondFloorLine secondFloorLine = new(_host, StaticData.PlcDic[2], SecondFloorLineEquip.floorNo.Value);
//secondFloorLine.StartPoint();
////三层接驳位
//var ThirdBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 1).First();
//ThirdFloorPoint thirdFloorPoint = new(_host, StaticData.PlcDic[0], ThirdBaseFloorEquip.floorNo.Value);
//thirdFloorPoint.StartPoint();
//三层接驳位
var ThirdBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 1).First();
ThirdFloorPoint thirdFloorPoint = new(_host, StaticData.PlcDic[0], ThirdBaseFloorEquip.floorNo.Value);
thirdFloorPoint.StartPoint();
////三层AGV
//var ThirdFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 4).First();
//ThirdFloorAGV thirdFloorAGV = new(_host, StaticData.PlcDic[2], ThirdFloorAgvEquip.floorNo.Value);
//thirdFloorAGV.StartPoint();
//三层AGV
var ThirdFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 4).First();
ThirdFloorAGV thirdFloorAGV = new(_host, StaticData.PlcDic[2], ThirdFloorAgvEquip.floorNo.Value);
thirdFloorAGV.StartPoint();
////五层接驳位
//var FifthBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 1).First();
//FiveFloorPoint fifthFloorPoint = new(_host, StaticData.PlcDic[0], FifthBaseFloorEquip.floorNo.Value);
//fifthFloorPoint.StartPoint();
//五层接驳位
var FifthBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 1).First();
FiveFloorPoint fifthFloorPoint = new(_host, StaticData.PlcDic[0], FifthBaseFloorEquip.floorNo.Value);
fifthFloorPoint.StartPoint();
////五层CTU
//var FiveFloorCTUEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 6).First();
//FiveFloorCTU fiveFloorCTU = new(_host, StaticData.PlcDic[1], FiveFloorCTUEquip.floorNo.Value);
//fiveFloorCTU.StartPoint();
////五层AGV
//var FifthFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 5).First();
//FiveFloorAGV fifthFloorAGV = new(_host, StaticData.PlcDic[0], FifthFloorAgvEquip.floorNo.Value);
//fifthFloorAGV.StartPoint();
//五层AGV
var FifthFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 5).First();
FiveFloorAGV fifthFloorAGV = new(_host, StaticData.PlcDic[0], FifthFloorAgvEquip.floorNo.Value);
fifthFloorAGV.StartPoint();
//背负式Agv
//var FifthFloorBearAgvEquip = StaticData.BaseEquip.Where(t => t.objid == 28).First();

@ -1783,13 +1783,13 @@ namespace Khd.Core.Wcs.Wcs
if (location.locDeep == 1)
{
int? row = 0;
if (location.locRow % 2 == 1)
if (location.locRow % 2 == 1)//五楼原材料与其他的深浅库位相反
{
row = location.locRow + 1;
row = location.locRow - 1;
}
else
{
row = location.locRow - 1;
row = location.locRow + 1;
}
var lowLocationBill = bill.Where(t => t.a.locRow == row).Where(t => t.a.locColumn == location.locColumn).Where(t => t.a.warehouseId == location.warehouseId).FirstOrDefault();
if (lowLocationBill != null)

@ -521,6 +521,8 @@ namespace Khd.Core.Wcs.Wcs
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 + "楼入库指令");
LogManager.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;
@ -535,6 +537,8 @@ namespace Khd.Core.Wcs.Wcs
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 + "楼指令");
LogManager.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;
@ -557,6 +561,8 @@ namespace Khd.Core.Wcs.Wcs
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 + "楼入库指令");
LogManager.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();
@ -572,6 +578,8 @@ namespace Khd.Core.Wcs.Wcs
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 + "楼目的地指令");
LogManager.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();
@ -586,22 +594,41 @@ namespace Khd.Core.Wcs.Wcs
var linesignal = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == $"linesignal0{wcsTask.floorNo}").plcpointAddress);
if (linesignal != null && Convert.ToInt32(linesignal) == 0)
{
BasePlcpoint clearPoint = StaticData.BasePlcpointList.First(t => t.equipmentNo == $"clear0{wcsTask.floorNo}");
var clearValue = StaticData.PlcDic[0].Read(clearPoint.plcpointAddress);
if (clearPoint != null && Convert.ToInt32(clearPoint.plcpointAddress) == 1)
{
Console.WriteLine(DateTime.Now + ":提升机下发报警消除指令");
LogManager.Info("提升机下发报警消除指令");
StaticData.PlcDic[0].WriteToPoint(clearPoint.plcpointAddress, "0", clearPoint.plcpointLength.ToString());
}
wcsTask.taskStatus = 4;
wcsTask.updateBy = "提升机线程";
wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行完成";
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 + "楼出库指令");
LogManager.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();
}
else
{
BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.equipmentNo == $"clear0{wcsTask.floorNo}");
StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());
BasePlcpoint clearPoint = StaticData.BasePlcpointList.First(t => t.equipmentNo == $"clear0{wcsTask.floorNo}");
var clearValue = StaticData.PlcDic[0].Read(clearPoint.plcpointAddress);
if (clearPoint != null && Convert.ToInt32(clearPoint.plcpointAddress) == 0)
{
StaticData.PlcDic[0].WriteToPoint(clearPoint.plcpointAddress, "1", clearPoint.plcpointLength.ToString());
}
}
}
else
{
Console.WriteLine(DateTime.Now + ":一楼托盘库有任务正在执行,等待任务执行完成");
LogManager.Info("一楼托盘库有任务正在执行,等待任务执行完成");
}
}
else
{
@ -614,6 +641,8 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.remark = "提升机任务执行完成";
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 + "楼出库指令");
LogManager.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();
@ -635,6 +664,8 @@ namespace Khd.Core.Wcs.Wcs
wcsTask.updateTime = DateTime.Now;
wcsTask.remark = "提升机任务执行完成";
lineEquip.equipStatus = 0;
Console.WriteLine(DateTime.Now + ":提升机任务完成" + wcsTask.fromFloorNo + "---" + wcsTask.floorNo + "楼指令");
LogManager.Info("提升机任务完成" + wcsTask.fromFloorNo + "---" + wcsTask.floorNo + "楼指令");
dbContext.Update(lineEquip);
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 = "提升机任务执行完成" });

@ -2,6 +2,7 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools;
using Masuit.Tools.Logging;
@ -121,6 +122,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
item.taskStatus = 1;
@ -183,6 +185,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
item.taskStatus = 1;
@ -242,6 +245,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
item.taskStatus = 1;
@ -301,6 +305,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
item.taskStatus = 1;
@ -361,6 +366,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
item.taskStatus = 1;
@ -420,6 +426,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
item.taskStatus = 1;
@ -479,6 +486,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv下发任务成功" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
item.taskStatus = 1;
@ -533,6 +541,7 @@ namespace Khd.Core.Wcs.Wcs
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("五楼Agv下发继续任务成功" + message);
Console.WriteLine(DateTime.Now + ":五楼Agv继续任务" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
wcsCmd.cmdStatus = 4;
dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd() { cmdStatus = 4 });
dbContext.Update(wcsCmd);
@ -543,7 +552,6 @@ namespace Khd.Core.Wcs.Wcs
}
else if (wcsCmd.cmdStatus == 5)
{
LogManager.Info("五楼叉车线程完成任务" + wcsCmd.objid);
Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + wcsCmd.currPointNo + "," + wcsCmd.nextPointNo);
LogManager.Info("五楼Agv完成任务成功" + wcsCmd.ToJsonString());
if (item.taskType == 66)//移库
@ -902,6 +910,24 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}
finally

@ -271,8 +271,14 @@ namespace Khd.Core.Wcs.Wcs
{
try
{
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);
StaticData.PlcDic[1].Open();
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
@ -727,8 +733,14 @@ namespace Khd.Core.Wcs.Wcs
{
try
{
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);
StaticData.PlcDic[1].Open();
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{

@ -1,6 +1,7 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools.Logging;
using Microsoft.Extensions.DependencyInjection;
@ -82,8 +83,6 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.outstockFlag == "0")
.Where(t => t.warehouseId == 511)
.Where(t => t.locationStatus == "1")
//.Where(t => t.locationStatus == "1")
//.Where(t => string.IsNullOrEmpty(t.containerCode))
.ToList();
if (wmsBaseLocations.Count > 0)
{
@ -213,14 +212,23 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
try
{
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);
StaticData.PlcDic[0].Open();
}
catch
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}

@ -1,5 +1,6 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools.Logging;
using Microsoft.Extensions.DependencyInjection;
@ -112,6 +113,24 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}
finally

@ -325,18 +325,18 @@ namespace Khd.Core.Wcs.Wcs
{
reqCode = wcsCmd.objid.ToString(),
positionCodePath = new List<Position>
{
new ()
{
positionCode=wcsCmd.currPointNo,
type="00"
new ()
{
positionCode=wcsCmd.currPointNo,
type="00"
},
new ()
{
positionCode=wcsCmd.nextPointNo,
type="00"
}
},
new ()
{
positionCode=wcsCmd.nextPointNo,
type="00"
}
},
taskTyp = baseDictionary.dicValue,
ctnrTyp = "2",
};
@ -345,7 +345,7 @@ namespace Khd.Core.Wcs.Wcs
var reponseMessage = JsonConvert.DeserializeObject<ReponseMessage>(result);
if (reponseMessage != null && reponseMessage.message == "成功")
{
LogManager.Info("二楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message);
LogManager.Info("二楼AGV线程下发任务" + wcsCmd.ToJsonString() + "\n" + message);
Console.WriteLine(DateTime.Now + ":二楼AGV线程下发任务" + item.currPointId + "," + item.endPointNo);
wcsCmd.taskCode = reponseMessage.data;
wcsCmd.cmdStatus = 1;
@ -1050,7 +1050,24 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}
finally

@ -1,6 +1,7 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools.Logging;
using Microsoft.Extensions.DependencyInjection;
@ -256,6 +257,24 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}
finally

@ -1,6 +1,7 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools.Logging;
using Microsoft.Extensions.DependencyInjection;
@ -301,15 +302,23 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
try
{
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);
StaticData.PlcDic[0].Open();
}
catch
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}

@ -2,6 +2,7 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools.Logging;
using Microsoft.Extensions.DependencyInjection;
@ -90,6 +91,24 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}
Thread.Sleep(3000);
@ -906,6 +925,24 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}
finally

@ -1,6 +1,7 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global;
using Masuit.Tools.Logging;
using Microsoft.Extensions.DependencyInjection;
@ -69,8 +70,8 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.instockFlag == "0")
.Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1")
.OrderByDescending(t=>t.locRow)
.ThenByDescending(t=>t.locColumn)
.OrderByDescending(t => t.locRow)
.ThenByDescending(t => t.locColumn)
.ToList();
List<string> containerCodes = wmsBaseLocations.Where(t => t.locDeep == 1).Select(t => t.containerCode).ToList();//深库位的托盘
@ -111,16 +112,7 @@ namespace Khd.Core.Wcs.Wcs
newTask.nextPointNo = AgvEquip.equipNo;
newTask.endPointId = wmsBaseLocation.locationId;
newTask.endPointNo = wmsBaseLocation.locationCode;
if (wmsBaseLocation.warehouseId == 311)
{
newTask.taskType = 39;
}
else
{
Console.WriteLine("查找入库库位失败");
Thread.Sleep(1000);
continue;
}
newTask.taskType = 39;
newTask.useFlag = 1;
wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "2";
@ -161,6 +153,24 @@ namespace Khd.Core.Wcs.Wcs
}
catch (Exception ex)
{
if (ex is PlcException)
{
try
{
foreach (var item in StaticData.PlcDic)
{
if (item.Value.IP == ex.Message)
{
StaticData.PlcDic[item.Key] = new Plc.S7.Plc(item.Value.CPU, item.Value.IP, item.Value.Port, item.Value.Rack, item.Value.Slot);
StaticData.PlcDic[item.Key].Open();
}
}
}
catch
{
}
}
LogManager.Error(ex);
}
finally

Loading…
Cancel
Save