|
|
@@ -65,41 +65,7 @@ namespace WCS.Service.Works.SRM
|
|
|
if (srmDevice.Data2.SRMMode != SCMode.远程) return;
|
|
|
if (srmDevice.Data2.SRMStatus != SCRunStatus.空闲) return;
|
|
|
|
|
|
- ////检查标记好的出库任务,并将出库任务下达至堆垛机
|
|
|
- DB.Do(db =>
|
|
|
- {
|
|
|
- //找到两个任务
|
|
|
- var taksLsit = db.Default.Set<WCS_TASK>().Where(v =>
|
|
|
- v.ID == srmDevice.Data.TaskID_1 ||
|
|
|
- v.ID == srmDevice.Data.TaskID_2 && v.STATUS == TaskStatus.堆垛机执行).ToList();
|
|
|
- var itemList = taksLsit.Select(v => v.Create<Task>()).OrderBy(v => v.Col).ToArray();
|
|
|
-
|
|
|
- if (!taksLsit.Any()) return;
|
|
|
- {
|
|
|
- for (var i = 0; i < itemList.Length; i++)
|
|
|
- {
|
|
|
- var item = itemList[i];
|
|
|
- item.SRMSTATION = taksLsit.FirstOrDefault(v => v.ID == item.ID)!.SRMSTATION;
|
|
|
-
|
|
|
- var fork = srmDevice.GetFork(item, i);
|
|
|
-
|
|
|
- switch (fork)
|
|
|
- {
|
|
|
- // 列数较小的放一工位
|
|
|
- case SrmFork.货叉1:
|
|
|
- obj.WriteTask1(item, (short)itemList.Length);
|
|
|
- break;
|
|
|
- //列数较大的放二工位
|
|
|
- case SrmFork.货叉2:
|
|
|
- obj.WriteTask2(item, (short)itemList.Length);
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- throw new ArgumentOutOfRangeException();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+
|
|
|
|
|
|
var isTransfer = new List<WCS_TASK>(); //是否有移库任务
|
|
|
WCS_TASK enterPriority = new(), outPriority = new(); //出入库优先级任务
|
|
|
@@ -331,8 +297,7 @@ namespace WCS.Service.Works.SRM
|
|
|
foreach (var stationDevice in devise)
|
|
|
{
|
|
|
//放货点是否有货
|
|
|
- if (stationDevice.Data.VoucherNo != stationDevice.Data2.VoucherNo) res = false;
|
|
|
- else if (stationDevice.Data3.Status.HasFlag(StationStatus.运行状态位)) res = false;
|
|
|
+ if (stationDevice.Data3.Status.HasFlag(StationStatus.运行状态位)) res = false;
|
|
|
else if (stationDevice.Data2.Status.HasFlag(IstationStatus.光电状态)) res = false;
|
|
|
else if (stationDevice.Data2.Request == IstationRequest.堆垛机放货完成请求目标地址) res = false;
|
|
|
else if (stationDevice.Data2.Tasknum > 10000) res = false;
|
|
|
@@ -460,4 +425,4 @@ namespace WCS.Service.Works.SRM
|
|
|
return dev.Is(DF.SRM);
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|