Commit dd8af787 张东亮

1

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