From 829eabf256e29392ca63f6da48829dba3b075dfe Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期五, 24 一月 2025 08:59:53 +0800
Subject: [PATCH] 资料,优化程序

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs |  294 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 189 insertions(+), 105 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..a25dcbe 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"
@@ -116,25 +116,6 @@
         private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane)
         {
             Dt_Task task;
-            /*if (commonStackerCrane.LastTaskType == null)
-            {
-                task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
-            }
-            else
-            {
-                if (commonStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
-                {
-                    task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
-                    if (task == null)
-                    {
-                        task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
-                    }
-                }
-                else
-                {
-                    task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
-                }
-            }*/
             task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
 
             if (task != null && task.TaskType== (int)TaskOutboundTypeEnum.Outbound)
@@ -143,31 +124,51 @@
                 if (targetCodes[4] == "02")
                 {
 
-                    task = OutTaskMovelibrary(task);
-                    if (task != null)
+                    Dt_Task taskst = OutTaskMovelibrary(task);
+                    if (taskst != null)
                     {
-                        return task;
+                        if(taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation) 
+                        {
+                            return taskst;
+                        }
+                        else
+                        {
+                            if(taskst.TargetAddress== "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02")
+                            {
+                                return taskst;
+                            }
+                            else
+                            {
+                                if (OutTaskStationIsOccupied(taskst) != null)
+                                {
+                                    return taskst;
+                                }
+                            }
+                                
+                        }
+                        
                     }
-                }
-                if (OutTaskStationIsOccupied(task) != null)
-                {
-                    return task;
+                    task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
                 }
                 else
                 {
-                    List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList();
-                    List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
-                    foreach (var item in tasks)
+                    if (task.TargetAddress == "R02-001-021-001-02" || task.TargetAddress == "R02-001-022-001-02")
+                    {
+                        return task;
+                    }
+                    else
                     {
                         if (OutTaskStationIsOccupied(task) != null)
                         {
                             return task;
                         }
                     }
-                    //task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+                    
+                    task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
                 }
-            }
 
+
+            }
             return task;
         }
 
@@ -220,10 +221,10 @@
                 }
                 targetCodes[4] = "01";
                 string SourceAddress = string.Join("-", targetCodes); //缁勮娴呭簱浣嶅湴鍧�
-                Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault();
+                Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //鎵炬祬搴撲綅鏄惁鏈変换鍔�
                 if (tasks != null)
                 {
-                    return task;
+                    return tasks;
                 }
                 else
                 {
@@ -248,7 +249,7 @@
             if (Applyrelease(commonStackerCrane)) //璇诲彇鍫嗗灈鏈烘斁璐х敵璇�
             {
                 Dt_Task task = _taskService.IngStackerCraneTask2(commonStackerCrane.DeviceCode);
-                if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
+                if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && (task.TargetAddress != "R02-001-021-001-02" && task.TargetAddress != "R02-001-022-001-02"))
                 {
                     IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceProDTOs.Exists(x => x.DeviceChildCode == task.TargetAddress));
                     if (device != null)
@@ -263,22 +264,24 @@
 
                                 if (Releasespermitted(commonStackerCrane, task.TargetAddress,true))  //鍐欏叆鍫嗗灈鏈哄厑璁告斁璐т俊
                                 {
-                                    WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鍏佽鏀捐揣淇″彿鎴愬姛锛歵rue", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}");
+
+                                    wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", "鍐欏叆鍫嗗灈鏈哄厑璁告斁璐т俊鍙锋垚鍔燂細true");
                                 }
                                 else
                                 {
-                                    WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満鍏佽鏀捐揣淇″彿澶辫触", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}");
+                                    wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", "鍐欏叆鍫嗗灈鏈哄厑璁告斁璐т俊鍙峰け璐�");
                                 }
                             }
                             else
                             {
                                 if (Releasespermitted(commonStackerCrane, task.TargetAddress,false))  //鍐欏叆鍫嗗灈鏈轰笉鍏佽鏀捐揣淇�
                                 {
-                                    WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満涓嶅厑璁告斁璐т俊鍙锋垚鍔燂細false", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}");
+
+                                    wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", "鍐欏叆鍫嗗灈鏈轰笉鍏佽鏀捐揣淇″彿鎴愬姛锛歠alse");
                                 }
                                 else
                                 {
-                                    WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ爢鍨涙満涓嶅厑璁告斁璐т俊鍙峰け璐�", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}");
+                                    wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", "鍐欏叆鍫嗗灈鏈轰笉鍏佽鏀捐揣淇″彿澶辫触");
                                 }
                             }
                         }
