Commit dd8af787 张东亮

1

1 个父辈 0a52a015
......@@ -125,12 +125,12 @@ namespace AGVControl
Agv.Place = new Node();
Agv?.TaskRunState?.ResetInfo();
Agv.JobContext = new DeviceLibrary.bean.agv.JobContext();
LogUtil.info($"切换到手动");
LogUtil.info($"{Agv.Name} 切换到手动");
}
}
catch (Exception ex)
{
LogUtil.error($"切换到手动异常", ex);
LogUtil.error($"{Agv.Name} 切换到手动异常", ex);
}
manualTime = DateTime.Now;
//添加Init任务
......
......@@ -33,16 +33,23 @@ namespace DeviceLibrary
if (JobRunStep.IsStep(RunStep.NONE))
{
ClearLiftNodeOccupied(agv);
if (NodeManager.linesInAirShower[agv.Scope.Workshop].Contains(JobParam.SrcNode.Name))
{
JobParam.CrossDoor.CurNode = JobParam.SrcNode;
JobParam.CrossDoor.NextNode = JobParam.CurTargetNode;
JobParam.CrossDoor.IsIn = false;
JobParam.CrossDoor.IsAir = true;
GenJobCallBack(this.GetType(), RunStep.CHARGE_OUTAIR, JobParam);
return new CrossDoorJob(JobParam);
}
else
//if (NodeManager.linesInAirShower.ContainsKey(agv.Scope.Workshop))
//{
// if (NodeManager.linesInAirShower[agv.Scope.Workshop].Contains(JobParam.SrcNode.Name))
// {
// JobParam.CrossDoor.CurNode = JobParam.SrcNode;
// JobParam.CrossDoor.NextNode = JobParam.CurTargetNode;
// JobParam.CrossDoor.IsIn = false;
// JobParam.CrossDoor.IsAir = true;
// GenJobCallBack(this.GetType(), RunStep.CHARGE_OUTAIR, JobParam);
// return new CrossDoorJob(JobParam);
// }
// else
// {
// JobRunStep.ToNextStep(RunStep.CHARGE_OUTAIR);
// }
//}
//else
{
JobRunStep.ToNextStep(RunStep.CHARGE_OUTAIR);
}
......
......@@ -706,7 +706,14 @@ namespace DeviceLibrary
{
if (missionInfo == null) return false;
if (missionInfo.state >= MissionState.返回到达电梯内 && missionInfo.state <= MissionState.返回电梯运行)
{
if(missionInfo.projectType == ProjectType.钢网入库 || missionInfo.projectType == ProjectType.钢网领用)
{
return false;
}
return true;
}
if (missionInfo.state == MissionState.等待成品回收)
return true;
return false;
......
......@@ -369,7 +369,15 @@ namespace DeviceLibrary.bean.job
}
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_21_WaitDoorOpen))
{
if (lift.LiftContext.IsDoorOpen(JobParam.SrcNode.Name, JobParam.GetMissionInfo().sourceFloor, agv))
MissionInfo missionInfo = MissionManager.GetMission(JobParam.GetMissionInfo().missionId);
if (missionInfo == null)
{
runInfo = $"到达{JobParam.SrcNode.AliceName},未找到任务信息{JobParam.GetMissionInfo().missionId},无法请求使用电梯";
JobRunStep.Msg = runInfo;
return job;
}
if (lift.LiftContext.IsDoorOpen(JobParam.SrcNode.Name, missionInfo.sourceFloor, agv))
{
ChargePileManager.StopCharge(agv);
JobRunStep.ToNextStep(RunStep.Steel_LiftToLine_22_CheckLiftStatus);
......@@ -378,7 +386,7 @@ namespace DeviceLibrary.bean.job
//上报位置
System.Threading.Thread.Sleep(1000);
}
else if (JobRunStep.IsTimeOut(20) && !lift.LiftContext.CheckIfRequestOk(JobParam.SrcNode.Name, JobParam.GetMissionInfo()))
else if (JobRunStep.IsTimeOut(20) && !lift.LiftContext.CheckIfRequestOk(JobParam.SrcNode.Name, missionInfo))
{
if (agv?.Battery <= 10 && !agv.IsInCharge)
{
......@@ -396,7 +404,8 @@ namespace DeviceLibrary.bean.job
}
JobRunStep.ToNextStep(RunStep.Steel_LiftToLine_21_WaitDoorOpen);
//请求电梯
lift.LiftContext.Request(JobParam.GetMissionInfo(), agv);
lift.LiftContext.Request(missionInfo, agv);
System.Threading.Thread.Sleep(1000);
//上报运输状态
//manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
// service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.SrcNode.Name, service.model.TransportStatus.ModeStr.auto,
......@@ -405,15 +414,23 @@ namespace DeviceLibrary.bean.job
}
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_22_CheckLiftStatus))
{
if (lift.LiftContext.IsDoorOpen(JobParam.SrcNode.Name, JobParam.GetMissionInfo().sourceFloor, agv))
MissionInfo missionInfo = MissionManager.GetMission(JobParam.GetMissionInfo().missionId);
if (missionInfo == null)
{
runInfo = $"到达{JobParam.SrcNode.AliceName},未找到任务信息{JobParam.GetMissionInfo().missionId},无法请求使用电梯";
JobRunStep.Msg = runInfo;
return job;
}
if (lift.LiftContext.IsDoorOpen(JobParam.SrcNode.Name, missionInfo.sourceFloor, agv))
{
ChargePileManager.StopCharge(agv);
if (lift.LiftContext.HasShelfNeedLeave(JobParam.SrcNode.Name, agv.Client, out JobParam.LiftStatus))
{
MissionInfo missionInfo = MissionManager.GetMission(JobParam.LiftStatus?.missionId ?? "");
if (missionInfo != null)
MissionInfo missionInfo1 = MissionManager.GetMission(JobParam.LiftStatus?.missionId ?? "");
if (missionInfo1 != null)
{
MissionManager.SetMissionOccupied(missionInfo, agv);
MissionManager.SetMissionOccupied(missionInfo1, agv);
JobParam.SetMissionInfo(missionInfo);
JobParam.CurTargetNode = JobParam.SrcNode;
job = new SwitchShelfJob(JobParam);
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!