| | |
| | | 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==null || rgvInfoWrite==null) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | if ((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1) |
| | | { |
| | | //è·åä»»å¡ æ¯å¦æRGVæ§è¡çä»»å¡ |
| | |
| | | Dt_Task? task2 = tasks.FirstOrDefault(x => x.HeightType == 2); |
| | | Dt_Task? task3 = tasks.FirstOrDefault(x => x.HeightType == 3); |
| | | 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(); |
| | | List<Dt_Task> taskSends = new List<Dt_Task>(); |
| | | if (tasksDown.Count>0) |
| | | { |
| | | bool ReceivedDone = false; |
| | |
| | | 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); |
| | | taskSends.Add(tasksDown[0]); |
| | | ReceivedDone=true; |
| | | } |
| | | } |
| | |
| | | { |
| | | //ä¸åæ§è¡å·¥ä½ |
| | | 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); |
| | | taskSends.Add(tasksDown[0]); |
| | | taskSends.Add(tasksDown[1]); |
| | | ReceivedDone = true; |
| | | } |
| | | } |
| | |
| | | { |
| | | //ä¸åæ§è¡å·¥ä½ |
| | | 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); |
| | | taskSends.Add(tasksDown[0]); |
| | | taskSends.Add(tasksDown[1]); |
| | | taskSends.Add(tasksDown[2]); |
| | | ReceivedDone = true; |
| | | } |
| | | } |
| | | //ä¸åæ´æ°ä»»å¡ |
| | | if (ReceivedDone) |
| | | { |
| | | device.SetValue(W_RgvCPDB.TaskType, 4); |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 1); |
| | | foreach (var item in taskSends) |
| | | { |
| | | _taskService.UpdateTask(item, TaskStatusEnum.RGV_Executing); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else if((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.TaskDone == 3) |
| | | { |
| | | int taskNum = 0; |
| | | if (rgvInfoRead.RgvTask > 0) |
| | | { |
| | | taskNum = rgvInfoRead.RgvTask; |
| | | } |
| | | else if (rgvInfoRead.RgvEndTask > 0) |
| | | { |
| | | taskNum = rgvInfoRead.RgvEndTask; |
| | | } |
| | | else if (rgvInfoRead.RgvLastTask > 0) |
| | | { |
| | | taskNum = rgvInfoRead.RgvLastTask; |
| | | } |
| | | //è·åä»»å¡ |
| | | Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum==rgvInfoRead.RgvTask && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode); |
| | | Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum== taskNum && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode); |
| | | if (task != null) |
| | | { |
| | | //è·åä¸ä¸ä¸ªèç¹çè·¯ç± |
| | |
| | | task.DeviceCode = stationManger.StationDeviceCode; |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 2); |
| | | _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute); |
| | | WriteInfo(device.DeviceName, $"RGVä»»å¡å®æ,ä»»å¡å·{rgvInfoRead.RgvEndTask}"); |
| | | WriteInfo(device.DeviceName, $"RGVä»»å¡å®æ,ä»»å¡å·{taskNum}"); |
| | | } |
| | | else |
| | | { |
| | | WriteInfo(device.DeviceName, $"æªæ¾å°RGV对åºçç»æä»»å¡{rgvInfoRead.RgvEndTask}"); |
| | | WriteInfo(device.DeviceName, $"æªæ¾å°RGV对åºçç»æä»»å¡{taskNum}"); |
| | | } |
| | | } |
| | | else if (rgvInfoRead.TaskDone == 2 && rgvInfoWrite.TaskReceivedDone == 1) |
| | | { |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); |
| | | } |
| | | else if (rgvInfoRead.TaskDone == 0 && rgvInfoWrite.TaskReceivedDone == 2) |
| | | else if (rgvInfoRead.TaskDone != 3 && rgvInfoWrite.TaskReceivedDone == 2) |
| | | { |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); |
| | | } |