@@ -288,7 +291,7 @@
             else
             {
                 Dt_Task task = _taskService.IngStackerCraneTask2(commonStackerCrane.DeviceCode);
-                if (task !=null && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
+                if (task !=null && task.TaskType == (int)TaskOutboundTypeEnum.Outbound &&(task.TargetAddress != "R02-001-021-001-02" && task.TargetAddress != "R02-001-022-001-02"))
                 {
                     if (Completesignal(commonStackerCrane, task.TargetAddress))        //璇诲彇鍒版斁璐у畬鎴愪俊鍙�
                     {
@@ -296,7 +299,21 @@
                         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))
+                                {
+
+                                    wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍘诲悜鎴愬姛锛屽幓鍚戜负锛歿PLCtost}");
+                                }
+                                else
+                                {
+                                    wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍘诲悜澶辫触锛屽幓鍚戜负锛歿PLCtost}");
+                                }
+                            }
+
+                            if (PLCSignal(conveyorLine, task.TargetAddress, (byte)1)) //鍐欏叆杈撻�佺嚎 鍫嗗灈鏈烘斁璐� 淇″彿
                             {
                                 //璇诲彇杈撻�佺嚎鍙嶉  鍫嗗灈鏈烘斁涓嬩俊鍙�
                                 DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, task.TargetAddress, "R_StackerCraneLowered");    //杈撻�佺嚎鍗忚鎵捐鍙栦俊鍙�
@@ -307,88 +324,101 @@
 
                                     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}");
-                                                        }
+                                                        wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"娓呴櫎鍘诲悜鎴愬姛");
                                                     }
+                                                    else
+                                                    {
+                                                        wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"娓呴櫎鍘诲悜澶辫触");
+                                                    }
+                                                    // 娓呴櫎杈撻�佺嚎
+                                                    if (PLCSignal(conveyorLine, task.TargetAddress, (byte)0))
+                                                    {
+                                                        wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙锋垚鍔�");
+                                                    }
+                                                    else
+                                                    {
+                                                        wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�");
+                                                    }
+                                                    //鍫嗗灈鏈哄啓瀹屾垚
+                                                    if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true))
+                                                    {
+                                                        wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈烘斁涓嬩俊鍙锋垚鍔燂細true");
+                                                    }
+                                                    else
+                                                    {
+                                                        wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�:true");
+                                                    }
+
                                                 }
                                                 else
                                                 {
-                                                    WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ュ幓鍚戝け璐ワ紝鍘诲悜涓猴細{PLCtost}", $"鍑烘枡鍙e幓鍚�");
+                                                    wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍘诲悜姣斿涓嶄竴鑷达紝杈撻�佺嚎鍘诲悜涓猴細{PLCwcstost}锛寃cs鍐欏叆鍘诲悜涓猴細{task.PLCTo}");
                                                 }
                                             }
                                         }
-                                        // 娓呴櫎杈撻�佺嚎
-                                        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))
+                                            {
+                                                wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙锋垚鍔�");
+                                            }
+                                            else
+                                            {
+                                                wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�");
+                                            }
+
+                                            //鍫嗗灈鏈哄啓瀹屾垚
+                                            if (Releasespermitted4(commonStackerCrane, task.TargetAddress, true))
+                                            {
+
+                                                wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈烘斁涓嬩俊鍙锋垚鍔燂細true");
+                                            }
+                                            else
+                                            {
+                                                wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�:true");
+
+                                            }
                                         }
