|
|
@@ -310,7 +310,6 @@ namespace WCS.Service.Works.RGV
|
|
|
var destStation = Device.Find(tasks.FirstOrDefault().ADDRNEXT).Create<StationDeviceGroup>();
|
|
|
obj.Put(destStation, obj.Data2.TaskID_1, obj.Data2.TaskID_2);
|
|
|
});
|
|
|
-
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -354,51 +353,31 @@ namespace WCS.Service.Works.RGV
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- ////找到自己的后一个小车
|
|
|
- //var afterRgv = obj.After();
|
|
|
-
|
|
|
- ////自己是否阻挡了该小车
|
|
|
- //if (afterRgv.Data2.WorkMode == RGVMode.自动 && afterRgv.Data2.SystemStatus != RGVRunStatus.空闲 && obj.StopedByMe(afterRgv))
|
|
|
- //{
|
|
|
- // //找到当前所在站台的下一个取货点
|
|
|
- // var beforeStation = Device.Where(v => v.Is(DF.BOPPRGV取货设备组) && v.CODE != pickStation.Entity.CODE)
|
|
|
- // .Select(v => v.Create<StationDeviceGroup>())
|
|
|
- // .OrderBy(v => pickStation.Distance(v))
|
|
|
- // .FirstOrDefault();
|
|
|
- // //写入移动任务
|
|
|
- // obj.Move(beforeStation);
|
|
|
- // return;
|
|
|
- //}
|
|
|
- //else
|
|
|
- //{
|
|
|
- // //取前一个取货点
|
|
|
- // pickStation = obj.BeforeStation();
|
|
|
- // //前一个取货点的小车
|
|
|
- // var rgv = pickStation.CurrentRGV();
|
|
|
- // //前一个取货点没有车 且没有非空闲目的地为前一个取货点的小车
|
|
|
- // if (rgv == null && !obj.RGVList.Any(v => v.Data2.SystemStatus != RGVRunStatus.空闲 && v.Data2.DestPosition_1 == pickStation.Entity.CODE.Replace("G", "").ToShort()))
|
|
|
- // {
|
|
|
- // obj.Move(pickStation);
|
|
|
- // return;
|
|
|
- // }
|
|
|
- //}
|
|
|
+ bool NeedToMove = obj.RGVList.Any(v => v.Data2.TaskType_1 == RGVTaskType.放货 && v.Position > 1777767 && v.Position < 2714350);
|
|
|
+ if(pickStation.Entity.CODE == "G23" && NeedToMove)
|
|
|
+ {
|
|
|
+ //找到当前所在站台的下一个取货点
|
|
|
+ var beforeStation = Device.Where(v => v.Is(DF.BOPPRGV取货设备组) && v.CODE != pickStation.Entity.CODE)
|
|
|
+ .Select(v => v.Create<StationDeviceGroup>())
|
|
|
+ .OrderBy(v => pickStation.Distance(v))
|
|
|
+ .FirstOrDefault();
|
|
|
+ //写入移动任务
|
|
|
+ obj.Move(beforeStation);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
//计算当前RGV拦住小车的数量
|
|
|
var max = obj.RGVList.Count(v => v.Data2.WorkMode == RGVMode.自动 && v.Data2.SystemStatus != RGVRunStatus.空闲 && obj.StopedByMe(v));
|
|
|
- if (pickStation.Entity.CODE == "G19" && max > 2)
|
|
|
+ if (pickStation.Entity.CODE == "G19" && max >= 2)
|
|
|
{
|
|
|
obj.Move(Device.Find("G23").Create<StationDeviceGroup>());
|
|
|
- }
|
|
|
- //else if (pickStation.Entity.CODE == "G23" && max > 3)
|
|
|
- //{
|
|
|
- // obj.Move(Device.Find("G19").Create<StationDeviceGroup>());
|
|
|
- //}
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
//是否在一个放货站台
|
|
|
if (pickStation.Entity.Is(DF.BOPPRGV放货设备组))
|
|
|
{
|
|
|
pickStation = obj.BeforeStation();
|
|
|
- obj.Move(Device.Find("G23").Create<StationDeviceGroup>());
|
|
|
+ obj.Move(Device.Find("G19").Create<StationDeviceGroup>());
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
@@ -408,7 +387,7 @@ namespace WCS.Service.Works.RGV
|
|
|
//必须所有RGV都是空闲状态时才可以进行初始化
|
|
|
if (obj.RGVList.Any(v => v.Data2.SystemStatus != RGVRunStatus.空闲 || v.Data2.WorkMode != RGVMode.自动)) return;
|
|
|
pickStation = obj.BeforeStation();
|
|
|
- obj.Move(Device.Find("G23").Create<StationDeviceGroup>());
|
|
|
+ obj.Move(Device.Find("G19").Create<StationDeviceGroup>());
|
|
|
});
|
|
|
}
|
|
|
|