qinchulong
2025-03-08 31b07882a70110829c0742407e8288f217327ce9
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs
@@ -138,35 +138,40 @@
                    {
                        if (oHTReadData.R_RunState == (int)RunStateEnum.Standby)
                        {
                            Dt_Task? task = GetTask(InorOut);
                            if (task != null)
                            //查看任务池中是否存在执行中的任务
                            var tasking = _taskService.QueryTasking();
                            if (tasking==null)
                            {
                                OHTTaskCommand? oHTTaskCommand = ConvertToOHTTaskCommand(task);
                                if (oHTTaskCommand != null)
                                Dt_Task? task = GetTask(InorOut);
                                if (task != null)
                                {
                                    //给天车下发任务之前将此值写0
                                    device.SetValue(DeviceDBName.W_ConfirmSignal, 0);
                                    //todo:写入任务命令
                                    device.SetValue(DeviceDBName.W_Task_Type, oHTTaskCommand.W_Task_Type);
                                    device.SetValue(DeviceDBName.W_Pick_Line, oHTTaskCommand.W_Pick_Line);
                                    device.SetValue(DeviceDBName.W_Pick_Column, oHTTaskCommand.W_Pick_Column);
                                    device.SetValue(DeviceDBName.W_Put_Line, oHTTaskCommand.W_Put_Line);
                                    device.SetValue(DeviceDBName.W_Put_Column, oHTTaskCommand.W_Put_Column);
                                    device.SetValue(DeviceDBName.W_Catch_1, oHTTaskCommand.W_Catch_1);
                                    device.SetValue(DeviceDBName.W_Catch_2, oHTTaskCommand.W_Catch_2);
                                    device.SetValue(DeviceDBName.W_TaskNumber, oHTTaskCommand.W_TaskNumber);
                                    device.SetValue(DeviceDBName.W_CheckValue, oHTTaskCommand.W_CheckValue);
                                    //确认信号写入1,任务下达完成
                                    device.SetValue(DeviceDBName.W_ConfirmSignal, 1);
                                    Thread.Sleep(500);
                                    //WCS检测到天车的R_TaskState=1,通过W_ConfirmSignalç½®2表示让天车开始执行任务
                                    int R_TaskState = device.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState);
                                    if (R_TaskState == 1)
                                    OHTTaskCommand? oHTTaskCommand = ConvertToOHTTaskCommand(task);
                                    if (oHTTaskCommand != null)
                                    {
                                        device.SetValue(DeviceDBName.W_ConfirmSignal, 2);
                                        //给天车下发任务之前将此值写0
                                        device.SetValue(DeviceDBName.W_ConfirmSignal, 0);
                                        //todo:写入任务命令
                                        device.SetValue(DeviceDBName.W_Task_Type, oHTTaskCommand.W_Task_Type);
                                        device.SetValue(DeviceDBName.W_Pick_Line, oHTTaskCommand.W_Pick_Line);
                                        device.SetValue(DeviceDBName.W_Pick_Column, oHTTaskCommand.W_Pick_Column);
                                        device.SetValue(DeviceDBName.W_Put_Line, oHTTaskCommand.W_Put_Line);
                                        device.SetValue(DeviceDBName.W_Put_Column, oHTTaskCommand.W_Put_Column);
                                        device.SetValue(DeviceDBName.W_Catch_1, oHTTaskCommand.W_Catch_1);
                                        device.SetValue(DeviceDBName.W_Catch_2, oHTTaskCommand.W_Catch_2);
                                        device.SetValue(DeviceDBName.W_TaskNumber, oHTTaskCommand.W_TaskNumber);
                                        device.SetValue(DeviceDBName.W_CheckValue, oHTTaskCommand.W_CheckValue);
                                        //确认信号写入1,任务下达完成
                                        device.SetValue(DeviceDBName.W_ConfirmSignal, 1);
                                        Thread.Sleep(500);
                                        //WCS检测到天车的R_TaskState=1,通过W_ConfirmSignalç½®2表示让天车开始执行任务
                                        int R_TaskState = device.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState);
                                        if (R_TaskState == 1)
                                        {
                                            device.SetValue(DeviceDBName.W_ConfirmSignal, 2);
                                        }
                                        //下发成功,修改任务状态
                                        _taskService.UpdateTaskStatus(task.TaskId, oHTTaskCommand.W_Task_Type);
                                    }
                                    //下发成功,修改任务状态
                                    _taskService.UpdateTaskStatus(task.TaskNum, oHTTaskCommand.W_Task_Type);
                                }
                            }
                        }