From 62e2362ad2d62678712e3a40c5d611ddc9cd95f0 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 26 九月 2025 09:30:26 +0800
Subject: [PATCH] 1

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

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 93b1f6d..f2b7e8d 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -16,7 +16,9 @@
 import com.zy.core.CrnThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
-import com.zy.core.enums.*;
+import com.zy.core.enums.CrnStatusType;
+import com.zy.core.enums.CrnTaskModeType;
+import com.zy.core.enums.SlaveType;
 import com.zy.core.model.CrnSlave;
 import com.zy.core.model.Task;
 import com.zy.core.model.command.CrnCommand;
@@ -39,6 +41,7 @@
     private CrnSlave slave;
     private CrnProtocol crnProtocol;
     private boolean resetFlag = false;
+    private boolean resetFlagTwo = false;
 
     public boolean isRunning = true;
 
@@ -69,11 +72,11 @@
                     case 1:
                         readStatus();
                         break;
-                    // 鍐欏叆鏁版嵁
+                    // 鍐欏叆鏁版嵁 1鍙峰伐浣�
                     case 2:
                         write((CrnCommand) task.getData());
                         break;
-                    // 澶嶄綅
+                    // 澶嶄綅 1鍙峰伐浣�
                     case 3:
                         CrnCommand command = (CrnCommand) task.getData();
                         if (null == command) {
@@ -83,14 +86,37 @@
                         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
                         command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
                         command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
-                        command.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
-                        command.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
-                        command.setSourcePosZ((short)0);     // 婧愬簱浣嶅眰
-                        command.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-                        command.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
-                        command.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+                        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+                        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+                        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+                        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+                        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+                        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
                         write(command);
                         break;
+                    // 鍐欏叆鏁版嵁 2鍙峰伐浣�
+                    case 4:
+                        write2((CrnCommand) task.getData());
+                        break;
+                    // 澶嶄綅 2鍙峰伐浣�
+                    case 6:
+                        CrnCommand command2 = (CrnCommand) task.getData();
+                        if (null == command2) {
+                            command2 = new CrnCommand();
+                        }
+                        command2.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                        command2.setTaskNo((short) 0); // 宸ヤ綔鍙�
+                        command2.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+                        command2.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+                        command2.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+                        command2.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+                        command2.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+                        command2.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+                        command2.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+                        command2.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+                        write2(command2);
+                        break;
+
                     default:
                         break;
                 }
@@ -111,14 +137,15 @@
         }
         crnProtocol.setMode((short) -1);
 //        crnProtocol.setTaskNo((short)0);
-        crnProtocol.setStatus((short)-1);
-        crnProtocol.setBay((short)0);
-        crnProtocol.setLevel((short)0);
+        crnProtocol.setStatus((short) -1);
+        crnProtocol.setStatusTwo((short) -1);
+        crnProtocol.setBay((short) 0);
+        crnProtocol.setLevel((short) 0);
         crnProtocol.setForkPos((short) -1);
         crnProtocol.setLiftPos((short) -1);
-        crnProtocol.setWalkPos((short)0);
-        crnProtocol.setLoaded((short)0);
-        crnProtocol.setAlarm((short)0);
+        crnProtocol.setWalkPos((short) 0);
+        crnProtocol.setLoaded((short) 0);
+        crnProtocol.setAlarm((short) 0);
         crnProtocol.setxSpeed((short) 0);
         crnProtocol.setySpeed((short) 0);
         crnProtocol.setzSpeed((short) 0);
@@ -135,13 +162,13 @@
         siemensNet.setRack(slave.getRack().byteValue());
         siemensNet.setSlot(slave.getSlot().byteValue());
         OperateResult connect = siemensNet.ConnectServer();
