|
|
|
@ -6,6 +6,7 @@ using Khd.Core.Plc.S7;
|
|
|
|
using Khd.Core.Wcs.Global;
|
|
|
|
using Khd.Core.Wcs.Global;
|
|
|
|
using Masuit.Tools;
|
|
|
|
using Masuit.Tools;
|
|
|
|
using Masuit.Tools.Logging;
|
|
|
|
using Masuit.Tools.Logging;
|
|
|
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
using Microsoft.IdentityModel.Tokens;
|
|
|
|
using Microsoft.IdentityModel.Tokens;
|
|
|
|
@ -252,14 +253,15 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
{
|
|
|
|
{
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
FiveAgvStatusLogic();
|
|
|
|
|
|
|
|
SecondAgvLogic();
|
|
|
|
|
|
|
|
ThirdAgvLogic();
|
|
|
|
|
|
|
|
SendTrayMessage();
|
|
|
|
HositerLogic();
|
|
|
|
HositerLogic();
|
|
|
|
CtuLineLogic();
|
|
|
|
CtuLineLogic();
|
|
|
|
ThirdAgvLogic();
|
|
|
|
|
|
|
|
FiveAgvLogic();
|
|
|
|
FiveAgvLogic();
|
|
|
|
FiveBearAgvLogic();
|
|
|
|
FiveBearAgvLogic();
|
|
|
|
CtuCmdLogic();
|
|
|
|
CtuCmdLogic();
|
|
|
|
SecondAgvLogic();
|
|
|
|
|
|
|
|
SendTrayMessage();
|
|
|
|
|
|
|
|
UpdatePlcPointValue();
|
|
|
|
UpdatePlcPointValue();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception ex)
|
|
|
|
catch (Exception ex)
|
|
|
|
@ -277,6 +279,40 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void FiveAgvStatusLogic()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
using var scope = host.Services.CreateScope();
|
|
|
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
|
|
|
var baseEquip = StaticData.BaseEquip.First(t => t.objid == 10);
|
|
|
|
|
|
|
|
var data = new
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
reqCode = StaticData.SnowId.NextId(),
|
|
|
|
|
|
|
|
mapCode = "EE"
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms-dps/rest/queryAgvStatus", data.ToJsonString());
|
|
|
|
|
|
|
|
var reponse = JsonConvert.DeserializeObject<AgvStatusDto>(result);
|
|
|
|
|
|
|
|
if (reponse != null && reponse.code == "0")
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var AgvCardStatus = reponse.data.First(t => t.RobotCode == "2034");
|
|
|
|
|
|
|
|
AgvCardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(AgvCardStatus);
|
|
|
|
|
|
|
|
var BearCardStatus = reponse.data.First(t => t.RobotCode == "6011");
|
|
|
|
|
|
|
|
BearCardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(BearCardStatus);
|
|
|
|
|
|
|
|
var CtuCardStatus = reponse.data.First(t => t.RobotCode == "8161");
|
|
|
|
|
|
|
|
CtuCardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(CtuCardStatus);
|
|
|
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SendTrayMessage()
|
|
|
|
private void SendTrayMessage()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
using var scope = host.Services.CreateScope();
|
|
|
|
using var scope = host.Services.CreateScope();
|
|
|
|
@ -334,30 +370,37 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
/// <param name="dbContext"></param>
|
|
|
|
/// <param name="dbContext"></param>
|
|
|
|
private void ThirdAgvLogic()
|
|
|
|
private void ThirdAgvLogic()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
using var scope = host.Services.CreateScope();
|
|
|
|
try
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
|
|
|
var baseEquip = StaticData.BaseEquip.First(t => t.objid == 9);
|
|
|
|
|
|
|
|
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
|
|
|
|
|
|
|
|
var basePlcs = StaticData.basePlcs.Where(t => t.Station == "3楼AGV").ToList();
|
|
|
|
|
|
|
|
var data = new
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
reqCode = StaticData.SnowId.NextId(),
|
|
|
|
using var scope = host.Services.CreateScope();
|
|
|
|
mapCode = "BB"
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
};
|
|
|
|
var baseEquip = StaticData.BaseEquip.First(t => t.objid == 9);
|
|
|
|
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms-dps/rest/queryAgvStatus", data.ToJsonString());
|
|
|
|
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
|
|
|
|
var reponse = JsonConvert.DeserializeObject<AgvStatusDto>(result);
|
|
|
|
var basePlcs = StaticData.basePlcs.Where(t => t.Station == "3楼AGV").ToList();
|
|
|
|
if (reponse != null && reponse.code == "0")
|
|
|
|
var data = new
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
reqCode = StaticData.SnowId.NextId(),
|
|
|
|
|
|
|
|
mapCode = "BB"
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms-dps/rest/queryAgvStatus", data.ToJsonString());
|
|
|
|
|
|
|
|
var reponse = JsonConvert.DeserializeObject<AgvStatusDto>(result);
|
|
|
|
|
|
|
|
if (reponse != null && reponse.code == "0")
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var cardStatus = reponse.data.First(t => t.RobotCode == "2032");
|
|
|
|
|
|
|
|
cardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(cardStatus);
|
|
|
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
var quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
|
|
|
|
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
|
|
|
|
var Ylc = basePlcs.First(t => t.Name.Contains('Y'));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosY.ToString(), XPlc.type);
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var cardStatus = reponse.data.First(t => t.RobotCode == "2032");
|
|
|
|
|
|
|
|
cardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(cardStatus);
|
|
|
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
var quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
|
|
|
|
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
|
|
|
|
var Ylc = basePlcs.First(t => t.Name.Contains('Y'));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosY.ToString(), XPlc.type);
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -367,30 +410,37 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
/// <param name="dbContext"></param>
|
|
|
|
/// <param name="dbContext"></param>
|
|
|
|
private void SecondAgvLogic()
|
|
|
|
private void SecondAgvLogic()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
using var scope = host.Services.CreateScope();
|
|
|
|
try
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
|
|
|
var baseEquip = StaticData.BaseEquip.First(t => t.objid == 8);
|
|
|
|
|
|
|
|
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
|
|
|
|
|
|
|
|
var basePlcs = StaticData.basePlcs.Where(t => t.Station == "2楼AGV").ToList();
|
|
|
|
|
|
|
|
var data = new
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
reqCode = StaticData.SnowId.NextId(),
|
|
|
|
using var scope = host.Services.CreateScope();
|
|
|
|
mapCode = "CC"
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
};
|
|
|
|
var baseEquip = StaticData.BaseEquip.First(t => t.objid == 8);
|
|
|
|
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms-dps/rest/queryAgvStatus", data.ToJsonString());
|
|
|
|
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
|
|
|
|
var reponse = JsonConvert.DeserializeObject<AgvStatusDto>(result);
|
|
|
|
var basePlcs = StaticData.basePlcs.Where(t => t.Station == "2楼AGV").ToList();
|
|
|
|
if (reponse != null && reponse.code == "0")
|
|
|
|
var data = new
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
reqCode = StaticData.SnowId.NextId(),
|
|
|
|
|
|
|
|
mapCode = "CC"
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms-dps/rest/queryAgvStatus", data.ToJsonString());
|
|
|
|
|
|
|
|
var reponse = JsonConvert.DeserializeObject<AgvStatusDto>(result);
|
|
|
|
|
|
|
|
if (reponse != null && reponse.code == "0")
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var cardStatus = reponse.data.First(t => t.RobotCode == "2033");
|
|
|
|
|
|
|
|
cardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(cardStatus);
|
|
|
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
var quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
|
|
|
|
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
|
|
|
|
var Ylc = basePlcs.First(t => t.Name.Contains('Y'));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var cardStatus = reponse.data.First(t => t.RobotCode == "2033");
|
|
|
|
|
|
|
|
cardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(cardStatus);
|
|
|
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
var quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
|
|
|
|
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
|
|
|
|
var Ylc = basePlcs.First(t => t.Name.Contains('Y'));
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
|
|
|
|
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -437,8 +487,6 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
if (reponse != null && reponse.code == "0")
|
|
|
|
if (reponse != null && reponse.code == "0")
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var cardStatus = reponse.data.First(t => t.RobotCode == "2034");
|
|
|
|
var cardStatus = reponse.data.First(t => t.RobotCode == "2034");
|
|
|
|
cardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
dbContext.Update(cardStatus);
|
|
|
|
|
|
|
|
var quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
var quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
@ -449,27 +497,22 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
|
|
|
|
|
|
|
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 = reponse.data.First(t => t.RobotCode == "6011");
|
|
|
|
cardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
XPlc = basePlcs.First(t => t.Name.Contains('X'));
|
|
|
|
Ylc = basePlcs.First(t => t.Name.Contains('Y'));
|
|
|
|
Ylc = basePlcs.First(t => t.Name.Contains('Y'));
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
dbContext.Update(cardStatus);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
basePlcs = StaticData.basePlcs.Where(t => t.Station == "5楼CTU").ToList();
|
|
|
|
basePlcs = StaticData.basePlcs.Where(t => t.Station == "5楼CTU").ToList();
|
|
|
|
cardStatus = reponse.data.First(t => t.RobotCode == "8161");
|
|
|
|
cardStatus = reponse.data.First(t => t.RobotCode == "8161");
|
|
|
|
cardStatus.DateNow = DateTime.Now;
|
|
|
|
|
|
|
|
quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
quantityPlc = basePlcs.First(t => t.Name.Contains("电量"));
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
this.Plc220.WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
|
|
|
|
XPlc = basePlcs.First(t => t.Name.Contains("X"));
|
|
|
|
XPlc = basePlcs.First(t => t.Name.Contains("X"));
|
|
|
|
Ylc = basePlcs.First(t => t.Name.Contains("Y"));
|
|
|
|
Ylc = basePlcs.First(t => t.Name.Contains("Y"));
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
|
|
|
|
this.Plc220.WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
|
|
|
|
dbContext.Update(cardStatus);
|
|
|
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|