From 9429653e8def2729014b45c7c75ec76e9aa6685b Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期四, 12 六月 2025 17:13:48 +0800 Subject: [PATCH] 优化堆垛机交互逻辑 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 78 ++++++++++++--------------------------- 1 files changed, 24 insertions(+), 54 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" index 766dbe2..b1b84a9 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" @@ -34,63 +34,31 @@ { try { - #region MyRegion - OtherDevice StackerCrane = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams"); - if (StackerCrane != null) - { - //var CurrentTaskNum = StackerCrane.Communicator.Read<short>("MD755"); - var DeviceStatu = StackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.DeviceStatus); - var StackerCraneStatu = StackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.StackerCraneStatus); - var RunStatus = StackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.RunStatus); - StackerCrane.SetValue(StackerCraneDBName.StartRow, 1); - StackerCrane.SetValue(StackerCraneDBName.StartColumn, 2); - StackerCrane.SetValue(StackerCraneDBName.StartLayer, 3); - StackerCrane.SetValue(StackerCraneDBName.EndRow, 4); - StackerCrane.SetValue(StackerCraneDBName.EndColumn, 5); - StackerCrane.SetValue(StackerCraneDBName.EndLayer, 2); - StackerCrane.SetValue(StackerCraneDBName.TaskNum, 216); - StackerCrane.SetValue(StackerCraneDBName.WorkType, 1); - } - - #endregion - SpeStackerCrane speStackerCrane = (SpeStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); if (speStackerCrane != null) { - var CurrentTaskNum = speStackerCrane.Communicator.Read<short>("MD755"); - var DeviceStatu = speStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.DeviceStatus); - var StackerCraneStatu = speStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.StackerCraneStatus); - speStackerCrane.SetValue(StackerCraneDBName.StartRow, 1); - speStackerCrane.SetValue(StackerCraneDBName.StartColumn, 2); - speStackerCrane.SetValue(StackerCraneDBName.StartLayer, 3); - speStackerCrane.SetValue(StackerCraneDBName.EndRow, 4); - speStackerCrane.SetValue(StackerCraneDBName.EndColumn, 5); - speStackerCrane.SetValue(StackerCraneDBName.EndLayer, 2); - GetStackerObject getStackerObject = new GetStackerObject(speStackerCrane); if (!getStackerObject.IsEventSubscribed) { getStackerObject.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 } - if (getStackerObject.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && getStackerObject.StackerCraneStatusValue == StackerCraneStatus.Ready) - { - getStackerObject.CheckStackerCraneTaskCompleted();//妫�娴嬪爢鍨涙満浠诲姟瀹屾垚浜嬩欢 - if (getStackerObject.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) + getStackerObject.CheckStackerCraneTaskCompleted();//妫�娴嬪爢鍨涙満浠诲姟瀹屾垚浜嬩欢 + + if (getStackerObject.StackerCraneStatusValue == StackerCraneStatus.Ready) + { + Dt_Task? task = GetTask(speStackerCrane); + if (task != null) { - Dt_Task? task = GetTask(speStackerCrane); - if (task != null) + StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); + if (stackerCraneTaskCommand != null) { - StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); - if (stackerCraneTaskCommand != null) + bool sendFlag = getStackerObject.SendCommand(stackerCraneTaskCommand); + if (sendFlag) { - bool sendFlag = getStackerObject.SendCommand(stackerCraneTaskCommand); - if (sendFlag) - { - speStackerCrane.SetValue(StackerCraneDBName.CommandSend, 1);//鍚姩鍛戒护 - speStackerCrane.LastTaskType = task.TaskType; - _taskService.UpdateTaskStatusToNext(task.TaskNum); - } + speStackerCrane.SetValue(StackerCraneDBName.CommandSend, 1);//鍚姩鍛戒护 + speStackerCrane.LastTaskType = task.TaskType; + _taskService.UpdateTaskStatusToNext(task.TaskNum); } } } @@ -114,10 +82,10 @@ SpeStackerCrane? speStackerCrane = sender as SpeStackerCrane; if (speStackerCrane != null) { - if (speStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) + if (speStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CommandSend) != 2) { + speStackerCrane.SetValue(StackerCraneDBName.CommandSend, 2); _taskService.StackCraneTaskCompleted(e.TaskNum); - speStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); } } } @@ -199,14 +167,14 @@ stackerCraneTaskCommand.Barcode = task.PalletCode; stackerCraneTaskCommand.TaskNum = task.TaskNum; - stackerCraneTaskCommand.WorkType = 1; stackerCraneTaskCommand.TrayType = 0; if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())//鍒ゆ柇鏄惁鏄叆搴撲换鍔� { + stackerCraneTaskCommand.WorkType = 1; if (task.SourceAddress != null && task.TargetAddress != null) { string[] sourceCodes = task.SourceAddress.Split("-"); - if (sourceCodes.Length == 3) + if (sourceCodes.Length == 5) { stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]); stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]); @@ -219,7 +187,7 @@ return null; } string[] targetCodes = task.TargetAddress.Split("-"); - if (targetCodes.Length == 3) + if (targetCodes.Length == 5) { stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]); stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]); @@ -240,10 +208,11 @@ } else if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt()) { + stackerCraneTaskCommand.WorkType = 2; if (task.SourceAddress != null && task.TargetAddress != null) { string[] targetCodes = task.TargetAddress.Split("-"); - if (targetCodes.Length == 3) + if (targetCodes.Length == 5) { stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]); stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]); @@ -256,7 +225,7 @@ return null; } string[] sourceCodes = task.SourceAddress.Split("-"); - if (sourceCodes.Length == 3) + if (sourceCodes.Length == 5) { stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]); stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]); @@ -277,10 +246,11 @@ } else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt()) { + stackerCraneTaskCommand.WorkType = 3; if (task.SourceAddress != null && task.TargetAddress != null) { string[] targetCodes = task.TargetAddress.Split("-"); - if (targetCodes.Length == 3) + if (targetCodes.Length == 5) { stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]); stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]); @@ -293,7 +263,7 @@ return null; } string[] sourceCodes = task.SourceAddress.Split("-"); - if (sourceCodes.Length == 3) + if (sourceCodes.Length == 5) { stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]); stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]); -- Gitblit v1.9.3