From ce40df5daffae0d17b4e9fa7cb6d677afaa4d66f Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 17 十月 2025 11:20:30 +0800
Subject: [PATCH] 更新最新程序,ERP代码,MES代码等
---
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/RGVJob_CP.cs | 122 ++++++++++++++++++++++++++++------------
1 files changed, 85 insertions(+), 37 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs"
index d5ed193..4663e0d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs"
@@ -71,50 +71,98 @@
DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(R_RgvCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(W_RgvCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
- Console.WriteLine(DateTime.Now.ToString("yyyy-mm-ddd HH:mm:ss"));
if (deviceProRead != null && deviceProWrite != null)
{
R_RGVCPInfo rgvInfoRead = device.Communicator.ReadCustomer<R_RGVCPInfo>(deviceProRead.DeviceProAddress);
W_RGVCPInfo rgvInfoWrite = device.Communicator.ReadCustomer<W_RGVCPInfo>(deviceProWrite.DeviceProAddress);
- if (rgvInfoRead.Mode==5 && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1)
+ if (rgvInfoRead==null || rgvInfoWrite==null)
{
+ return Task.CompletedTask;
+ }
+ if ((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1)
+ {
+ //鑾峰彇浠诲姟 鏄惁鏈塕GV鎵ц鐨勪换鍔�
List<Dt_Task> tasks = _taskRepository.QueryData(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState != TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode);
- //鑾峰彇浠诲姟
- Dt_Task? task1 = tasks.FirstOrDefault(x => x.HeightType==1);
+
+ Dt_Task? task1 = tasks.FirstOrDefault(x => x.HeightType == 1);
Dt_Task? task2 = tasks.FirstOrDefault(x => x.HeightType == 2);
Dt_Task? task3 = tasks.FirstOrDefault(x => x.HeightType == 3);
- Dt_Task task = _taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode);
- if (task != null && task1 == null)
+ List<Dt_Task> tasksDown = _taskRepository.QueryData(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode).OrderBy(x=>x.CreateDate).Take(3).ToList();
+ if (tasksDown.Count>0)
{
- device.SetValue(W_RgvCPDB.WcsTask1, task.TaskNum);
- device.SetValue(W_RgvCPDB.TaskType, 4);
- device.SetValue(W_RgvCPDB.WorkStation, 1);
- device.SetValue(W_RgvCPDB.Qu1, task.CurrentAddress);
- device.SetValue(W_RgvCPDB.Fang1, task.NextAddress);
- device.SetValue(W_RgvCPDB.TaskReceivedDone, 1);
- task.HeightType = 1;
- _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing);
- }else if (task != null && task2 == null)
- {
- device.SetValue(W_RgvCPDB.WcsTask1, task.TaskNum);
- device.SetValue(W_RgvCPDB.TaskType, 4);
- device.SetValue(W_RgvCPDB.WorkStation, 1);
- device.SetValue(W_RgvCPDB.Qu2, task.CurrentAddress);
- device.SetValue(W_RgvCPDB.Fang2, task.NextAddress);
- device.SetValue(W_RgvCPDB.TaskReceivedDone, 1);
- task.HeightType = 2;
- _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing);
- }
- else if (task != null && task3 == null)
- {
- device.SetValue(W_RgvCPDB.WcsTask1, task.TaskNum);
- device.SetValue(W_RgvCPDB.TaskType, 4);
- device.SetValue(W_RgvCPDB.WorkStation, 1);
- device.SetValue(W_RgvCPDB.Qu3, task.CurrentAddress);
- device.SetValue(W_RgvCPDB.Fang3, task.NextAddress);
- device.SetValue(W_RgvCPDB.TaskReceivedDone, 1);
- task.HeightType = 3;
- _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing);
+ bool ReceivedDone = false;
+ //鍒嗛厤RGV宸ヤ綅浠诲姟鍗犵敤涓�涓伐浣�
+ if (tasksDown.Count == 1)
+ {
+ if (task1 == null)
+ {
+ //涓嬪彂鎵ц宸ヤ綅
+ device.SetValue(W_RgvCPDB.WorkStation, 1);
+ device.SetValue(W_RgvCPDB.WcsTask1, tasksDown[0].TaskNum);
+ device.SetValue(W_RgvCPDB.Qu1, tasksDown[0].CurrentAddress);
+ device.SetValue(W_RgvCPDB.Fang1, tasksDown[0].NextAddress);
+ tasksDown[0].HeightType = 1;
+ _taskService.UpdateTask(tasksDown[0], TaskStatusEnum.RGV_Executing);
+ Thread.Sleep(100);
+ ReceivedDone=true;
+ }
+ }
+ else if (tasksDown.Count == 2)//鍗犵敤涓や釜宸ヤ綅
+ {
+
+ if (task1 == null && task2 == null)
+ {
+ //涓嬪彂鎵ц宸ヤ綅
+ device.SetValue(W_RgvCPDB.WorkStation, 4);
+
+ device.SetValue(W_RgvCPDB.WcsTask1, tasksDown[0].TaskNum);
+ device.SetValue(W_RgvCPDB.Qu1, tasksDown[0].CurrentAddress);
+ device.SetValue(W_RgvCPDB.Fang1, tasksDown[0].NextAddress);
+ tasksDown[0].HeightType = 1;
+ _taskService.UpdateTask(tasksDown[0], TaskStatusEnum.RGV_Executing);
+ Thread.Sleep(100);
+ device.SetValue(W_RgvCPDB.WcsTask2, tasksDown[1].TaskNum);
+ device.SetValue(W_RgvCPDB.Qu2, tasksDown[1].CurrentAddress);
+ device.SetValue(W_RgvCPDB.Fang2, tasksDown[1].NextAddress);
+ tasksDown[1].HeightType = 2;
+ _taskService.UpdateTask(tasksDown[1], TaskStatusEnum.RGV_Executing);
+ Thread.Sleep(100);
+ ReceivedDone = true;
+ }
+ }
+ else //鍗犵敤涓変釜宸ヤ綅
+ {
+ if (task1 == null && task2 == null && task3 == null)
+ {
+ //涓嬪彂鎵ц宸ヤ綅
+ device.SetValue(W_RgvCPDB.WorkStation, 7);
+
+ device.SetValue(W_RgvCPDB.WcsTask1, tasksDown[0].TaskNum);
+ device.SetValue(W_RgvCPDB.Qu1, tasksDown[0].CurrentAddress);
+ device.SetValue(W_RgvCPDB.Fang1, tasksDown[0].NextAddress);
+ tasksDown[0].HeightType = 1;
+ _taskService.UpdateTask(tasksDown[0], TaskStatusEnum.RGV_Executing);
+ Thread.Sleep(100);
+ device.SetValue(W_RgvCPDB.WcsTask2, tasksDown[1].TaskNum);
+ device.SetValue(W_RgvCPDB.Qu2, tasksDown[1].CurrentAddress);
+ device.SetValue(W_RgvCPDB.Fang2, tasksDown[1].NextAddress);
+ tasksDown[1].HeightType = 2;
+ _taskService.UpdateTask(tasksDown[1], TaskStatusEnum.RGV_Executing);
+ Thread.Sleep(100);
+ device.SetValue(W_RgvCPDB.WcsTask3, tasksDown[2].TaskNum);
+ device.SetValue(W_RgvCPDB.Qu3, tasksDown[2].CurrentAddress);
+ device.SetValue(W_RgvCPDB.Fang3, tasksDown[2].NextAddress);
+ tasksDown[2].HeightType = 3;
+ _taskService.UpdateTask(tasksDown[2], TaskStatusEnum.RGV_Executing);
+ Thread.Sleep(100);
+ ReceivedDone = true;
+ }
+ }
+ if (ReceivedDone)
+ {
+ device.SetValue(W_RgvCPDB.TaskType, 4);
+ device.SetValue(W_RgvCPDB.TaskReceivedDone, 1);
+ }
}
}
else if((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.TaskDone == 3)
@@ -130,11 +178,11 @@
task.DeviceCode = stationManger.StationDeviceCode;
device.SetValue(W_RgvCPDB.TaskReceivedDone, 2);
_taskService.UpdateTask(task, TaskStatusEnum.Line_Execute);
- WriteError(device.DeviceName, $"RGV浠诲姟瀹屾垚,浠诲姟鍙穥rgvInfoRead.RgvEndTask}");
+ WriteInfo(device.DeviceName, $"RGV浠诲姟瀹屾垚,浠诲姟鍙穥rgvInfoRead.RgvEndTask}");
}
else
{
- WriteError(device.DeviceName, $"鏈壘鍒癛GV瀵瑰簲鐨勭粨鏉熶换鍔rgvInfoRead.RgvEndTask}");
+ WriteInfo(device.DeviceName, $"鏈壘鍒癛GV瀵瑰簲鐨勭粨鏉熶换鍔rgvInfoRead.RgvEndTask}");
}
}
else if (rgvInfoRead.TaskDone == 2 && rgvInfoWrite.TaskReceivedDone == 1)
--
Gitblit v1.9.3