Commit 5fad85aa 张东亮

启用空台车项目

1 个父辈 ab1c3da7
...@@ -27,7 +27,7 @@ namespace DeviceLibrary.bean.job ...@@ -27,7 +27,7 @@ namespace DeviceLibrary.bean.job
runInfo = $"任务开始,去{JobParam.SrcNode.AliceName}的取料点"; runInfo = $"任务开始,去{JobParam.SrcNode.AliceName}的取料点";
//任务状态变更 //任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.已分配, out string msg); MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.已分配, out string msg);
AllocateTask(agv, $"{JobParam.SrcNode.Name}_{SettingString.PutShelfOn}"); ToPutShelfOn(agv, $"{JobParam.SrcNode.Name}");
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
} }
else if (JobRunStep.IsStep(RunStep.SD_Line_OneToMany_01_ToPickUpPosition)) else if (JobRunStep.IsStep(RunStep.SD_Line_OneToMany_01_ToPickUpPosition))
...@@ -59,7 +59,7 @@ namespace DeviceLibrary.bean.job ...@@ -59,7 +59,7 @@ namespace DeviceLibrary.bean.job
runInfo = $"在{JobParam.SrcNode.AliceName}拾取料车完成,去{JobParam.CurTargetNode.AliceName}的放料点"; runInfo = $"在{JobParam.SrcNode.AliceName}拾取料车完成,去{JobParam.CurTargetNode.AliceName}的放料点";
//任务状态变更 //任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.送料, out string msg); MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.送料, out string msg);
AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.TakeShelfOff}"); ToTakeShelfOff(agv, $"{JobParam.CurTargetNode.Name}");
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
} }
} }
...@@ -132,7 +132,7 @@ namespace DeviceLibrary.bean.job ...@@ -132,7 +132,7 @@ namespace DeviceLibrary.bean.job
System.Threading.Thread.Sleep(1000); System.Threading.Thread.Sleep(1000);
runInfo = $"去下一线体{JobParam.CurTargetNode.AliceName}的放料点"; runInfo = $"去下一线体{JobParam.CurTargetNode.AliceName}的放料点";
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.TakeShelfOff}"); ToTakeShelfOff(agv, $"{JobParam.CurTargetNode.Name}");
} }
else else
{ {
...@@ -142,7 +142,7 @@ namespace DeviceLibrary.bean.job ...@@ -142,7 +142,7 @@ namespace DeviceLibrary.bean.job
runInfo = $"{JobParam.CurTargetNode.AliceName}是最后一个线体,分发结束,需要返回{JobParam.SrcNode.Name}的放料点"; runInfo = $"{JobParam.CurTargetNode.AliceName}是最后一个线体,分发结束,需要返回{JobParam.SrcNode.Name}的放料点";
//任务状态变更 //任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.返回起始地, out string msg); MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.返回起始地, out string msg);
AllocateTask(agv, $"{JobParam.SrcNode.Name}_{SettingString.TakeShelfOff}"); ToTakeShelfOff(agv, $"{JobParam.SrcNode.Name}");
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
} }
else if (JobParam.GetMissionInfo() != null && !JobParam.GetMissionInfo().needBack) else if (JobParam.GetMissionInfo() != null && !JobParam.GetMissionInfo().needBack)
...@@ -150,7 +150,7 @@ namespace DeviceLibrary.bean.job ...@@ -150,7 +150,7 @@ namespace DeviceLibrary.bean.job
JobRunStep.ToNextStep(RunStep.SD_Line_OnToMany_08_TakeShelfOff); JobRunStep.ToNextStep(RunStep.SD_Line_OnToMany_08_TakeShelfOff);
runInfo = $"{JobParam.CurTargetNode.AliceName}是最后一个线体,分发结束,无需返回,直接卸下"; runInfo = $"{JobParam.CurTargetNode.AliceName}是最后一个线体,分发结束,无需返回,直接卸下";
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{SettingString.TakeShelfOff}"); TakeShelfOff(agv);
} }
else else
{ {
...@@ -171,7 +171,7 @@ namespace DeviceLibrary.bean.job ...@@ -171,7 +171,7 @@ namespace DeviceLibrary.bean.job
$"到达{ JobParam.SrcNode.Name }")); $"到达{ JobParam.SrcNode.Name }"));
runInfo = $"到达{JobParam.SrcNode.AliceName}的放料点,准备卸下料车"; runInfo = $"到达{JobParam.SrcNode.AliceName}的放料点,准备卸下料车";
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
AllocateTask(agv, SettingString.TakeShelfOff); TakeShelfOff(agv);
} }
} }
else if (JobRunStep.IsStep(RunStep.SD_Line_OnToMany_08_TakeShelfOff)) else if (JobRunStep.IsStep(RunStep.SD_Line_OnToMany_08_TakeShelfOff))
......
...@@ -20,7 +20,6 @@ namespace DeviceLibrary.bean.job ...@@ -20,7 +20,6 @@ namespace DeviceLibrary.bean.job
{ {
} }
lift.LiftStatus liftStatus;
public override Job Run(AgvInfo agv) public override Job Run(AgvInfo agv)
{ {
agv.SetJobContext(new bean.agv.JobContext() agv.SetJobContext(new bean.agv.JobContext()
...@@ -37,7 +36,7 @@ namespace DeviceLibrary.bean.job ...@@ -37,7 +36,7 @@ namespace DeviceLibrary.bean.job
JobRunStep.ToNextStep(RunStep.Steel_LiftToLine_01_ToLift); JobRunStep.ToNextStep(RunStep.Steel_LiftToLine_01_ToLift);
runInfo = $"任务开始:去{JobParam.SrcNode.AliceName}"; runInfo = $"任务开始:去{JobParam.SrcNode.AliceName}";
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
AllocateTask(agv, JobParam.SrcNode.Name); ToLift(agv, JobParam.SrcNode.Name);
} }
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_01_ToLift)) else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_01_ToLift))
{ {
...@@ -60,7 +59,7 @@ namespace DeviceLibrary.bean.job ...@@ -60,7 +59,7 @@ namespace DeviceLibrary.bean.job
JobRunStep.ToNextStep(RunStep.Steel_LiftToLine_03_EnterLift); JobRunStep.ToNextStep(RunStep.Steel_LiftToLine_03_EnterLift);
SetLiftOccupied(JobParam.SrcNode.Name, agv); SetLiftOccupied(JobParam.SrcNode.Name, agv);
runInfo = $"{JobParam.SrcNode.AliceName}门已开启,进电梯取料点"; runInfo = $"{JobParam.SrcNode.AliceName}门已开启,进电梯取料点";
AllocateTask(agv, $"{JobParam.SrcNode.Name}_{SettingString.PutShelfOn}"); ToPutShelfOn(agv, JobParam.SrcNode.Name);
//任务状态变更 //任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.电梯到达, out string msg); MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.电梯到达, out string msg);
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
...@@ -74,7 +73,6 @@ namespace DeviceLibrary.bean.job ...@@ -74,7 +73,6 @@ namespace DeviceLibrary.bean.job
runInfo = $"到达{JobParam.SrcNode.AliceName}取料点,准备拾取料车"; runInfo = $"到达{JobParam.SrcNode.AliceName}取料点,准备拾取料车";
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
PutLiftShelfOn(agv, JobParam.SrcNode.Name); PutLiftShelfOn(agv, JobParam.SrcNode.Name);
//AllocateTask(agv, $"{SettingString.PutShelfOn}_{JobParam.SrcNode.Name}");
} }
} }
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_04_PutShelfOn)) else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_04_PutShelfOn))
...@@ -89,7 +87,7 @@ namespace DeviceLibrary.bean.job ...@@ -89,7 +87,7 @@ namespace DeviceLibrary.bean.job
runInfo = $"在{JobParam.SrcNode.AliceName}拾取料车完成,准备离开"; runInfo = $"在{JobParam.SrcNode.AliceName}拾取料车完成,准备离开";
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{SettingString.Leave}_{JobParam.SrcNode.Name}"); LeaveLift(agv, $"{JobParam.SrcNode.Name}");
} }
} }
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_05_LeaveLift)) else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_05_LeaveLift))
...@@ -103,6 +101,7 @@ namespace DeviceLibrary.bean.job ...@@ -103,6 +101,7 @@ namespace DeviceLibrary.bean.job
//任务状态变更 //任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.离开电梯, out string msg); MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.离开电梯, out string msg);
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
ClearLiftNodeOccupied(agv);
} }
} }
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_06_CloseLiftDoor)) else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_06_CloseLiftDoor))
......
using Common; using Common;
using DeviceLibrary.bean; using DeviceLibrary.bean;
using DeviceLibrary.lift;
using DeviceLibrary.manager; using DeviceLibrary.manager;
using DeviceLibrary.service.model;
using System; using System;
namespace DeviceLibrary namespace DeviceLibrary
{ {
/// <summary> /// <summary>
/// 3D钢网入库 到电梯 /// 3D钢网任务 线体到电梯
/// </summary> /// </summary>
public class SteelLineToLiftJob : Job public class SteelLineToLiftJob : Job
{ {
/// <summary> /// <summary>
/// 1F满架运送任务 /// 3D钢网任务 线体到电梯
/// </summary> /// </summary>
public SteelLineToLiftJob(JobParam jobParam) : base(jobParam) public SteelLineToLiftJob(JobParam jobParam) : base(jobParam)
{ {
...@@ -20,9 +22,9 @@ namespace DeviceLibrary ...@@ -20,9 +22,9 @@ namespace DeviceLibrary
{ {
} }
lift.LiftStatus liftStatus;
public override Job Run(AgvInfo agv) public override Job Run(AgvInfo agv)
{ {
Job job = this;
agv.SetJobContext(new bean.agv.JobContext() agv.SetJobContext(new bean.agv.JobContext()
{ {
MissionId = JobParam.GetMissionInfo().missionId, MissionId = JobParam.GetMissionInfo().missionId,
...@@ -61,6 +63,8 @@ namespace DeviceLibrary ...@@ -61,6 +63,8 @@ namespace DeviceLibrary
{ {
if (agv.TaskRunState.CheckTaskFinished(agv.Name)) if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{ {
if(JobParam.GetMissionInfo().projectType.Equals(ProjectType.钢网入库))
{
JobRunStep.ToNextStep(RunStep.LineToLift_ToSteelSrc); JobRunStep.ToNextStep(RunStep.LineToLift_ToSteelSrc);
//上报状态 //上报状态
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId, manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
...@@ -70,6 +74,13 @@ namespace DeviceLibrary ...@@ -70,6 +74,13 @@ namespace DeviceLibrary
ToTakeShelfOff(agv, JobParam.SrcNode.Name); ToTakeShelfOff(agv, JobParam.SrcNode.Name);
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
} }
else
{
JobRunStep.ToNextStep(RunStep.LineToLift_WaitConfirm);
runInfo = $"钢网领用任务,直接去电梯口";
JobRunStep.Msg = runInfo;
}
}
} }
else if (JobRunStep.IsStep(RunStep.LineToLift_ToSteelSrc)) else if (JobRunStep.IsStep(RunStep.LineToLift_ToSteelSrc))
{ {
...@@ -109,13 +120,36 @@ namespace DeviceLibrary ...@@ -109,13 +120,36 @@ namespace DeviceLibrary
} }
else if (JobRunStep.IsStep(RunStep.LineToLift_WaitConfirm)) else if (JobRunStep.IsStep(RunStep.LineToLift_WaitConfirm))
{ {
if(TargetIsOccupied(agv, JobParam.CurTargetNode.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_ToStandby);
runInfo = $"{JobParam.CurTargetNode.AliceName}有小车,去待机点";
ToStandby(agv);
}
else
{
JobRunStep.ToNextStep(RunStep.LineToLift_03_ToLift); JobRunStep.ToNextStep(RunStep.LineToLift_03_ToLift);
runInfo = $"在{JobParam.SrcNode.AliceName}确认完成,去{JobParam.CurTargetNode.AliceName}"; runInfo = $"在{JobParam.SrcNode.AliceName}确认完成,去{JobParam.CurTargetNode.AliceName}";
//任务状态变更 //任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.前往电梯, out string msg); MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.前往电梯, out string msg);
ToLift(agv, JobParam.CurTargetNode.Name); ToLift(agv, JobParam.CurTargetNode.Name);
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_ToStandby))
{
if (TargetIsOccupied(agv, JobParam.CurTargetNode.Name))
{
}
else
{
JobRunStep.ToNextStep(RunStep.LineToLift_03_ToLift);
runInfo = $"{JobParam.CurTargetNode.AliceName}已空闲";
//任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.前往电梯, out string msg);
ToLift(agv, JobParam.CurTargetNode.Name);
JobRunStep.Msg = runInfo;
}
} }
else if (JobRunStep.IsStep(RunStep.LineToLift_03_ToLift)) else if (JobRunStep.IsStep(RunStep.LineToLift_03_ToLift))
{ {
...@@ -138,20 +172,24 @@ namespace DeviceLibrary ...@@ -138,20 +172,24 @@ namespace DeviceLibrary
{ {
if (lift.LiftContext.IsDoorOpen(JobParam.CurTargetNode.Name, JobParam.GetMissionInfo().sourceFloor)) if (lift.LiftContext.IsDoorOpen(JobParam.CurTargetNode.Name, JobParam.GetMissionInfo().sourceFloor))
{ {
if (lift.LiftContext.HasShelfNeedLeave(JobParam.CurTargetNode.Name, agv.Client, out liftStatus)) if (lift.LiftContext.HasShelfNeedLeave(JobParam.CurTargetNode.Name, agv.Client, out JobParam.LiftStatus))
{ {
JobRunStep.ToNextStep(RunStep.LineToLift_05_01_ToTemp1); MissionInfo missionInfo = MissionManager.GetMission(JobParam.LiftStatus?.missionId ?? "");
SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有料车,去临时点1的卸料点,准备卸下车上料车";
ToTmp1TakeOff(agv, JobParam.CurTargetNode.Name);
service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(liftStatus.missionId);
if (missionInfo != null) if (missionInfo != null)
{ {
//任务状态变更 MissionManager.SetMissionOccupied(missionInfo, agv);
MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.返回电梯到达, out string msg); job = new SwitchShelfJob(JobParam);
} }
else
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_01_ToStandby);
//设置电梯占用
//SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车但无工单信息,去待机点,需要手动清空电梯缓存并关闭电梯门";//
ToStandby(agv);
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
} }
}
else else
{ {
JobRunStep.ToNextStep(RunStep.LineToLift_06_01_EnterLift); JobRunStep.ToNextStep(RunStep.LineToLift_06_01_EnterLift);
...@@ -172,161 +210,16 @@ namespace DeviceLibrary ...@@ -172,161 +210,16 @@ namespace DeviceLibrary
} }
} }
#region 电梯内有料车 else if (JobRunStep.IsStep(RunStep.LineToLift_05_01_ToStandby))
else if (JobRunStep.IsStep(RunStep.LineToLift_05_01_ToTemp1))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_02_TakeShelfOffAtTemp1);
runInfo = $"到达{JobParam.CurTargetNode.AliceName}的临时点1,将车上料车卸下";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{SettingString.TakeShelfOff}");
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_02_TakeShelfOffAtTemp1))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_03_ToLift);
runInfo = $"在{JobParam.CurTargetNode.AliceName}将车上料车卸在临时点1完成,去电梯口";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{JobParam.CurTargetNode.Name}");
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_03_ToLift))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_04_EnterLift);
runInfo = $"到达{JobParam.CurTargetNode.AliceName},去取料点";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.PutShelfOn}");
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_04_EnterLift))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_05_PutShelfOn);
runInfo = $"到达{JobParam.CurTargetNode.AliceName}的取料点,准备拾取料车";
JobRunStep.Msg = runInfo;
PutLiftShelfOn(agv, JobParam.CurTargetNode.Name);
//AllocateTask(agv, $"{SettingString.PutShelfOn}_{JobParam.CurTargetNode.Name}");
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_05_PutShelfOn))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_06_LeaveLift);
runInfo = $"拾取{JobParam.CurTargetNode.AliceName}的料车完成,准备离开电梯";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{SettingString.Leave}_{JobParam.CurTargetNode.Name}");
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_06_LeaveLift))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_15_CloseDoor);
//AGV离开
bool rtn = lift.LiftContext.AGVLeave(JobParam.CurTargetNode.Name, agv, false);
runInfo = $"离开{JobParam.CurTargetNode.AliceName}完成,发送离开信号:{rtn}";
service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(liftStatus.missionId);
if (missionInfo != null)
{
//任务状态变更
MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.返回离开电梯, out string msg);
}
JobRunStep.Msg = runInfo;
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_15_CloseDoor))
{
if (lift.LiftContext.CheckAgvLeaveSig(JobParam.CurTargetNode.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_18_ToStore);
runInfo = $"{JobParam.CurTargetNode.AliceName}关门完成,将料车送到{liftStatus.destinationPoint}的放料点";
service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(liftStatus.missionId);
if (missionInfo != null)
{
//任务状态变更
MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.返回起始地, out string msg);
}
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{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);
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_18_ToStore))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_19_TakeShelfOff);
runInfo = $"到达{liftStatus.destinationPoint}的放料点,准备卸下";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{SettingString.TakeShelfOff}");
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_19_TakeShelfOff))
{ {
if (agv.TaskRunState.CheckTaskFinished(agv.Name)) if (!TargetIsOccupied(agv, JobParam.CurTargetNode.Name) && !LiftContext.IsDoorOpen(JobParam.CurTargetNode.Name))
{ {
JobRunStep.ToNextStep(RunStep.LineToLift_05_10_ToTemp1); JobRunStep.ToNextStep(RunStep.LineToLift_03_ToLift);
runInfo = $"料车在{liftStatus.destinationPoint}卸下完成, 返回{JobParam.CurTargetNode.AliceName}的临时点1的取料点"; runInfo = $"{JobParam.CurTargetNode.AliceName}已空闲";
service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(liftStatus.missionId); ToLift(agv, JobParam.CurTargetNode.Name);
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.LineToLift_05_10_ToTemp1))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_11_PutTemp1ShelfOn);
runInfo = $"到达{JobParam.CurTargetNode.AliceName}的临时点1的取料点,准备拾取料架";
JobRunStep.Msg = runInfo;
//AllocateTask(agv, $"{SettingString.PutShelfOn}");
PutShelfOn(agv);
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_11_PutTemp1ShelfOn))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_05_12_ToLift);
runInfo = $"拾取料架完成,去{JobParam.CurTargetNode.AliceName}";
JobRunStep.Msg = runInfo;
AllocateTask(agv, $"{JobParam.CurTargetNode.Name}");
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_12_ToLift))
{
if (agv.TaskRunState.CheckTaskFinished(agv.Name))
{
JobRunStep.ToNextStep(RunStep.LineToLift_04_CheckLiftStatus);
runInfo = $"到达{JobParam.CurTargetNode.AliceName},请求电梯";
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
//请求电梯
lift.LiftContext.Request(JobParam.GetMissionInfo(), agv);
System.Threading.Thread.Sleep(2000);
} }
} }
#endregion
#region 电梯内无料车 #region 电梯内无料车
else if (JobRunStep.IsStep(RunStep.LineToLift_06_01_EnterLift)) else if (JobRunStep.IsStep(RunStep.LineToLift_06_01_EnterLift))
{ {
...@@ -388,7 +281,7 @@ namespace DeviceLibrary ...@@ -388,7 +281,7 @@ namespace DeviceLibrary
JobRunStep.EndJob(); JobRunStep.EndJob();
return null; return null;
} }
return this; return job;
} }
} }
......
...@@ -90,8 +90,8 @@ namespace DeviceLibrary ...@@ -90,8 +90,8 @@ namespace DeviceLibrary
if (AGVTaskIsFinished(agv)) if (AGVTaskIsFinished(agv))
{ {
JobRunStep.ToNextStep(RunStep.Switch_03_ToLift); JobRunStep.ToNextStep(RunStep.Switch_03_ToLift);
runInfo = $"去{JobParam.CurTargetNode.AliceName},,{missionInfo()}"; runInfo = $"去{JobParam.CurTargetNode.AliceName},{missionInfo()}";
MoveToNode(agv, JobParam.CurTargetNode.Name); //MoveToNode(agv, JobParam.CurTargetNode.Name);
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
} }
} }
...@@ -181,7 +181,7 @@ namespace DeviceLibrary ...@@ -181,7 +181,7 @@ namespace DeviceLibrary
{ {
JobRunStep.ToNextStep(RunStep.Switch_11_ToLift); JobRunStep.ToNextStep(RunStep.Switch_11_ToLift);
runInfo = $"去{JobParam.CurTargetNode.AliceName},{missionInfo()}"; runInfo = $"去{JobParam.CurTargetNode.AliceName},{missionInfo()}";
MoveToNode(agv, JobParam.CurTargetNode.Name); //MoveToNode(agv, JobParam.CurTargetNode.Name);
JobRunStep.Msg = runInfo; JobRunStep.Msg = runInfo;
} }
} }
......
...@@ -456,7 +456,11 @@ namespace DeviceLibrary.manager ...@@ -456,7 +456,11 @@ namespace DeviceLibrary.manager
missionInfo = missions.Where(s => s.destinationWorkshop.Equals(agv.Scope.Workshop) && missionInfo = missions.Where(s => s.destinationWorkshop.Equals(agv.Scope.Workshop) &&
s.sourceWorkshop.Equals(agv.Scope.Workshop) && s.sourceWorkshop.Equals(agv.Scope.Workshop) &&
((s.projectType.Equals(ProjectType.半成品领用)) || (s.sourceWorkshop.Equals(s.destinationWorkshop))) && ((s.projectType.Equals(ProjectType.半成品领用)||
s.projectType.Equals(ProjectType.空台车领用)||
s.projectType.Equals(ProjectType.空台车归还)) ||
(s.sourceWorkshop.Equals(s.destinationWorkshop)))
&&
(s.state == MissionState.创建) && agv.Scope.Tasks.Contains(s.projectType.ToString())).FirstOrDefault(); (s.state == MissionState.创建) && agv.Scope.Tasks.Contains(s.projectType.ToString())).FirstOrDefault();
if (missionInfo != null && AgvCanGetMission(missionInfo)) if (missionInfo != null && AgvCanGetMission(missionInfo))
{ {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!