-                                        else
-                                        {
-                                            WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎娓呴櫎-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�", $"锛堟斁璐э級璇诲彇{task.TargetAddress}");
-                                        }
+
+                                            
                                     }
                                     else
                                     {
                                         // 娓呴櫎杈撻�佺嚎
                                         if (PLCSignal(conveyorLine, task.TargetAddress, 0))
                                         {
-                                            WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氭湭璇诲彇鍒拌緭閫佺嚎鍙嶉鍫嗗灈鏈哄畬鎴愬弽棣堜俊鍙凤紝閲嶇疆涓�0", $"锛堟斁璐э級璇诲彇{task.TargetAddress}");
+                                            wcs_PLCto06(task.TargetAddress + "鎴愬姛淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栧埌杈撻�佺嚎鍙嶉鍫嗗灈鏈哄畬鎴愬弽棣堜俊鍙凤紝閲嶇疆涓�0");
                                         }
                                         else
                                         {
-                                            WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氭湭璇诲彇鍒拌緭閫佺嚎鍙嶉鍫嗗灈鏈哄畬鎴愬弽棣堜俊鍙凤紝閲嶇疆涓�0", $"锛堟斁璐э級璇诲彇{task.TargetAddress}");
+                                            wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栧埌杈撻�佺嚎鍙嶉鍫嗗灈鏈哄畬鎴愬弽棣堜俊鍙凤紝閲嶇疆涓�0澶辫触");
                                         }
                                     }
                                 }
                             }
                             else
                             {
-                                WriteLog.GetLog("杈撻�佺嚎").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氬啓鍏ヨ緭閫佺嚎0-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}");
+                                wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎0-鍫嗗灈鏈烘斁涓嬩俊鍙峰け璐�");
+
                             }
                         }
                     }
                     else
                     {
-                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.TargetAddress},浠诲姟鍙凤細{task.TaskNum},淇℃伅锛氭湭璇诲彇鍒板爢鍨涙満鏀捐揣瀹屾垚淇″彿", $"锛堟斁璐э級鍐欏叆{task.TargetAddress}");
+                        wcs_PLCto06(task.TargetAddress + "閿欒淇℃伅", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栧埌鍫嗗灈鏈烘斁璐у畬鎴愪俊鍙�");
                     }
                 }
             }
@@ -411,22 +441,23 @@
                         {
                             if (Releasespermitted2(commonStackerCrane, task.SourceAddress,true))  //鍐欏叆鍫嗗灈鏈哄厑璁稿彇璐т俊鍙�
                             {
-                                WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氬啓鍏ュ爢鍨涙満鍏佽鍙栬揣淇″彿鎴愬姛:true", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                wcs_PLCto05(task.SourceAddress+"锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈哄厑璁稿彇璐т俊鍙锋垚鍔�:true");
                             }
                             else
                             {
-                                WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氬啓鍏ュ爢鍨涙満鍏佽鍙栬揣淇″彿澶辫触", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                wcs_PLCto05(task.SourceAddress + "锛氶敊璇俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈哄厑璁稿彇璐т俊鍙锋垚鍔�:true");
                             }
                         }
                         else
                         {
                             if (Releasespermitted2(commonStackerCrane, task.SourceAddress,false))  //鍐欏叆鍫嗗灈鏈哄厑璁稿彇璐т俊鍙�
                             {
-                                WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氭湭璇诲彇鍒拌緭閫佺嚎鍏佽鍙栬揣淇″彿锛屽啓鍏ュ爢鍨涙満鍏佽鍙栬揣淇″彿鎴愬姛:false", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栧埌杈撻�佺嚎鍏佽鍙栬揣淇″彿锛屽啓鍏ュ爢鍨涙満鍏佽鍙栬揣淇″彿鎴愬姛:false");
                             }
                             else
                             {
-                                WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氭湭璇诲彇鍒拌緭閫佺嚎鍏佽鍙栬揣淇″彿锛屽啓鍏ュ爢鍨涙満鍏佽鍙栬揣淇″彿澶辫触", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+
+                                wcs_PLCto05(task.SourceAddress + "锛氶敊璇俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栧埌杈撻�佺嚎鍏佽鍙栬揣淇″彿锛屽啓鍏ュ爢鍨涙満鍏佽鍙栬揣淇″彿澶辫触");
                             }
                            
                         }
@@ -436,6 +467,7 @@
                     {
                         if(PLCSignal2(conveyorLine, task.SourceAddress, "W_StackerCranePicked", 1))    //鍐欏叆杈撻�佺嚎鍙栬揣瀹屾垚淇″彿
                         {
+                            wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎鍙栬揣瀹屾垚淇″彿锛屽湴鍧�锛歿conveyorLine}");
                             DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, task.SourceAddress, "R_StackerCranePicked");    //杈撻�佺嚎鍗忚鎵捐鍙栦俊鍙�
                             if (deviceProDTO != null)
                             {
@@ -445,31 +477,36 @@
                                     //鍐欏叆缁欏爢鍨涙満锛岃緭閫佺嚎鐨�  鍫嗗灈鏈哄彇璧� 淇″彿
                                     if(Releasespermitted3(commonStackerCrane, task.SourceAddress,true))
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氬啓鍏ュ爢鍨涙満鍙栬蛋淇″彿鎴愬姛:true", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈哄彇璧颁俊鍙锋垚鍔�:true");
                                     }
                                     else
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氬啓鍏ュ爢鍨涙満鍙栬蛋淇″彿澶辫触:true", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氶敊璇俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈哄彇璧颁俊鍙峰け璐�:true");
                                     }
                                 }
                                 else
                                 {
                                     if (Releasespermitted3(commonStackerCrane, task.SourceAddress,false))
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氭湭璇诲彇杈撻�佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿鎴愬姛:false", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栬緭閫佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿鎴愬姛:false");
                                     }
                                     else
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氭湭璇诲彇杈撻�佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿澶辫触:false", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氶敊璇俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栬緭閫佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿澶辫触:false");
                                     }
                                 }
                             }
