From 565f82be8402eb5a6e8a70347b119f937c0d0488 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期一, 17 四月 2023 09:10:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |   45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 44 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index d95b86c..a308273 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -228,6 +228,22 @@
             return false;
         }
 
+        //涓嬪彂鍓嶅厠闅嗕竴浠�
+        CrnCommand crnCommand = new CrnCommand();
+        crnCommand.setCrnNo(command.getCrnNo());
+        crnCommand.setAckFinish(command.getAckFinish());
+        crnCommand.setTaskNo(command.getTaskNo());
+        crnCommand.setTaskMode(command.getTaskMode());
+        crnCommand.setSourcePosX(command.getSourcePosX());
+        crnCommand.setSourcePosY(command.getSourcePosY());
+        crnCommand.setSourcePosZ(command.getSourcePosZ());
+        crnCommand.setDestinationPosX(command.getDestinationPosX());
+        crnCommand.setDestinationPosY(command.getDestinationPosY());
+        crnCommand.setDestinationPosZ(command.getDestinationPosZ());
+        crnCommand.setSourceStaNo(command.getSourceStaNo());
+        crnCommand.setDestinationStaNo(command.getDestinationStaNo());
+        crnCommand.setCommand(command.getCommand());
+
 //        convertRow(command);
         command.setCrnNo(slave.getId());
         short[] array = new short[10];
@@ -242,6 +258,14 @@
         array[8] = command.getDestinationPosZ();
         array[9] = command.getCommand();
         OperateResult result = siemensNet.Write("DB100.0", array);
+
+        if(!result.IsSuccess){
+            log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
+            MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand));
+            Thread.sleep(100);
+            readStatus();
+            return false;
+        }
 
         //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
         Thread.sleep(200);
@@ -262,6 +286,13 @@
                 || command.getDestinationPosY()!=one.getDestinationPosY() || command.getDestinationPosZ()!=one.getDestinationPosZ()
             ){
                 News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
+                MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand));
+                Thread.sleep(100);
+                readStatus();
+                return false;
+            }else{
+                News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
             }
         }
 
@@ -270,7 +301,19 @@
                 short commandFinish = 1;
                 Thread.sleep(300);
                 News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鎴愬姛锛屽紑濮嬪啓纭浣峓id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
-                result = siemensNet.Write("DB100.18", commandFinish);
+                Integer counts = 0;
+                while(true) {
+                    result = siemensNet.Write("DB100.18", commandFinish);
+                    if(result.IsSuccess){
+                        break;
+                    } else {
+                        counts++;
+                        if(counts>5){
+                            break;
+                        }
+                    }
+                    Thread.sleep(300);
+                }
             }
         }
 

--
Gitblit v1.9.1