|
|
|
@ -24,13 +24,15 @@ namespace SlnMesnac.WCS.WCS
|
|
|
|
private List<string> agvEquipNos = new List<string>() { "AGV01", "AGV02", "AGV03" };
|
|
|
|
private List<string> agvEquipNos = new List<string>() { "AGV01", "AGV02", "AGV03" };
|
|
|
|
|
|
|
|
|
|
|
|
//3#车间上料点plc
|
|
|
|
//3#车间上料点plc
|
|
|
|
private readonly PlcAbsractFactory workShop3Plc;
|
|
|
|
public readonly PlcAbsractFactory workShop3Plc;
|
|
|
|
|
|
|
|
|
|
|
|
//2#计量室相关点位
|
|
|
|
//2#计量室相关点位
|
|
|
|
private readonly PlcAbsractFactory workShop2Plc;
|
|
|
|
private readonly PlcAbsractFactory workShop2Plc;
|
|
|
|
|
|
|
|
|
|
|
|
public readonly WcsBaseEquip baseEquip;
|
|
|
|
public readonly WcsBaseEquip baseEquip;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<WcsAgvStatus> agvStatusList = new List<WcsAgvStatus>();
|
|
|
|
|
|
|
|
|
|
|
|
public BearAgv(IServiceProvider serviceProvider) : base(serviceProvider)
|
|
|
|
public BearAgv(IServiceProvider serviceProvider) : base(serviceProvider)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
sqlSugarClient = serviceProvider.GetRequiredService<ISqlSugarClient>();
|
|
|
|
sqlSugarClient = serviceProvider.GetRequiredService<ISqlSugarClient>();
|
|
|
|
@ -590,6 +592,7 @@ namespace SlnMesnac.WCS.WCS
|
|
|
|
if (task.TaskStatus == 0)
|
|
|
|
if (task.TaskStatus == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
TaskStatus0Handle(task);
|
|
|
|
TaskStatus0Handle(task);
|
|
|
|
|
|
|
|
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出一个空托盘信号"), true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (task.TaskStatus == 2) //agv到达接驳位里面,等待料箱上agv
|
|
|
|
else if (task.TaskStatus == 2) //agv到达接驳位里面,等待料箱上agv
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -599,6 +602,11 @@ namespace SlnMesnac.WCS.WCS
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!workShop2Plc.readBoolByAddress("DB100.DBX38.0"))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
workShop2Plc.writeBoolByAddress("DB100.DBX38.0", true);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool goOutFlag = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#缓存空进AGV任务反馈"));
|
|
|
|
bool goOutFlag = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#缓存空进AGV任务反馈"));
|
|
|
|
bool outFlag = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#接驳位到位信号"));
|
|
|
|
bool outFlag = workShop2Plc.readBoolByAddress(StaticData.GetPlcAddress("2#接驳位到位信号"));
|
|
|
|
if (!outFlag && !goOutFlag)
|
|
|
|
if (!outFlag && !goOutFlag)
|
|
|
|
@ -616,6 +624,8 @@ namespace SlnMesnac.WCS.WCS
|
|
|
|
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出接驳位信号"), false);
|
|
|
|
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出接驳位信号"), false);
|
|
|
|
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出一个空托盘信号"), false);
|
|
|
|
workShop2Plc.writeBoolByAddress(StaticData.GetPlcAddress("2#出一个空托盘信号"), false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
workShop2Plc.writeBoolByAddress("DB100.DBX38.0", false);
|
|
|
|
|
|
|
|
|
|
|
|
//判断二次生成补空箱任务
|
|
|
|
//判断二次生成补空箱任务
|
|
|
|
Thread.Sleep(500);
|
|
|
|
Thread.Sleep(500);
|
|
|
|
CreateSecondSuppleSmallPallet();
|
|
|
|
CreateSecondSuppleSmallPallet();
|
|
|
|
@ -663,7 +673,7 @@ namespace SlnMesnac.WCS.WCS
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (busyFlag == 0)
|
|
|
|
if (busyFlag == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
busyFlag = workShop3Plc.readInt16ByAddress(StaticData.GetPlcAddress("3#线体忙碌状态"));
|
|
|
|
busyFlag = workShop3Plc.readInt16ByAddress(StaticData.GetPlcAddress("3#线体忙碌状态"));
|
|
|
|
if (busyFlag == 0)
|
|
|
|
if (busyFlag == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -1275,6 +1285,9 @@ namespace SlnMesnac.WCS.WCS
|
|
|
|
{
|
|
|
|
{
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
if (workShop3Plc == null || !workShop3Plc.IsConnected || workShop2Plc == null || !workShop2Plc.IsConnected)
|
|
|
|
if (workShop3Plc == null || !workShop3Plc.IsConnected || workShop2Plc == null || !workShop2Plc.IsConnected)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|