From eb429870f6f164f7e150beb5ef940610a40f897f Mon Sep 17 00:00:00 2001
From: zhangchengsong <zhangchengsong@hnkhzn.com>
Date: 星期三, 15 四月 2026 17:25:37 +0800
Subject: [PATCH] 1

---
 项目代码/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs |   72 ++++++++++++++----------------------
 1 files changed, 28 insertions(+), 44 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index a16b52a..f3f1b06 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -60,11 +60,15 @@
         {
             try
             {
-                CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
-                
 
+                CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                 if (commonStackerCrane != null)
                 {
+                    WriteLog.Write_Log("鍫嗗灈鏈哄綋鍓嶇姸鎬�", $"{commonStackerCrane.DeviceCode}搴撳爢鍨涙満鐘舵�佷俊鎭�",
+                         $"鍫嗗灈鏈鸿澶囧湴鍧�:銆怐B105.2.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneAutoStatusDes}銆慭n" +
+                         $"鍫嗗灈鏈哄伐浣滄ā寮忓湴鍧�:銆怐B105.3.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneStatusDes}銆慭n" +
+                         $"鍫嗗灈鏈轰綔涓氱姸鎬佸湴鍧�:銆怐B105.22.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneWorkStatusDes}銆慭n" +
+                         $"鍫嗗灈鏈哄綋鍓嶄换鍔℃墽琛屼腑鍦板潃:銆怐B105.18.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.CurrentTaskNum}銆慭n");
 
                     UpdateHandShake(commonStackerCrane.CurrentTaskNum, commonStackerCrane.StackerCraneWorkStatusDes);
                     //浠诲姟瀹屾垚StackerCraneWorkStatus
@@ -96,13 +100,6 @@
                         }
                     }
 
-                    WriteLog.Write_Log("鍫嗗灈鏈哄綋鍓嶇姸鎬�", "鍫嗗灈鏈哄綋鍓嶇姸鎬佷俊鎭�", $"鍫嗗灈鏈鸿澶囧湴鍧�:銆怐B105.2.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneAutoStatusDes}銆慭n" +
-                           $"鍫嗗灈鏈哄伐浣滄ā寮忓湴鍧�:銆怐B105.3.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneStatusDes}銆慭n" +
-                           $"鍫嗗灈鏈轰綔涓氱姸鎬佸湴鍧�:銆怐B105.22.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.StackerCraneWorkStatusDes}銆慭n" +
-                           $"鍫嗗灈鏈哄綋鍓嶄换鍔℃墽琛屼腑鍦板潃:銆怐B105.18.0銆�,璇诲彇鐨勬暟鎹細銆恵commonStackerCrane.CurrentTaskNum}銆慭n");
-
-                  
-                   
 
                     if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal)
                     {
@@ -123,6 +120,8 @@
                                         commonStackerCrane.Communicator.Write("DB105.52", 1);
 
                                         WebResponseContent webResponseContent=_taskService.UpdateTaskStatusToNext(task.TaskNum);
+                                        //寤惰繜1s
+                                        Thread.Sleep(1000);
                                     }
                                 }
                             }
@@ -220,7 +219,6 @@
 
                     int StationNum = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress);
                     int HandShake = conveyorLine.Communicator.Read<ushort>(HandShakeprodto.DeviceProAddress);
-                     conveyorLine.Communicator.Write<short>(HandShakeprodto.DeviceProAddress, 1);
 
                     WriteLog.Write_Log("鍑哄簱搴撳彛鐘舵�佷俊鎭�", "鍑哄簱搴撳彛鐘舵�佷俊鎭�", $"搴撳彛鏄�恵NextAddress}銆戯紝鐢宠鐘舵�佸湴鍧�锛氥�恵HandShakeprodto.DeviceProAddress}銆�,璇诲彇鐨勬暟鎹細銆恵HandShake}銆慭n" +
                          $"搴撳彛鏄惁鏈夎揣鐘舵�佸湴鍧�锛氥�恵deviceProDTO.DeviceProAddress}銆戯紝璇诲彇鐨勬暟鎹�恵StationNum}銆�");
