| | |
| | | if (deviceProRead != null && deviceProWrite != null) |
| | | { |
| | | R_RGVCPInfo rgvInfoRead = device.Communicator.ReadCustomer<R_RGVCPInfo>(deviceProRead.DeviceProAddress); |
| | | if (rgvInfoRead.Mode==4 && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1) |
| | | W_RGVCPInfo rgvInfoWrite = device.Communicator.ReadCustomer<W_RGVCPInfo>(deviceProWrite.DeviceProAddress); |
| | | if (rgvInfoRead.Mode==5 && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1) |
| | | { |
| | | List<Dt_Task> tasks = _taskRepository.QueryData(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState != TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode); |
| | | //鑾峰彇浠诲姟 |
| | | Dt_Task task = _taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode==device.DeviceCode); |
| | | if (task != null) |
| | | 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) |
| | | { |
| | | device.SetValue(W_RgvCPDB.WcsTask, task.TaskNum); |
| | | 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); |
| | | Thread.Sleep(1000); |
| | | //澶嶄綅淇″彿 |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); |
| | | 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); |
| | | } |
| | | } |
| | | else if(rgvInfoRead.Mode == 4 && rgvInfoRead.State == 1 && rgvInfoRead.TaskDone == 3) |
| | | else if((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.TaskDone == 3) |
| | | { |
| | | //鑾峰彇浠诲姟 |
| | | Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum==rgvInfoRead.RgvEndTask && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode); |
| | | 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); |
| | | if (task != null) |
| | | { |
| | | //鑾峰彇涓嬩竴涓妭鐐圭殑璺敱 |
| | |
| | | task.NextAddress = ""; |
| | | task.DeviceCode = stationManger.StationDeviceCode; |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 2); |
| | | Thread.Sleep(1000); |
| | | //澶嶄綅淇″彿 |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); |
| | | _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute); |
| | | WriteError(device.DeviceName, $"RGV浠诲姟瀹屾垚,浠诲姟鍙穥rgvInfoRead.RgvEndTask}"); |
| | | } |
| | |
| | | WriteError(device.DeviceName, $"鏈壘鍒癛GV瀵瑰簲鐨勭粨鏉熶换鍔rgvInfoRead.RgvEndTask}"); |
| | | } |
| | | } |
| | | else if (rgvInfoRead.TaskDone == 2 && rgvInfoWrite.TaskReceivedDone == 1) |
| | | { |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); |
| | | } |
| | | else if (rgvInfoRead.TaskDone == 0 && rgvInfoWrite.TaskReceivedDone == 2) |
| | | { |
| | | device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); |
| | | } |
| | | } |
| | | else |
| | | { |