From 4563b5119f6bc1a34c68ca68645859d8137bbc27 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 06 十二月 2023 21:39:27 +0800
Subject: [PATCH] #盘点修改

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

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 46b2620..8b6f94c 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -5,7 +5,6 @@
 import HslCommunication.Profinet.Siemens.SiemensPLCS;
 import HslCommunication.Profinet.Siemens.SiemensS7Net;
 import com.alibaba.fastjson.JSON;
-import com.core.common.Arith;
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.BasCrnOpt;
@@ -13,6 +12,7 @@
 import com.zy.asrs.service.BasCrnOptService;
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.core.CrnThread;
+import com.zy.core.News;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.enums.CrnStatusType;
@@ -73,7 +73,7 @@
                         }
                         command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
                         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-//                        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+                        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
                         command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
                         command.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
                         command.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
@@ -94,6 +94,32 @@
         }
     }
 
+    /**
+     * 鍒濆鍖栧爢鍨涙満鐘舵��
+     */
+    private void initCrn() {
+        if (null == crnProtocol) {
+            crnProtocol = new CrnProtocol();
+        }
+        crnProtocol.setMode((short) -1);
+//        crnProtocol.setTaskNo((short)0);
+        crnProtocol.setStatus((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.setXSpeed(0F);
+        crnProtocol.setYSpeed(0F);
+        crnProtocol.setZSpeed(0F);
+        crnProtocol.setXDistance(0F);
+        crnProtocol.setYDistance(0F);
+        crnProtocol.setXDuration(0F);
+        crnProtocol.setYDuration(0F);
+    }
+
     @Override
     public boolean connect() {
         boolean result = false;
@@ -104,12 +130,13 @@
         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()));
-            log.info("鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            News.info("鍫嗗灈鏈簆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()));
-            log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            News.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            initCrn();
         }
-        siemensNet.ConnectClose();
+//        siemensNet.ConnectClose();
         return result;
     }
 
@@ -117,130 +144,204 @@
      * 璇诲彇鐘舵��
      */
     private void readStatus(){
-        OperateResultExOne<byte[]> result = siemensNet.Read("DB11.2", (short) 90);
-        if (result.IsSuccess) {
-            if (null == crnProtocol) {
-                crnProtocol = new CrnProtocol();
-            }
-            crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
-            crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2));
-            crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4));
-            crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6));
-            crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8));
-            crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
-            crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
-            crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
-//            crnProtocol.setTaskFinish(siemensNet.getByteTransform().TransInt16(result.Content, 16));
-            crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-            crnProtocol.setAlarm1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-            // 寮傚父淇℃伅
-            crnProtocol.setError1(siemensNet.getByteTransform().TransBool(result.Content, 22, 2));
-            crnProtocol.setError2(siemensNet.getByteTransform().TransBool(result.Content, 24, 2));
-            crnProtocol.setError3(siemensNet.getByteTransform().TransBool(result.Content, 26, 2));
-            crnProtocol.setError4(siemensNet.getByteTransform().TransBool(result.Content, 28, 2));
-            crnProtocol.setError5(siemensNet.getByteTransform().TransBool(result.Content, 30, 2));
-            crnProtocol.setError6(siemensNet.getByteTransform().TransBool(result.Content, 32, 2));
-            float xSpeed = siemensNet.getByteTransform().TransSingle(result.Content, 34);
-            crnProtocol.setXSpeed((float) Arith.multiplys(3, xSpeed, 1.15));
-            crnProtocol.setYSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 38));
-            float zSpeed = siemensNet.getByteTransform().TransSingle(result.Content, 42);
-            crnProtocol.setZSpeed((float) Arith.multiplys(3, zSpeed, 5));
-            crnProtocol.setXDistance(siemensNet.getByteTransform().TransSingle(result.Content, 46));
-            crnProtocol.setYDistance(siemensNet.getByteTransform().TransSingle(result.Content, 50));
-            crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 54));
-            crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 58));
-
-            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
-            // 澶嶄綅淇″彿
-            if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-                if (resetFlag) {
-                    CrnCommand crnCommand = new CrnCommand();
-                    crnCommand.setAckFinish((short)1);
-                    if (write(crnCommand)) {
-                        resetFlag = false;
-                    }
-
+        try {
+            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
+            if (result.IsSuccess) {
+                if (null == crnProtocol) {
+                    crnProtocol = new CrnProtocol();
+                    crnProtocol.setCrnNo(this.getSlave().getId());
                 }
-            }
+                crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
+                crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2));
+                crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4));
+                crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6));
+                crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8));
+                crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
+                crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
+                crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
+                crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16));
+                crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
+                crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
+                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));
 
