| | |
| | | if (conmmand != null) |
| | | { |
| | | var structs = BitConverter.GetBytes(conmmand.InteractiveSignal).Reverse().ToArray().ToBoolArray(); |
| | | if (structs[2]) |
| | | if (structs[0] ) |
| | | { |
| | | var task = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress); |
| | | if (task != null) |
| | | var taskIn = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress); |
| | | var taskOut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish); |
| | | var taskPut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.AGV_InFinish); |
| | | if (taskPut != null) |
| | | { |
| | | WebResponseContent content = _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}"); |
| | | if (conmmand.ConveyorLineTaskNum == 0) |
| | | { |
| | | conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9990)); |
| | | conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskPut.TaskNum)); |
| | | _taskService.UpdateTaskStatusToNext(taskPut.TaskNum); |
| | | } |
| | | } |
| | | } |
| | | if (taskIn != null) |
| | | { |
| | | if (structs[2] && structs[1]) |
| | | { |
| | | WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskIn.TaskNum); |
| | | WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}"); |
| | | } |
| | | } |
| | | if (taskOut != null) |
| | | { |
| | | if (conmmand.ConveyorLineTaskNum == 0) |
| | | { |
| | | if (structs[2] && structs[1]) |
| | | { |
| | | conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999)); |
| | | conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskOut.TaskNum)); |
| | | } |
| | | WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskOut.TaskNum); |
| | | if (content.Status) |
| | | { |
| | | _taskService.SendAgvTask("LKQU", taskOut.TaskNum); |
| | | } |
| | | WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}"); |
| | | } |
| | | } |
| | | |
| | | if (structs[0]) |
| | | { |
| | | var task = _taskService.QueryRequestConveyorLineSignalTask(); |
| | | var taskSignal = _taskService.QueryRequestConveyorLineSignalTask(); |
| | | |
| | | if (task != null && task.AGVSign == "RequestPickUp") |
| | | if (taskSignal != null && taskSignal.AGVSign == "RequestPickUp") |
| | | { |
| | | if (!structs[3]) |
| | | { |
| | | conveyorLine.Communicator.WriteNoRead("DB100.0", Convert.ToInt32(9999)); |
| | | conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999)); |
| | | } |
| | | if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1) |
| | | { |
| | | await _taskService.ContinueAgvTask(task.AGVTaskNum); |
| | | task.AGVSign = ""; |
| | | task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish; |
| | | _taskRepository.UpdateData(task); |
| | | await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum); |
| | | taskSignal.AGVSign = ""; |
| | | taskSignal.TaskState = (int)TaskOutStatusEnum.Line_OutFinish; |
| | | _taskRepository.UpdateData(taskSignal); |
| | | } |
| | | } |
| | | if (task != null && task.AGVSign == "RequestPut") |
| | | if (taskSignal != null && taskSignal.AGVSign == "RequestPut") |
| | | { |
| | | if (!structs[3]) |
| | | { |
| | | conveyorLine.Communicator.WriteNoRead("DB100.0", Convert.ToInt32(9999)); |
| | | conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999)); |
| | | } |
| | | if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1) |
| | | { |
| | | await _taskService.ContinueAgvTask(task.AGVTaskNum); |
| | | task.AGVSign = ""; |
| | | _taskRepository.UpdateData(task); |
| | | await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum); |
| | | taskSignal.AGVSign = ""; |
| | | _taskRepository.UpdateData(taskSignal); |
| | | } |
| | | } |
| | | |