@@ -451,53 +449,39 @@
         /// <param name="stackerCraneWorkStatusDes"></param>
         public void UpdateHandShake(int taskNum, string stackerCraneWorkStatusDes)
         {
-            // 1. 鏌ヨ浠诲姟锛岀┖鍊肩洿鎺ヨ繑鍥�
-            Dt_Task? dtTask = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
-            if (dtTask == null) return;
-
-            // 2. 瀹氫箟鍥哄畾鍦板潃
-            string[] targetAddresses = { "G03", "G04", "C02", "C01" };
-
-            // 3. 鏉′欢鍒ゆ柇 + 纭畾鍐欏叆鍊�
-            short writeValue = -1;
-            if (dtTask.TaskType == 100 && targetAddresses.Contains(dtTask.TargetAddress))
+            try
             {
-                writeValue = stackerCraneWorkStatusDes switch
+                Dt_Task? dtTask = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+                if (dtTask == null) return;
+
+                string[] targetAddresses = { "G03", "G04", "C02", "C01" };
+                if (dtTask.TaskType != 100 || !targetAddresses.Contains(dtTask.TargetAddress))
+                    return;
+
+                short writeValue = stackerCraneWorkStatusDes switch
                 {
                     "鏀捐揣涓�" => 1,
                     "浠诲姟瀹屾垚" => 0,
                     _ => -1
                 };
-            }
 
-            // 4. 鑾峰彇璁惧缂栫爜
-            string deviceCode = dtTask.CurrentAddress.StartsWith("C") ? "1004" : "1003";
+                if (writeValue == -1) return;
 
-            // 5. 鑾峰彇璁惧锛岀┖鍊肩洿鎺ヨ繑鍥�
-            IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == deviceCode);
-            if (device != null && writeValue != -1)
-            {
-                CommonConveyorLine? conveyorLine = (CommonConveyorLine)device;
+                string deviceCode = dtTask.CurrentAddress.StartsWith("C") ? "1004" : "1003";
+                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == deviceCode);
+                if (device == null) return;
 
-                // 6. 鑾峰彇鎻℃墜鐐逛綅锛岀┖鍊肩洿鎺ヨ繑鍥�
+                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                 DeviceProDTO? handShake = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == dtTask.TargetAddress && x.DeviceProParamName == "HandShake");
-                if (handShake == null)
-                {
-                    WriteLog.Write_Log("鍑哄簱搴撳彛鍏夋爡鐘舵�侀敊璇俊鎭�", "鍑哄簱搴撳彛鍏夋爡鐘舵�侀敊璇俊鎭�", $"WCS鏈壘鍒板簱鍙d俊鎭槸銆恵dtTask.TargetAddress}銆戯紝浠诲姟鍙凤細銆恵dtTask.TaskNum}銆�,鍫嗗灈鏈轰綔涓氱姸鎬侊細銆恵stackerCraneWorkStatusDes}銆�");
-                    return;
-                }
-                    // 7. 鍐欏叆鍊�
-                 conveyorLine.Communicator.Write<short>(handShake.DeviceProAddress, writeValue);
-                WriteLog.Write_Log("鍑哄簱搴撳彛鍏夋爡鐘舵�佹甯镐俊鎭�", "鍑哄簱搴撳彛鍏夋爡鐘舵�佹甯镐俊鎭�", $"搴撳彛鏄�恵dtTask.TargetAddress}銆戯紝鐢宠鐘舵�佸湴鍧�锛氥�恵handShake.DeviceProAddress}銆�,璇诲彇鐨勬暟鎹細銆恵conveyorLine.Communicator.Read<ushort>(handShake.DeviceProAddress)}銆慭n" +
-                 $"浠诲姟鍙凤細銆恵dtTask.TaskNum}銆�,鍫嗗灈鏈轰綔涓氱姸鎬侊細銆恵stackerCraneWorkStatusDes}銆�");
-                return;
+                if (handShake == null) return;
+
+                conveyorLine.Communicator.Write<short>(handShake.DeviceProAddress, writeValue);
             }
-            else
+            catch
             {
-                WriteLog.Write_Log("鍑哄簱搴撳彛鍏夋爡鐘舵�侀敊璇俊鎭�", "鍑哄簱搴撳彛鍏夋爡鐘舵�侀敊璇俊鎭�", $"搴撳彛鏄�恵dtTask.TargetAddress}銆戯紝浠诲姟鍙凤細銆恵dtTask.TaskNum}銆�,鍫嗗灈鏈轰綔涓氱姸鎬侊細銆恵stackerCraneWorkStatusDes}銆�");
-                return;
             }
-           
+
+
         }
 
     }

--
Gitblit v1.9.3