-        if(connect.IsSuccess){
+        if (connect.IsSuccess) {
             result = true;
-            OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-            News.info("SiemensCrn"+" - 1"+" - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+            News.info("SiemensCrn" + " - 1" + " - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
         } else {
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-            News.error("SiemensCrn"+" - 2"+" - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            News.error("SiemensCrn" + " - 2" + " - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             initCrn();
         }
 //        siemensNet.ConnectClose();
@@ -151,7 +178,7 @@
     /**
      * 璇诲彇鐘舵��
      */
-    private void readStatus(){
+    private void readStatus() {
         try {
             OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
             if (result.IsSuccess) {
@@ -173,29 +200,55 @@
                 crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22));
                 crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24));
                 crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26));
-                crnProtocol.setxSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 28));
-                crnProtocol.setySpeed(siemensNet.getByteTransform().TransSingle(result.Content, 32));
-                crnProtocol.setzSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 36));
-                crnProtocol.setxDistance(siemensNet.getByteTransform().TransSingle(result.Content, 40));
-                crnProtocol.setyDistance(siemensNet.getByteTransform().TransSingle(result.Content, 44));
-                crnProtocol.setxDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48));
-                crnProtocol.setyDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52));
+                crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
+                crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
+                crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
+                crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
+                crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
+                crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
+                crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
 
-                OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+                //2宸ヤ綅
+                crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
+                crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 58));
+                crnProtocol.setLiftPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 60));
+                crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 64));
+
+
+                OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
 
                 // 澶嶄綅淇″彿
                 if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
                     News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
-                            slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿");
+                            slave.getId(), crnProtocol.getTaskNo(), crnProtocol.getLoaded() == 1 ? "鏈夌墿" : "鏃犵墿");
                     if (resetFlag) {
-                        if(crnProtocol.getTaskNo()==9999){
+                        if (crnProtocol.getTaskNo() == 9999) {
                             backHpFlag = false;
                         }
                         Short wrkNo = crnProtocol.getTaskNo();
                         CrnCommand crnCommand = new CrnCommand();
-                        crnCommand.setAckFinish((short)1);
+                        crnCommand.setAckFinish((short) 1);
                         if (write(crnCommand)) {
                             resetFlag = false;
+                            News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
+                                    slave.getId(), wrkNo, resetFlag);
+                        }
+                    }
+                }
+
+                // 澶嶄綅淇″彿
+                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING)) {
+                    News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
+                            slave.getId(), crnProtocol.getTaskNo(), crnProtocol.getLoaded() == 1 ? "鏈夌墿" : "鏃犵墿");
+                    if (resetFlagTwo) {
+                        if (crnProtocol.getTaskNo() == 9999) {
+                            backHpFlag = false;
+                        }
+                        Short wrkNo = crnProtocol.getTaskNo();
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setAckFinish((short) 1);
+                        if (write2(crnCommand)) {
+                            resetFlagTwo = false;
                             News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
                                     slave.getId(), wrkNo, resetFlag);
                         }
@@ -207,21 +260,22 @@
                     BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
                     BasCrnp basCrnp = new BasCrnp();
                     basCrnp.setCrnNo(slave.getId());
