From 2aec0a99e559fb11b7046b148e5f357b3208cb66 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期五, 12 九月 2025 10:06:22 +0800 Subject: [PATCH] 推送最新代码 --- 项目代码/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