Zhang-Hong-Lin
2025-03-07 ee94d6b5b5719159370c5e0055957d2dffb3f815
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs
@@ -54,10 +54,10 @@
                var ZXJdevice = Storage.Devices.Find(v => v.DeviceName == "阳极整形机");
                //规整机PLC对象
                var GZJevice = Storage.Devices.Find(v => v.DeviceName == "阳极规整机");
                //if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected)
                //{
                //    return Task.CompletedTask;
                //}
                if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected)
                {
                    return Task.CompletedTask;
                }
                try
                {
                    #region å¤©è½¦å®Œæˆä»»åŠ¡é€»è¾‘
@@ -108,6 +108,16 @@
                    else if (oHTReadData.R_RunState == (int)RunStateEnum.PutCompleted && oHTReadData.R_TaskState == (int)TaskStateEnum.TaskComplete)
                    {
                        //天车放货完成逻辑
                        WebResponseContent result = _taskService.StackCraneTaskCompleted(oHTReadData.R_TaskNumber, oHTReadData.weight);
                        if (result.Status)
                        {
                            device.SetValue(DeviceDBName.W_ConfirmSignal, 3);
                        }
                        return Task.CompletedTask;
                    }
                    else if (oHTReadData.R_RunState == (int)RunStateEnum.MoveCompleted && oHTReadData.R_TaskState == (int)TaskStateEnum.TaskComplete)
                    {
                        //天车移动完成
                        WebResponseContent result = _taskService.StackCraneTaskCompleted(oHTReadData.R_TaskNumber, oHTReadData.weight);
                        if (result.Status)
                        {
@@ -214,6 +224,25 @@
                }
                oHtTaskCommand.W_CheckValue = 3 + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
            }
            else if(task.TaskState == (int)TaskMoveStatusEnum.OutNewMove )
            {
                oHtTaskCommand.W_Task_Type = 4;
                string[] SourceCodes = task.TargetAddress.Split("-");
                if (SourceCodes.Length == 3)
                {
                    oHtTaskCommand.W_Pick_Line = 0;
                    oHtTaskCommand.W_Pick_Column = 0;
                    oHtTaskCommand.W_Put_Line = Convert.ToInt16(SourceCodes[0]);
                    oHtTaskCommand.W_Put_Column = Convert.ToInt16(SourceCodes[1]);
                }
                else
                {
                    //数据配置错误
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"任务源地址配置错误!");
                    return null;
                }
                oHtTaskCommand.W_CheckValue = 4 + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
            }
            
            if (task.WMSId==1)
            {