-                    basCrnp.setCrnSts((int)crnProtocol.getMode());
-                    if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
-                        News.error("SiemensCrn"+" - 3"+" - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+                    basCrnp.setCrnSts((int) crnProtocol.getMode());
+                    if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))) {
+                        News.error("SiemensCrn" + " - 3" + " - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
                     }
-                } catch (Exception ignore){}
+                } catch (Exception ignore) {
+                }
 
             } else {
                 initCrn();
                 OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-                News.error("SiemensCrn"+" - 4"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+                News.error("SiemensCrn" + " - 4" + " - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             }
         } catch (Exception e) {
             e.printStackTrace();
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-            News.error("SiemensCrn"+" - 5"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            News.error("SiemensCrn" + " - 5" + " - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             initCrn();
         }
     }
@@ -244,8 +298,199 @@
             return false;
         }
         // 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵��
+        try {
+            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+            if (resultRead.IsSuccess) {
+                CrnCommand one = new CrnCommand();
+                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+                one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+                if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+                        || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
+                        || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
+                        || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
+                ) {
+//                    News.error("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                } else {
+//                    News.info("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                }
+            }
+        } catch (Exception e) {
+            News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+        }
+//        convertRow(command);
+        command.setCrnNo(slave.getId());
+//        short[] array = new short[10];
+        short[] array = new short[10];
+        array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣�
+        array[1] = command.getTaskNo();  // 浠诲姟鍙�
+        array[2] = command.getTaskMode();  // 妯″紡
+        array[3] = command.getSourcePosX(); // 婧愪綅缃帓鍙�
+        array[4] = command.getSourcePosY(); // 婧愪綅缃垪鍙�
+        array[5] = command.getSourcePosZ(); // 婧愪綅缃眰鍙�
+        array[6] = command.getDestinationPosX();  // 鐩爣浣嶇疆鎺掑彿
+        array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿
+        array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿
+        array[9] = command.getCommand();
+//        array[10] = 0;   //澶囩敤1
+
+
+        OperateResult result = siemensNet.Write("DB100.0", array);
+        News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
+
+        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+        Thread.sleep(200);
+        int writeCount1 = 1;
+
+        do {
+            try {
+                if (!result.IsSuccess) {
+//                    if (!resetFlag){
+                    News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+                    result = siemensNet.Write("DB100.0", array);
+//                    }
+                    Thread.sleep(100);
+                    writeCount1++;
+                    continue;
+                }
+                OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+                if (resultRead.IsSuccess) {
+                    CrnCommand one = new CrnCommand();
+                    one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
+                    one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+                    one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                    one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+                    one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+                    one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+                    one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+                    one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+                    one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+                    if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+                            || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
+                            || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
+                            || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
+                            || !command.getAckFinish().equals(one.getAckFinish())
+                    ) {
+                        try {
+                            News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
+                        } catch (Exception e) {
+                            try {
+                                News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command), JSON.toJSON(resultRead));
+                            } catch (Exception e1) {
+                                News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                            }
+                        }
+
+                        try {
+                            Thread.sleep(100);
+                        } catch (Exception e) {
+
+                        }
+//                        if (!resetFlag){
+                        News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+                        result = siemensNet.Write("DB100.0", array);
+//                        }
+                        writeCount1++;
+                        continue;
+                    } else {
+                        News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
+                        break;
+                    }
+                }
+            } catch (Exception e) {
+                News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�" + e);
+            }
+            writeCount1++;
+        } while (writeCount1 < 6);
+
+
+        if (command.getAckFinish() == 0) {
+            if (result.IsSuccess) {
+                Thread.sleep(300);
+                //浠诲姟涓嬪彂娆℃暟
+                int writeCount2 = 0;
+
+                do {
+                    writeCount2++;
+                    short commandFinish = (short) 1;
+                    result = siemensNet.Write("DB100.38", commandFinish);
+                    if (result.IsSuccess) {
+                        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+                        Thread.sleep(200);
+                        OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.38", (short) 2);
+                        if (resultRead.IsSuccess) {
+                            commandFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+                            if (commandFinish != 1) {
+                                News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+                            } else {
+                                //浠诲姟鍛戒护鍐欏叆鎴愬姛
+                                News.info("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍥炶鎴愬姛锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+                                break;
+                            }
+                        } else {
+                            News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍥炶澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+                        }
+                    } else {
+                        News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+                    }
+                } while (writeCount2 < 5);
+            }
+        }
+
+
+        try {
+            // 鏃ュ織璁板綍
+            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
+            BasCrnOpt basCrnOpt = new BasCrnOpt(
+                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
+                    command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
+                    new Date(),    // 涓嬪彂鏃堕棿
+                    command.getTaskModeType().toString(),    // 妯″紡
+                    command.getSourcePosX().intValue(),    // 婧愭帓
+                    command.getSourcePosY().intValue(),    // 婧愬垪
+                    command.getSourcePosZ().intValue(),    // 婧愬眰
+                    null,    // 婧愮珯
+                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
+                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
+                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
+                    null,    // 鐩爣绔�
+                    null,    // 鍝嶅簲缁撴灉
+                    null,    // 淇敼鏃堕棿
+                    null    // 淇敼浜哄憳
+            );
+            bean.insert(basCrnOpt);
+        } catch (Exception ignore) {
+        }
+
+        if (result != null && result.IsSuccess) {
+            Thread.sleep(200);
+            this.readStatus();
+//            News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+            return true;
+        } else {
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            return false;
+        }
+    }
+
+    /**
+     * 鍐欏叆鏁版嵁
+     */
+    private boolean write2(CrnCommand command) throws InterruptedException {
+        if (null == command) {
+            News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+            return false;
+        }
+        // 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵��
         try{
-            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
+            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
             if (resultRead.IsSuccess) {
                 CrnCommand one = new CrnCommand();
                 one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
@@ -272,95 +517,86 @@
 //        convertRow(command);
         command.setCrnNo(slave.getId());
 //        short[] array = new short[10];
-        short[] array = new short[10];
-        array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣�
-        array[1] = command.getTaskNo();  // 浠诲姟鍙�
-        array[2] = command.getTaskMode();  // 妯″紡
-        array[3] = command.getSourcePosX(); // 婧愪綅缃帓鍙�
-        array[4] = command.getSourcePosY(); // 婧愪綅缃垪鍙�
-        array[5] = command.getSourcePosZ(); // 婧愪綅缃眰鍙�
-        array[6] = command.getDestinationPosX();  // 鐩爣浣嶇疆鎺掑彿
-        array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿
-        array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿
-        array[9] = command.getCommand();
+        short[] array = new short[9];
+        //array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣�
+        array[0] = command.getTaskNo();  // 浠诲姟鍙�
+        array[1] = command.getTaskMode();  // 妯″紡
+        array[2] = command.getSourcePosX(); // 婧愪綅缃帓鍙�
+        array[3] = command.getSourcePosY(); // 婧愪綅缃垪鍙�
+        array[4] = command.getSourcePosZ(); // 婧愪綅缃眰鍙�
+        array[5] = command.getDestinationPosX();  // 鐩爣浣嶇疆鎺掑彿
+        array[6] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿
+        array[7] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿
+        array[8] = command.getCommand();
 //        array[10] = 0;   //澶囩敤1
 
-        boolean[] array2 = new boolean[1];
-        array2[0] = command.isTraySize();
-        OperateResult result = siemensNet.Write("DB100.0", array);
-        OperateResult result2 = siemensNet.Write("DB100.22", array2);
+        short[] array2 = new short[1];
+        array2[0] =  command.getAckFinish();
+        OperateResult result = siemensNet.Write("DB100.20", array);
+        OperateResult result2 = siemensNet.Write("DB100.0", array2);
         News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
 
-        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
-        Thread.sleep(200);
         int writeCount1 = 1;
-
         do {
-            try{
-                if(!result.IsSuccess || !result2.IsSuccess){
-                    if (!resetFlag){
-                        News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
-//                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
-                        result = siemensNet.Write("DB100.0", array);
-                        result2 = siemensNet.Write("DB100.22", array2);
-                        Thread.sleep(100);
-                        writeCount1++;
-                        continue;
-                    }
+            try {
+                if (!result.IsSuccess||!result2.IsSuccess) {
+//                    if (!resetFlag){
+                    News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+                    result = siemensNet.Write("DB100.0", array);
+//                    }
+                    Thread.sleep(100);
+                    writeCount1++;
+                    continue;
                 }
-                OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
+                OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
                 if (resultRead.IsSuccess) {
                     CrnCommand one = new CrnCommand();
-                    one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
-                    one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
-                    one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
-                    one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
-                    one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
-                    one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
-                    one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
-                    one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
-                    one.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 22));
+                    one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
+                    one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
+                    one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 22));
+                    one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24));
+                    one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 26));
+                    one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 28));
+                    one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30));
+                    one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 32));
+                    one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 34));
                     if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
                             || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
                             || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
                             || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