-            // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-            BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
-            BasCrnp basCrnp = new BasCrnp();
-            basCrnp.setCrnNo(slave.getId());
-            if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
-                log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-            }
+                OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
-        } 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()));
-            log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+                // 澶嶄綅淇″彿
+                if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+                    if (resetFlag) {
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setAckFinish((short)1);
+                        if (write(crnCommand)) {
+                            resetFlag = false;
+                        }
+                    }
+                }
+
+                try {
+                    // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+                    BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+                    BasCrnp basCrnp = new BasCrnp();
+                    basCrnp.setCrnNo(slave.getId());
+                    if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
+                        News.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+                    }
+                } 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("璇诲彇鍫嗗灈鏈簆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("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initCrn();
+        }
+    }
+
+    private void convertRow(CrnCommand crnCommand) {
+        if (crnCommand.getSourcePosX() != null && crnCommand.getSourcePosX() != 0) {
+            crnCommand.setSourcePosX((short) (crnCommand.getSourcePosX() - ((slave.getId() - 1) * 4)));
+        }
+        if (crnCommand.getDestinationPosX() != null && crnCommand.getDestinationPosX() != 0) {
+            crnCommand.setDestinationPosX((short) (crnCommand.getDestinationPosX() - ((slave.getId() - 1) * 4)));
         }
     }
 
     /**
      * 鍐欏叆鏁版嵁
      */
-    private boolean write(CrnCommand command){
+    private boolean write(CrnCommand command) throws InterruptedException {
         if (null == command) {
-            log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+            News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
+//        siemensNet.Write("DB100.18", (short) 0);
+//        convertRow(command);
         command.setCrnNo(slave.getId());
-        short[] array = new short[13];
-        if (!command.getTaskModeType().equals(CrnTaskModeType.CLEAR)) {
-            array[0] = 5;
-        } else {
-            array[0] = 7;
+        short[] array = new short[10];
+        array[0] = command.getAckFinish();
+        array[1] = command.getTaskNo();
+        array[2] = command.getTaskMode();
+        if (command.getSourcePosX()==4){
+            array[3] = 1;
+        }else if (command.getSourcePosX()==5){
+            array[3] = 2;
+        }else {
+            array[3] = command.getSourcePosX();
         }
-        array[1] = command.getSourcePosZ();
-        array[2] = command.getSourcePosY();
-        array[3] = command.getSourcePosX();
-        array[4] = command.getDestinationPosZ();
-        array[5] = command.getDestinationPosY();
-        array[6] = command.getDestinationPosX();
-        array[7] = command.getSourceStaNo();
-        array[8] = command.getDestinationStaNo();
-        array[9] = command.getSourceLane();
-        array[10] = command.getDestinationLane();
-        array[11] =
 
-        OperateResult result = siemensNet.Write("DB10.0", array);
-        if (result.IsSuccess) {
 
-            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) {}
+        array[4] = command.getSourcePosY();
+        array[5] = command.getSourcePosZ();
+        if (command.getDestinationPosX()==4){
+            array[6] = 1;
+        }else if (command.getDestinationPosX()==5){
+            array[6] = 2;
+        }else {
+            array[6] = command.getDestinationPosX();
+        }
 
-            log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+        array[7] = command.getDestinationPosY();
+        array[8] = command.getDestinationPosZ();
+        array[9] = command.getCommand();
+        OperateResult result=null;
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        do {
+            result = siemensNet.Write("DB100.0", array);
+            if(result.IsSuccess){
+                //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+                Thread.sleep(200);
+                OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
+                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{
+                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
+                        log.info("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屽苟涓斿洖璇绘垚鍔熴�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(command), writeCount);
+                        break;
+                    }
+                }else {
+                    writeCount++;
+                    log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(command), writeCount);
+                }
+            } else {
+                writeCount++;
+                log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(command), writeCount);
+            }
+        }while (writeCount<5);
+
+        if (command.getAckFinish() == 0) {
+            short commandFinish = 1;
+            Thread.sleep(300);
+            result = siemensNet.Write("DB100.18", commandFinish);
+            log.info("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屽苟涓斿洖璇绘垚鍔熴�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(command), writeCount);
+        }else {
+            log.info("鏈啓鍏ュ爢鍨涙満鍛戒护"+command.getAckFinish());
+        }
+        log.info("鍫嗗灈鏈哄懡浠ゆ祴璇�-----"+command.getAckFinish());
+
+        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}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-            log.error("鍐欏叆鍫嗗灈鏈簆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}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             return false;
         }
     }
 
+
     @Override
     public void close() {
         siemensNet.ConnectClose();

--
Gitblit v1.9.1