From e2a5657e3a0b8615bcd78a3149e5ba9ce5579bb8 Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期一, 02 十二月 2024 16:25:35 +0800 Subject: [PATCH] 1 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 182 +++++++++++++++++++++++++++++++-------------- 1 files changed, 126 insertions(+), 56 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 ea508ed..84ea5c9 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" @@ -146,17 +146,31 @@ task = OutTaskMovelibrary(task); if (task != null) { - return task; + if (OutTaskStationIsOccupied(task) != null) + { + return task; + } } } - if (OutTaskStationIsOccupied(task) != null) + else + { + if (OutTaskStationIsOccupied(task) != null) + { + return task; + } + task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); + } + + + /*if (OutTaskStationIsOccupied(task) != null) { return task; } else { List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList(); - List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes); + + List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode); foreach (var item in tasks) { if (OutTaskStationIsOccupied(task) != null) @@ -165,9 +179,8 @@ } } //task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); - } + }*/ } - return task; } @@ -223,7 +236,7 @@ Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); if (tasks != null) { - return task; + return tasks; } else { @@ -296,7 +309,20 @@ if (device != null) { CommonConveyorLine conveyorLine = (CommonConveyorLine)device; - if (PLCSignal(conveyorLine, task.TargetAddress, 1)) //鍐欏叆杈撻�佺嚎 鍫嗗灈鏈烘斁璐� 淇″彿 + if (task.TargetAddress == "R02-002-027-011-01" || task.TargetAddress == "R01-002-041-011-01") //鍐欏叆杈撻�佺嚎鍘诲悜 + { + byte PLCtost = (byte)task.PLCTo; + if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost)) + { + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ幓鍚戞垚鍔燂紝鍘诲悜涓猴細{PLCtost}", $"鍑烘枡鍙e幓鍚�"); + } + else + { + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ幓鍚戝け璐ワ紝鍘诲悜涓猴細{PLCtost}", $"鍑烘枡鍙e幓鍚�"); + } + } + + if (PLCSignal(conveyorLine, task.TargetAddress, (byte)1)) //鍐欏叆杈撻�佺嚎 鍫嗗灈鏈烘斁璐� 淇″彿 { //璇诲彇杈撻�佺嚎鍙嶉 鍫嗗灈鏈烘斁涓嬩俊鍙� DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, task.TargetAddress, "R_StackerCraneLowered"); //杈撻�佺嚎鍗忚鎵捐鍙栦俊鍙� @@ -307,64 +333,75 @@ if (B_TAKE == 1) { - - - - //鍫嗗灈鏈哄啓瀹屾垚 - if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) + if (task.TargetAddress == "R02-002-027-011-01" || task.TargetAddress == "R01-002-041-011-01") { - WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鏀句笅淇″彿鎴愬姛锛歵rue", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}"); - } - else - { - WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鏀句笅淇″彿澶辫触:true", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}"); - } - - if (task.TargetAddress == "R02-002-027-011-01" || task.TargetAddress == "R01-002-041-011-01") //鍐欏叆杈撻�佺嚎鍘诲悜 - { - byte PLCtost = (byte)task.PLCTo; - while (true) + DeviceProDTO? deviceProDTO3 = GetDeviceProDTO(conveyorLine, task.TargetAddress, "R_Destination"); + if (deviceProDTO3 != null) { - if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost)) + int PLCwcstost = GetLine(conveyorLine, deviceProDTO3.DeviceProDataBlock); + if (PLCwcstost == task.PLCTo) { - WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ幓鍚戞垚鍔燂紝鍘诲悜涓猴細{PLCtost}", $"鍑烘枡鍙e幓鍚�"); - DeviceProDTO? deviceProDTO3 = GetDeviceProDTO(conveyorLine, task.TargetAddress, "R_Destination"); - if (deviceProDTO3 != null) + byte PLCtost2 = 0; + if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", PLCtost2)) { - int PLCwcstost = GetLine(conveyorLine, deviceProDTO3.DeviceProDataBlock); - if (PLCwcstost == PLCtost) - { - if (PLCSignal2(conveyorLine, task.TargetAddress, "W_Destination", 0)) - { - WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氭竻闄ゅ幓鍚戞垚鍔�", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}"); - break; - } - else - { - WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氭竻闄ゅ幓鍚戝け璐�", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}"); - } - } - else - { - WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬幓鍚戞瘮瀵逛笉涓�鑷达紝杈撻�佺嚎鍘诲悜涓猴細{PLCwcstost}锛寃cs鍐欏叆鍘诲悜涓猴細{PLCtost}", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}"); - } + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氭竻闄ゅ幓鍚戞垚鍔�", $"鍑烘枡鍙e幓鍚�"); + } + else + { + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氭竻闄ゅ幓鍚戝け璐�", $"鍑烘枡鍙e幓鍚�"); + } + // 娓呴櫎杈撻�佺嚎 + if (PLCSignal(conveyorLine, task.TargetAddress, (byte)0)) + { + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙锋垚鍔�", $"鍑烘枡鍙e幓鍚�"); + } + else + { + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�", $"鍑烘枡鍙e幓鍚�"); + } + //鍫嗗灈鏈哄啓瀹屾垚 + if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) + { + WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鏀句笅淇″彿鎴愬姛锛歵rue", $"鍑烘枡鍙e幓鍚�"); + } + else + { + WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鏀句笅淇″彿澶辫触:true", $"鍑烘枡鍙e幓鍚�"); + } + } else { - WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ幓鍚戝け璐ワ紝鍘诲悜涓猴細{PLCtost}", $"鍑烘枡鍙e幓鍚�"); + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬幓鍚戞瘮瀵逛笉涓�鑷达紝杈撻�佺嚎鍘诲悜涓猴細{PLCwcstost}锛寃cs鍐欏叆鍘诲悜涓猴細{task.PLCTo}", $"鍑烘枡鍙e幓鍚�"); } } } - // 娓呴櫎杈撻�佺嚎 - if (PLCSignal(conveyorLine, task.TargetAddress, 0)) + + if (task.TargetAddress != "R02-002-027-011-01" && task.TargetAddress != "R01-002-041-011-01") { - WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙锋垚鍔�", $"锛堟斁璐э級璇诲彇{task.TargetAddress}"); + // 娓呴櫎杈撻�佺嚎 + if (PLCSignal(conveyorLine, task.TargetAddress, 0)) + { + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙锋垚鍔�", $"锛堟斁璐э級璇诲彇{task.TargetAddress}"); + } + else + { + WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�", $"锛堟斁璐э級璇诲彇{task.TargetAddress}"); + } + + //鍫嗗灈鏈哄啓瀹屾垚 + if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true)) + { + WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鏀句笅淇″彿鎴愬姛锛歵rue", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}"); + } + else + { + WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鏀句笅淇″彿澶辫触:true", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}"); + } } - else - { - WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�", $"锛堟斁璐э級璇诲彇{task.TargetAddress}"); - } + + } else { @@ -565,7 +602,14 @@ { return true; } - + } + DeviceProDTO? deviceProDTO6 = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryRequest_A2in"); //绌烘墭鍑哄叆搴� + if (deviceProDTO6 != null) + { + if (GetStacker(commonStackerCrane, deviceProDTO6.DeviceProAddress).Status) + { + return true; + } } } return false; @@ -615,6 +659,15 @@ if (deviceProDTO != null) { if(SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } + } + } + + if (Destinationaddress == "R01-002-043-001-01") + { + DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryPermission_A2in"); + if (deviceProDTO != null) + { + if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } } } @@ -682,7 +735,17 @@ } } } - + if (Destinationaddress == "R01-002-043-001-01") + { + DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryCompleted_A2in"); + if (deviceProDTO != null) + { + if (GetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress).Status) + { + return true; + } + } + } return false; } @@ -731,7 +794,14 @@ if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } } } - + if (Destinationaddress == "R01-002-043-001-01") + { + DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryCompletion_A2in"); + if (deviceProDTO != null) + { + if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; } + } + } return false; } @@ -1031,7 +1101,7 @@ { StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand(); - stackerCraneTaskCommand.Barcode = task.PalletCode; + stackerCraneTaskCommand.Barcode = ""; /*task.PalletCode;*/ stackerCraneTaskCommand.TaskNum = task.TaskNum; stackerCraneTaskCommand.WorkType = 1; stackerCraneTaskCommand.TrayType = 0; -- Gitblit v1.9.3