-                            || !command.isTraySize() == one.isTraySize()
-                    ){
-                        try{
-                            News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-                        }catch (Exception e){
-                            try{
-                                News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
-                            }catch (Exception e1){
+                            || !command.getAckFinish().equals(one.getAckFinish())
+                    ) {
+                        try {
+                            News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
+                        } catch (Exception e) {
+                            try {
+                                News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command), JSON.toJSON(resultRead));
+                            } catch (Exception e1) {
                                 News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
                             }
                         }
 
-                        try{
+                        try {
                             Thread.sleep(100);
-                        }catch (Exception e){
+                        } catch (Exception e) {
 
                         }
-                        if (!resetFlag){
-                            //                        News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{},resetFlag={}", slave.getId(), JSON.toJSON(command),resetFlag);
-//                            MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
-                            News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
-                            result = siemensNet.Write("DB100.0", array);
-                            result2 = siemensNet.Write("DB100.22", array2);
-                            writeCount1++;
-                            continue;
-                        }
-
+//                        if (!resetFlag){
+                        News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
+                        result = siemensNet.Write("DB100.0", array);
+//                        }
+                        writeCount1++;
+                        continue;
                     } else {
-                        News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                        News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command), JSON.toJSON(one));
                         break;
                     }
                 }
-            }catch (Exception e){
-                News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�"+e);
+            } catch (Exception e) {
+                News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�" + e);
             }
             writeCount1++;
