Commit c3d83b63 张东亮

切换完料架后无占用agv问题

1 个父辈 9d3930d7
......@@ -205,29 +205,6 @@ namespace DeviceLibrary.bean.job
{
MissionManager.SetMissionOccupied(JobParam.GetMissionInfo().missionId, agv);
job = new SwitchShelfJob(JobParam);
//service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(liftStatus.missionId);
//if (IsBackShelf(missionInfo))
//{
// JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_12_ToTemp1);
// SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
// runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有料车,去临时点1的卸料点,准备卸下车上料车";//
// AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.Temp1}_{SettingString.TakeShelfOff}");
// if (missionInfo != null)
// {
// //任务状态变更
// MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.返回电梯到达, out string msg);
// }
// JobRunStep.Msg = runInfo;
//}
//else
//{
// JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_12_ToStandby);
// // SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
// runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车,去待机点等待电梯空闲";//
// AllocateStandbyTask(agv);
// JobRunStep.Msg = runInfo;
//}
}
else //if (!TargetIsOccupied(agv, JobParam.CurTargetNode.Name))
{
......@@ -313,14 +290,6 @@ namespace DeviceLibrary.bean.job
runInfo = $"到达{JobParam.CurTargetNode.AliceName}的临时点1,将车上料车卸下";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{SettingString.TakeShelfOff}");
//JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_08_CheckC1Status);
////上报状态
//runInfo = $"在{JobParam.CurTargetNode.AliceName}临时点请求电梯并等待开门";
//JobRunStep.Msg = runInfo;
////开始请求电梯
//lift.LiftContext.Request(JobParam.GetMissionInfo(), agv, true, true);
}
}
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_13_TakeShelfOffAtTemp1))
......@@ -351,7 +320,6 @@ namespace DeviceLibrary.bean.job
runInfo = $"到达{JobParam.CurTargetNode.AliceName}的取料点,准备拾取料车";
JobRunStep.Msg = runInfo;
PutLiftShelfOn(agv, JobParam.CurTargetNode.Name);
//AllocateTask(agv, $"{SettingString.PutShelfOn}_{JobParam.CurTargetNode.Name}");
}
}
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_16_PutShelfOn))
......@@ -368,7 +336,7 @@ namespace DeviceLibrary.bean.job
{
if (agv.TaskRunState.CheckTaskFinished(agv))
{
if (service.model.MissionInfo.IsFinishedProdcut(MissionManager.GetMission(JobParam.LiftStatus.missionId)))//电梯里的是成品入库料
//电梯里的是成品入库料
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_20_01_ToTemp2);
runInfo = $"离开{JobParam.CurTargetNode.AliceName}完成,去临时点2的放料点";
......@@ -381,140 +349,9 @@ namespace DeviceLibrary.bean.job
AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.Temp2}_{SettingString.TakeShelfOff}");
JobRunStep.Msg = runInfo;
}
else
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_18_CloseDoor);
ClearLiftNodeOccupied(agv);
//AGV离开
bool rtn = lift.LiftContext.AGVLeave(JobParam.CurTargetNode.Name, agv, false);
runInfo = $"离开{JobParam.CurTargetNode.AliceName}完成,发送离开信号:{rtn}";
service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(JobParam.LiftStatus.missionId);
if (missionInfo != null)
{
//任务状态变更
MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.返回离开电梯, out string msg);
}
JobRunStep.Msg = runInfo;
}
}
}
#region 送往库房的料车
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_18_CloseDoor))
{
if (lift.LiftContext.CheckAgvLeaveSig(JobParam.CurTargetNode.Name))
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_19_01_ToStore);
runInfo = $"{JobParam.CurTargetNode.AliceName}关门完成,将料车送到{JobParam.LiftStatus.destinationPoint}的放料点";
service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(JobParam.LiftStatus.missionId);
if (missionInfo != null)
{
//任务状态变更
MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.返回起始地, out string msg);
}
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{JobParam.LiftStatus.destinationPoint}_{SettingString.TakeShelfOff}");
}
else if (JobRunStep.IsTimeOut(0.5, out double val))
{
//AGV离开
lift.LiftContext.AGVLeave(JobParam.CurTargetNode.Name, agv,false);
runInfo = $"{JobParam.CurTargetNode.AliceName}离开信号超时重发";
JobRunStep.Msg = runInfo;
System.Threading.Thread.Sleep(3000);
}
}
#region 库房的料车
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_19_01_ToStore))
{
if (agv.TaskRunState.CheckTaskFinished(agv))
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_19_02_TakeShelfOff);
runInfo = $"到达{JobParam.LiftStatus.destinationPoint}的放料点,准备卸下";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{SettingString.TakeShelfOff}");
}
}
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_19_02_TakeShelfOff))
{
if (agv.TaskRunState.CheckTaskFinished(agv))
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_19_03_ToTemp1);
runInfo = $"料车在{JobParam.LiftStatus.destinationPoint}卸下完成, 返回{JobParam.CurTargetNode.AliceName}的临时点1的取料点";
service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(JobParam.LiftStatus.missionId);
if (missionInfo != null)
{
//任务状态变更
MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.完成, out string msg);
}
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.Temp1}_{SettingString.PutShelfOn}");
}
}
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_19_03_ToTemp1))
{
if (agv.TaskRunState.CheckTaskFinished(agv))
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_19_04_PutTemp1ShelfOn);
runInfo = $"到达{JobParam.CurTargetNode.AliceName}的临时点1的取料点,准备拾取料架";
JobRunStep.Msg = runInfo;
//AllocateTask(agv, $"{SettingString.PutShelfOn}");
PutShelfOn(agv);
}
}
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_19_04_PutTemp1ShelfOn))
{
if (agv.TaskRunState.CheckTaskFinished(agv))
{
if(TargetIsOccupied(agv, JobParam.CurTargetNode.Name))
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_19_05_ToStandby);
runInfo = $"在{JobParam.CurTargetNode.AliceName}有小车,去待机点";
JobRunStep.Msg = runInfo;
MoveToNode(agv, $"{SettingString.Standby}");
}
else
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_19_05_ToLift);
runInfo = $"拾取料架完成,去{JobParam.CurTargetNode.AliceName}";
JobRunStep.Msg = runInfo;
ToLift(agv, $"{JobParam.CurTargetNode.Name}");
}
}
}
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_19_05_ToStandby))
{
if (TargetIsOccupied(agv, JobParam.CurTargetNode.Name))
{
}
else
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_19_05_ToLift);
runInfo = $"拾取料架完成,去{JobParam.CurTargetNode.AliceName}";
JobRunStep.Msg = runInfo;
ToLift(agv, $"{JobParam.CurTargetNode.Name}");
}
}
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_19_05_ToLift))
{
if (agv.TaskRunState.CheckTaskFinished(agv))
{
JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_08_CheckC1Status);
runInfo = $"到达{JobParam.CurTargetNode.AliceName},请求电梯";
JobRunStep.Msg = runInfo;
//请求电梯
lift.LiftContext.Request(JobParam.GetMissionInfo(), agv, true, true);
System.Threading.Thread.Sleep(2000);
}
}
#endregion
#endregion
#region 成品入库的料车
else if (JobRunStep.IsStep(RunStep.S1F_LiftD2ToLiftC1_20_01_ToTemp2))
......
......@@ -350,6 +350,7 @@ namespace DeviceLibrary
{
if (missionInfo.projectType.Equals(ProjectType.钢网入库) || missionInfo.projectType.Equals(ProjectType.钢网领用))
{
MissionManager.SetMissionOccupied(missionInfo, agv);
Node src = manager.NodeManager.GetNode(missionInfo.liftName, NodeType.Lift);
Node dest = manager.NodeManager.GetNode(missionInfo.destinationPoint, NodeType.Node);
JobParam jobParam = new JobParam(src, dest, null, missionInfo);
......@@ -379,6 +380,7 @@ namespace DeviceLibrary
}
}
MissionManager.SetMissionOccupied(missionInfo, agv);
job = new LiftToLinesJob(jobParam);
job.JobRunStep.ToNextStep(RunStep.SD_LiftToLine_06_CloseLiftDoor);
job.JobRunStep.Msg = $"从{JobParam.CurTargetNode.AliceName}取料完成,继续执行任务:{JsonHelper.SerializeObject(missionInfo)}";
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!