+                        }
+                        else
+                        {
+                            wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎鍙栬揣瀹屾垚淇″彿澶辫触锛屽湴鍧�锛歿conveyorLine}");
                         }
                     }
                     else
                     {
                         if (PLCSignal2(conveyorLine, task.SourceAddress, "W_StackerCranePicked", 0))    //鍐欏叆杈撻�佺嚎娓呴櫎淇″彿
                         {
+                            wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎娓呴櫎淇″彿鎴愬姛锛屽湴鍧�锛歿conveyorLine}");
                             DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, task.SourceAddress, "R_StackerCranePicked");    //杈撻�佺嚎鍗忚鎵捐鍙栦俊鍙�
                             if (deviceProDTO != null)
                             {
@@ -479,25 +516,29 @@
                                     //鍐欏叆缁欏爢鍨涙満锛岃緭閫佺嚎鐨�  鍫嗗灈鏈哄彇璧� 淇″彿
                                     if (Releasespermitted3(commonStackerCrane, task.SourceAddress, false))
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氬啓鍏ュ爢鍨涙満鍙栬蛋淇″彿鎴愬姛:true", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈哄彇璧颁俊鍙锋垚鍔�:true");
                                     }
                                     else
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氬啓鍏ュ爢鍨涙満鍙栬蛋淇″彿澶辫触:true", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氶敊璇俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆鍫嗗灈鏈哄彇璧颁俊鍙峰け璐�:true");
                                     }
                                 }
                                 else
                                 {
                                     if (Releasespermitted3(commonStackerCrane, task.SourceAddress, false))
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氭湭璇诲彇杈撻�佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿鎴愬姛:false", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氭垚鍔熶俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栬緭閫佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿鎴愬姛:false");
                                     }
                                     else
                                     {
-                                        WriteLog.GetLog("鍫嗗灈鏈轰俊鍙�").Write($"绔欏彴缂栧彿锛歿task.SourceAddress},淇℃伅锛氭湭璇诲彇杈撻�佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿澶辫触:false", $"锛堝彇璐э級鍐欏叆{task.SourceAddress}");
+                                        wcs_PLCto05(task.SourceAddress + "锛氶敊璇俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鏈鍙栬緭閫佺嚎鐨勫爢鍨涙満鍙栬蛋淇″彿锛屽啓鍏ュ爢鍨涙満鍙栬蛋淇″彿澶辫触:false");
                                     }
                                 }
                             }
+                        }
+                        else
+                        {
+                            wcs_PLCto05(task.SourceAddress + "锛氶敊璇俊鎭�", $"浠诲姟鍙凤細{task.TaskNum}锛屾墭鐩樻潯鐮侊細{task.PalletCode}", $"鍐欏叆杈撻�佺嚎娓呴櫎淇″彿澶辫触锛屽湴鍧�锛歿conveyorLine}");
                         }
                     }
                 }
@@ -565,7 +606,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 +663,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 +739,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 +798,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 +1105,7 @@
         {
             StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand();
 
-            stackerCraneTaskCommand.Barcode = task.PalletCode;
+            stackerCraneTaskCommand.Barcode = ""; /*task.PalletCode;*/
             stackerCraneTaskCommand.TaskNum = task.TaskNum;
             stackerCraneTaskCommand.WorkType = 1;
             stackerCraneTaskCommand.TrayType = 0;
@@ -1124,5 +1198,15 @@
             }
             return stackerCraneTaskCommand;
         }
+
+
+        public void wcs_PLCto05(string SCLLinStack, string Logtype, string Magessadd)
+        {
+            WriteLog.Write_Log("鍏ュ簱浜や簰淇℃伅", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd });
+        }
+        public void wcs_PLCto06(string SCLLinStack, string Logtype, string Magessadd)
+        {
+            WriteLog.Write_Log("鍑哄簱浜や簰淇℃伅", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd });
+        }
     }
 }

--
Gitblit v1.9.3