|
@@ -91,14 +91,14 @@ namespace WCS.Service.Works.RGV
|
|
|
{
|
|
|
//取小车上的任务
|
|
|
DB.Do(db =>
|
|
|
- {
|
|
|
+ {
|
|
|
List<int> taskids = new List<int>() { obj.Data2.TaskID_1, obj.Data2.TaskID_2 };
|
|
|
var tasks = db.Default.Set<WCS_TASK>().Where(p => taskids.Contains(p.ID));
|
|
|
if (tasks.GroupBy(p => p.TaskGroupKey).Count() > 1)
|
|
|
throw new WarnException("任务组ID不一致");
|
|
|
if (!tasks.GroupBy(p => p.TaskGroupKey).Any())
|
|
|
throw new WarnException("无任务组ID");
|
|
|
- var destStation = Device.Find(tasks.FirstOrDefault().ADDRNEXT.Replace("G", "")).Create<StationDeviceGroup>();
|
|
|
+ var destStation = Device.Find(tasks.FirstOrDefault().ADDRNEXT).Create<StationDeviceGroup>();
|
|
|
obj.Put(destStation, obj.Data2.TaskID_1, obj.Data2.TaskID_2);
|
|
|
});
|
|
|
|
|
@@ -134,14 +134,8 @@ namespace WCS.Service.Works.RGV
|
|
|
obj.Data.TaskID_1 = gw1.Data2.Tasknum;
|
|
|
obj.Data.TaskID_2 = gw2.Data2.Tasknum;
|
|
|
obj.Data.TaskType_1 = RGVTaskType.取货;
|
|
|
- if (gw1.Data2.Tasknum != 0)
|
|
|
- {
|
|
|
- obj.Data.DestPosition_1 = gw1.Data2.Goodsend;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- obj.Data.DestPosition_1 = gw2.Data2.Goodsend;
|
|
|
- }
|
|
|
+ obj.Data.DestPosition_1 = pickStation.Entity.CODE.Replace("G", "").ToShort();
|
|
|
+
|
|
|
obj.Data.Trigger_1++;
|
|
|
|
|
|
foreach (var task in tasks)
|
|
@@ -178,6 +172,8 @@ namespace WCS.Service.Works.RGV
|
|
|
|
|
|
//此时RGV即没有等待执行的放货任务,也不在任何一个取货点,因此需要调往最近的一个取货点
|
|
|
//找到距离这个RGV最近的一个取货点
|
|
|
+ //必须所有RGV都是空闲状态时才可以进行初始化
|
|
|
+ if (obj.RGVList.Any(v => v.Data2.SystemStatus != RGVRunStatus.空闲 || v.Data2.WorkMode != RGVMode.自动)) return;
|
|
|
pickStation = obj.BeforeStation();
|
|
|
obj.Move(pickStation);
|
|
|
});
|