647556386
2 天以前 2f8fc989f339a936b01092caebd4c46e6109da1b
WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/°å²Ä²Ö/ConveyorLineJob_BC.cs
@@ -148,7 +148,7 @@
                                    }
                                    else
                                    {
                                        Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == item.StationCode && x.DeviceCode == item.StationDeviceCode && x.TaskState == TaskStatusEnum.RGV_Finish.ObjToInt());
                                        Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == item.StationCode && x.DeviceCode == item.StationDeviceCode && x.TaskState == TaskStatusEnum.RGV_Finish.ObjToInt() && x.TaskNum == conveyorLineInfoRead.TaskNo);
                                        if (task != null)
                                        {
                                            _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute, deviceCode: task.Roadway, sourceAddress: item.StackerCraneStationCode);
@@ -212,12 +212,20 @@
                                            if (!conveyorLineSignalRead3.STB && !conveyorLineSignalRead3.ACK && conveyorLineStatus3.Online && conveyorLineStatus3.Free && !conveyorLineStatus3.Goods && !conveyorLineStatus3.Alarm && !STB && !ACK)//判断出库口是否空闲
                                            {
                                                Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && x.DeviceCode == device.DeviceCode && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt());
                                                if (task != null)
                                                Dt_Task outTask = _taskRepository.QueryFirst(x => x.TaskType >= TaskTypeEnum.Outbound.ObjToInt() && x.TaskType <= TaskTypeEnum.Inbound.ObjToInt() && (x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt()|| x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt()));
                                                if (outTask == null)
                                                {
                                                    _taskService.UpdateTask(task, TaskStatusEnum.RGV_Execute, sourceAddress: item.StationCode, targetAddress: routers.NextPosi, nextAddress: routers.NextPosi);
                                                    Thread.Sleep(100);
                                                    device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                                                    Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && x.DeviceCode == device.DeviceCode && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt());
                                                    if (task != null)
                                                    {
                                                        _taskService.UpdateTask(task, TaskStatusEnum.RGV_Execute, sourceAddress: item.StationCode, targetAddress: routers.NextPosi, nextAddress: routers.NextPosi);
                                                        Thread.Sleep(100);
                                                        for (int i = 0; i < 3; i++)
                                                        {
                                                            device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                                                        }
                                                        WriteDebug("板材输送出库口", $"出库输送线ACK信号{item.StationCode}已写入,任务号{task.TaskNum}");
                                                    }
                                                }
                                            }
                                        }