From bfd2cde0cc9b9871eeab1503c837beabb9ade9e5 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期二, 16 九月 2025 17:35:53 +0800 Subject: [PATCH] 增加叠盘机拆盘机流程 --- 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs | 246 +++++++++++++++++++++++++++++------------------- 1 files changed, 147 insertions(+), 99 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" index bd06e10..8073876 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" @@ -20,6 +20,7 @@ using WIDESEAWCS_Tasks; using WIDESEAWCS_Tasks.ConveyorLineJob; using WIDESEAWCS_Tasks.DBNames; +using WIDESEAWCS_Tasks.StackPlateJob; using static Dm.net.buffer.ByteArrayBuffer; namespace WIDESEAWCS_Server.Controllers @@ -68,7 +69,7 @@ } else//鍑哄簱鏀捐揣璇锋眰 { - var content = PutRequest(secureApplyModel.WbCode, task.PalletType); + var content = PutRequest(task.NextAddress, task.PalletType); if (!content.Status) { throw new Exception(content.Message); @@ -87,7 +88,7 @@ } else//鍏ュ簱鏀捐揣璇锋眰 { - var content = PutRequest(secureApplyModel.WbCode, task.TaskNum); + var content = PutRequest(task.NextAddress, task.TaskNum); if (!content.Status) { throw new Exception(content.Message); @@ -239,7 +240,7 @@ } else { - if (task.TaskType == TaskTypeEnum.PrintInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintBackInbound.ObjToInt()) + if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt()) { var content = TakeFinish(task.CurrentAddress); if (!content.Status) @@ -257,7 +258,7 @@ { throw new Exception($"{task.NextAddress}AGV绔欏彴鏈畾涔�"); } - if (task.TaskType == TaskTypeEnum.PrintInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintBackInbound.ObjToInt()) + if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt()) { List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.NextAddress == x.StartPosi); Dt_Router router = routers.FirstOrDefault(); @@ -286,7 +287,7 @@ else { _taskService.TaskCompleted(task.TaskNum); - if (task.TaskType==TaskTypeEnum.PrintOutbound.ObjToInt()) + if (task.TaskType==TaskTypeEnum.PrintYLOutbound.ObjToInt()) { PutFinish(task.NextAddress); } @@ -315,7 +316,7 @@ WebResponseContent content = new WebResponseContent(); try { - Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.AGVStationCode == code); + Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == code); if (stationManger == null) { return content.Error($"鏈壘鍒扮珯鍙伴厤缃�"); @@ -325,60 +326,76 @@ { return content.Error($"鏈壘鍒板搴旇澶�"); } + if (device.DeviceCode.Contains("Plate")) + { + CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; + StackPlateTaskCommandCommand command = commonConveyorLine.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode); - OtherDevice otherDevice = (OtherDevice)device; + if (command != null && command.State == 2 && command.InteractiveSignal == 1) + { + return content.OK("鍏佽鏀炬枡"); + } + else + { + return content.Error("绂佹鏀炬枡"); + } + } + else + { - if (device.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎 - { - short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); - if (Command == 3) + OtherDevice otherDevice = (OtherDevice)device; + + if (device.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎 { - content.OK("鍏佽鏀炬枡"); + short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); + if (Command == 3) + { + content.OK("鍏佽鏀炬枡"); + } + else + { + return content.Error("绂佹鏀炬枡"); + } } - else + else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙� { - return content.Error("绂佹鏀炬枡"); + bool RequestPut = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_RequestPut, stationManger.StationDeviceCode); + if (!RequestPut) + { + otherDevice.SetValue(CoveryorDB.C_InTaskNum, taskNum, stationManger.StationDeviceCode); + otherDevice.SetValue(CoveryorDB.C_RequestPut, true, stationManger.StationDeviceCode); + Thread.Sleep(1000); + } + bool AllowFinish = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowFinish, stationManger.StationDeviceCode); + if (AllowFinish) + { + content.OK("鍏佽鏀炬枡"); + } + else + { + return content.Error("绂佹鏀炬枡"); + } + } + else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 + { + bool RequestPut = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_RequestPut, stationManger.StationDeviceCode); + if (!RequestPut) + { + otherDevice.SetValue(RetractDB.Ret_TargetAddress, Convert.ToInt16(stationManger.StationCode), stationManger.StationDeviceCode); + otherDevice.SetValue(RetractDB.Ret_RequestPut, true, stationManger.StationDeviceCode); + Thread.Sleep(1000); + } + bool AllowFinish = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowFinish, stationManger.StationDeviceCode); + if (AllowFinish) + { + content.OK("鍏佽鏀炬枡"); + } + else + { + return content.Error("绂佹鏀炬枡"); + } } } - else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙� - { - bool RequestPut = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_RequestPut, stationManger.StationDeviceCode); - if (!RequestPut) - { - otherDevice.SetValue(CoveryorDB.C_InTaskNum, taskNum, stationManger.StationDeviceCode); - otherDevice.SetValue(CoveryorDB.C_RequestPut, true, stationManger.StationDeviceCode); - Thread.Sleep(1000); - } - bool AllowFinish = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowFinish, stationManger.StationDeviceCode); - if (AllowFinish) - { - content.OK("鍏佽鏀炬枡"); - } - else - { - return content.Error("绂佹鏀炬枡"); - } - } - else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 - { - bool RequestPut = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_RequestPut, stationManger.StationDeviceCode); - if (!RequestPut) - { - otherDevice.SetValue(RetractDB.Ret_TargetAddress, Convert.ToInt16(stationManger.StationCode), stationManger.StationDeviceCode); - otherDevice.SetValue(RetractDB.Ret_RequestPut, true, stationManger.StationDeviceCode); - Thread.Sleep(1000); - } - bool AllowFinish = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowFinish, stationManger.StationDeviceCode); - if (AllowFinish) - { - content.OK("鍏佽鏀炬枡"); - } - else - { - return content.Error("绂佹鏀炬枡"); - } - } - return content; } catch (Exception ex) @@ -408,15 +425,23 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶�"); } - - OtherDevice otherDevice = (OtherDevice)device; - if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙� + if (device.DeviceCode.Contains("Plate")) { - otherDevice.SetValue(CoveryorDB.C_PutFinish, true, stationManger.StationDeviceCode); + CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; + commonConveyorLine.SetValue(StackPlateDBName.WriteInteractiveSignal, Convert.ToInt16(1), device.DeviceCode); + return WebResponseContent.Instance.OK(); } - else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 + else { - otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode); + OtherDevice otherDevice = (OtherDevice)device; + if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙� + { + otherDevice.SetValue(CoveryorDB.C_PutFinish, true, stationManger.StationDeviceCode); + } + else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 + { + otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode); + } } return WebResponseContent.Instance.OK(); } @@ -448,46 +473,61 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶噞stationManger.StationDeviceCode}"); } - - OtherDevice otherDevice = (OtherDevice)device; - - if (otherDevice.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎 + if (device.DeviceCode.Contains("Plate")) { - short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); - if (Command == 2) + CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; + StackPlateTaskCommandCommand command = commonConveyorLine.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode); + + if (command != null&&command.State == 2 && command.InteractiveSignal == 2) { - content.OK("鍏佽鍙栨枡"); + return content.OK("鍏佽鍙栨枡"); } else { return content.Error("绂佹鍙栨枡"); } } - else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙� + else { - bool AllowTake = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowTake, stationManger.StationDeviceCode); - if (AllowTake) - { - content.OK("鍏佽鍙栨枡"); - } - else - { - return content.Error("绂佹鍙栨枡"); - } - } - else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 - { - bool AllowTake = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowTake, stationManger.StationDeviceCode); - if (AllowTake) - { - content.OK("鍏佽鍙栨枡"); - } - else - { - return content.Error("绂佹鍙栨枡"); - } - } + OtherDevice otherDevice = (OtherDevice)device; + if (otherDevice.DeviceCode.Contains("CP"))//鎴愬搧杈撻�佺嚎 + { + short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); + if (Command == 2) + { + content.OK("鍏佽鍙栨枡"); + } + else + { + return content.Error("绂佹鍙栨枡"); + } + } + else if (device.DeviceCode.Contains("Coveryor"))//鎺ラ┏鍙� + { + bool AllowTake = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowTake, stationManger.StationDeviceCode); + if (AllowTake) + { + content.OK("鍏佽鍙栨枡"); + } + else + { + return content.Error("绂佹鍙栨枡"); + } + } + else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 + { + bool AllowTake = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowTake, stationManger.StationDeviceCode); + if (AllowTake) + { + content.OK("鍏佽鍙栨枡"); + } + else + { + return content.Error("绂佹鍙栨枡"); + } + } + } return content; } catch (Exception ex) @@ -517,19 +557,27 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶�"); } - - OtherDevice otherDevice = (OtherDevice)device; - if (device.DeviceCode.Contains("CP")) + if (device.DeviceCode.Contains("Plate")) { - otherDevice.SetValue(W_ConveyorLineCPDB.W_Command, 2, stationManger.StationCode); + CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; + commonConveyorLine.SetValue(StackPlateDBName.WriteInteractiveSignal, Convert.ToInt16(2), device.DeviceCode); + return WebResponseContent.Instance.OK(); } - else if (device.DeviceCode.Contains("Coveryor")) + else { - otherDevice.SetValue(CoveryorDB.C_TakeFinish, true, stationManger.StationDeviceCode); - } - else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 - { - otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode); + OtherDevice otherDevice = (OtherDevice)device; + if (device.DeviceCode.Contains("CP")) + { + otherDevice.SetValue(W_ConveyorLineCPDB.W_Command, 2, stationManger.StationCode); + } + else if (device.DeviceCode.Contains("Coveryor")) + { + otherDevice.SetValue(CoveryorDB.C_TakeFinish, true, stationManger.StationDeviceCode); + } + else if (device.DeviceCode.Contains("Retract"))//浼哥缉璐у弶 + { + otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode); + } } return WebResponseContent.Instance.OK(); -- Gitblit v1.9.3