-        } while (writeCount1<6);
+        } while (writeCount1 < 6);
 
 
         if (command.getAckFinish() == 0) {
@@ -372,11 +608,11 @@
                 do {
                     writeCount2++;
                     short commandFinish = (short) 1;
-                    result = siemensNet.Write("DB100.18", commandFinish);
+                    result = siemensNet.Write("DB100.38", commandFinish);
                     if(result.IsSuccess){
                         //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
                         Thread.sleep(200);
-                        OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.18", (short) 2);
+                        OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.38", (short) 2);
                         if (resultRead.IsSuccess) {
                             commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
                             if (commandFinish != 1){
@@ -423,7 +659,7 @@
         if (result != null && result.IsSuccess) {
             Thread.sleep(200);
             this.readStatus();
-//            News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+//            News.info("鍫嗗灈鏈哄懡浠や笅鍙慬{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
             return true;
         } else {
@@ -432,194 +668,6 @@
             return false;
         }
     }
-
-    /**
-     * 鍐欏叆鏁版嵁
-     */
-//    private boolean write(CrnCommand command) throws InterruptedException {
-//        if (null == command) {
-//            News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
-//            return false;
-//        }
-//        // 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵��
-//        try{
-//            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
-//            if (resultRead.IsSuccess) {
-//                CrnCommand one = new CrnCommand();
-//                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
-//                one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
-//                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
-//                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
-//                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
-//                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
-//                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
-//                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
-//                if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
-//                        || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
-//                        || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
-//                        || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
-//                ){
-////                    News.error("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-//                } else {
-////                    News.info("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-//                }
-//            }
-//        }catch (Exception e){
-//            News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
-//        }
-////        convertRow(command);
-//        command.setCrnNo(slave.getId());
-////        short[] array = new short[10];
-//        short[] array = new short[10];
-//        array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣�
-//        array[1] = command.getTaskNo();  // 浠诲姟鍙�
-//        array[2] = command.getTaskMode();  // 妯″紡
-//        array[3] = command.getSourcePosX(); // 婧愪綅缃帓鍙�
-//        array[4] = command.getSourcePosY(); // 婧愪綅缃垪鍙�
-//        array[5] = command.getSourcePosZ(); // 婧愪綅缃眰鍙�
-//        array[6] = command.getDestinationPosX();  // 鐩爣浣嶇疆鎺掑彿
-//        array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿
-//        array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿
-//        array[9] = command.getCommand();
-////        array[10] = 0;   //澶囩敤1
-//
-//        boolean[] array2 = new boolean[1];
-//        array2[0] = command.isTraySize();
-//        OperateResult result = siemensNet.Write("DB100.0", array);
-//        OperateResult result2 = siemensNet.Write("DB100.22", array2);
-//        News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
-//
-//        if(!result.IsSuccess || !result2.IsSuccess){
-//            News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
-//            MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
-
-//                    if(!resetFlag) {
-//                        News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{},resetFlag={}", slave.getId(), JSON.toJSON(command),resetFlag);
-//                        MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
-//                    }
-//            Thread.sleep(100);
-//            readStatus();
-//            return false;
-//        }
-//
-//        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
-//        Thread.sleep(200);
-//        try{
-//            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
-//            if (resultRead.IsSuccess) {
-//                CrnCommand one = new CrnCommand();
-//                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
-//                one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
-//                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
-//                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
-//                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
-//                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
-//                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
-//                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
-//                one.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 22));
-//                if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
-//                        || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
-//                        || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
-//                        || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
-//                        || !command.isTraySize() == one.isTraySize()
-//                ){
-//                    try{
-////                        News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-//                    }catch (Exception e){
-//                        try{
-//                            News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
-//                        }catch (Exception e1){
-//                            News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
-//                        }
-//                    }
-//
-//                    if(!resetFlag) {
-//                        News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{},resetFlag={}", slave.getId(), JSON.toJSON(command),resetFlag);
-//                        MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
-//                    }
-//
-//                    Thread.sleep(100);
-//                    readStatus();
-//                    return false;
-//                } else {
-//                    News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
-//                }
-//            }
-//        }catch (Exception e){
-//            News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
-//        }
-//
-//
-//        if (command.getAckFinish() == 0) {
-//            if (result.IsSuccess) {
-//                Thread.sleep(300);
-//                //浠诲姟涓嬪彂娆℃暟
-//                int writeCount2 = 0;
-//
-//                do {
-//                    writeCount2++;
-//                    short commandFinish = (short) 1;
-//                    result = siemensNet.Write("DB100.18", commandFinish);
-//                    if(result.IsSuccess){
-//                        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
-//                        Thread.sleep(200);
-//                        OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.18", (short) 2);
-//                        if (resultRead.IsSuccess) {
-//                            commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
-//                            if (commandFinish != 1){
-//                                News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
-//                            }else{
-//                                //浠诲姟鍛戒护鍐欏叆鎴愬姛
-////                                News.info("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
-//                                break;
-//                            }
-//                        }else {
-//                            News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
-//                        }
-//                    } else {
-//                        News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
-//                    }
-//                }while (writeCount2<5);
-//            }
-//        }
-//
-//
-//        try {
-//            // 鏃ュ織璁板綍
-//            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
-//            BasCrnOpt basCrnOpt = new BasCrnOpt(
-//                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
-//                    command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
-//                    new Date(),    // 涓嬪彂鏃堕棿
-//                    command.getTaskModeType().toString(),    // 妯″紡
-//                    command.getSourcePosX().intValue(),    // 婧愭帓
-//                    command.getSourcePosY().intValue(),    // 婧愬垪
-//                    command.getSourcePosZ().intValue(),    // 婧愬眰
-//                    null,    // 婧愮珯
-//                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
-//                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
-//                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
-//                    null,    // 鐩爣绔�
-//                    null,    // 鍝嶅簲缁撴灉
-//                    null,    // 淇敼鏃堕棿
-//                    null    // 淇敼浜哄憳
-//            );
-//            bean.insert(basCrnOpt);
-//        } catch (Exception ignore) {}
-//
-//        if (result != null && result.IsSuccess) {
-//            Thread.sleep(200);
-//            this.readStatus();
-////            News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
-//            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
-//            return true;
-//        } else {
-//            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-//            News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-//            return false;
-//        }
-//    }
-
     public void requestStop() {
         isRunning = false;
     }

--
Gitblit v1.9.1