From 62af9acaccedaea4c4c7efd4e68c8b702cf5a27d Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期六, 22 六月 2024 13:35:02 +0800
Subject: [PATCH] # 捷众二期开发

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

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 6bdec69..a410ab6 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -5,11 +5,13 @@
 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;
 import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.service.BasCrnOptService;
 import com.zy.asrs.service.BasCrnpService;
+import com.zy.common.utils.News;
 import com.zy.core.CrnThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -38,6 +40,20 @@
     private CrnSlave slave;
     private CrnProtocol crnProtocol;
     private boolean resetFlag = false;
+
+    /**
+     * 20230711 Add锛屽垽鏂槸鍚﹀厑璁镐笅鍙戝爢鍨涙満浠诲姟鐨勫懡浠ゆ爣璁帮紝榛樿涓簍rue
+     * 涓轰簡闃叉鏃堕棿宸鑷寸殑WCS杩炵画涓嬪彂澶氱瑪浠诲姟锛學CS涓嬪彂浠诲姟鍚庯紝涓荤嚎绋嬭疆璇㈡椂杩樻湭璇诲埌鍫嗗灈鏈洪潪绌洪棽銆佹湁浠诲姟鐘舵�佹椂锛屽彲鑳戒細閲嶅涓嬪彂
+     * 涓荤嚎绋嬩笅鍙戝爢鍨涙満浠诲姟鐨勫悓鏃讹紝cmdFlag缃负false锛屽綋鍫嗗灈鏈哄浜庣瓑寰呯‘璁ょ姸鎬佸苟涓攔esetFlag涓簍rue鏃讹紝鎵嶅浣峜mdFlag涓簍rue
+     * 鎵�鏈夊爢鍨涙満浠诲姟涓嬪彂鍓嶏紝鍏堝垽鏂璫mdFlag涓簍rue鍚庢墠鑳戒笅鍙�
+     * 鏀瑰姩鍓嶏紝鏄�氳繃鍒ゆ柇宸ヤ綔妗f槸鍚﹀瓨鍦ㄥ爢鍨涙満鎵ц涓伐浣滅姸鎬佸垽鏂殑锛屽鏋滀笉鐢熸垚宸ヤ綔妗o紝鎴栬�呮槸鏈夊厖鐢点�佺Щ杞︾瓑浠诲姟婕忓垽鏂簡涔熶細瀛樺湪闂
+     */
+    private boolean cmdFlag = true;
+
+    /**
+     * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
+     */
+    private boolean backHpFlag = false;
 
     public SiemensCrnThread(CrnSlave slave) {
         this.slave = slave;
@@ -92,22 +108,49 @@
         }
     }
 
+    /**
+     * 鍒濆鍖栧爢鍨涙満鐘舵��
+     */
+    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((short) 0);
+        crnProtocol.setySpeed((short) 0);
+        crnProtocol.setzSpeed((short) 0);
+        crnProtocol.setxDistance((short) 0);
+        crnProtocol.setyDistance((short) 0);
+        crnProtocol.setxDuration((short) 0);
+        crnProtocol.setyDuration((short) 0);
+    }
+
     @Override
     public boolean connect() {
         boolean result = false;
-        siemensNet = new SiemensS7Net(SiemensPLCS.S300, slave.getIp());
+        siemensNet = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
         siemensNet.setRack(slave.getRack().byteValue());
         siemensNet.setSlot(slave.getSlot().byteValue());
         OperateResult connect = siemensNet.ConnectServer();
         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("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()));
-            log.error("鍫嗗灈鏈簆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();
+//        siemensNet.ConnectClose();
         return result;
     }
 
@@ -115,97 +158,182 @@
      * 璇诲彇鐘舵��
      */
     private void readStatus(){
-        OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 62);
-        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) 54);
+            if (result.IsSuccess) {
+                if (null == crnProtocol) {
+                    crnProtocol = new CrnProtocol();
+                    crnProtocol.setCrnNo(slave.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));
 
-            // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-            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());
-            }
+                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.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 34));
+//                crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
+//                crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 38));
 
-        } 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());
+                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.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
+//                crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 42));
+//                crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 44));
+                crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
+
+
+//                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));
+
+
+
+                OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+
+                // 澶嶄綅淇″彿
+//                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+//                    if (resetFlag) {
+//                        if(crnProtocol.getTaskNo()==9999){
+//                            backHpFlag = false;
+//                        }
+//                        CrnCommand crnCommand = new CrnCommand();
+//                        crnCommand.setAckFinish((short)1);
+//                        if (write(crnCommand)) {
+//                            resetFlag = false;
+//                        }
+//                    }
+//                }
+
+                if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+//                    News.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
+//                            slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿");
+                    if (resetFlag) {
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setAckFinish((short)1);
+                        if (write(crnCommand)) {
+                            resetFlag = false;
+//                            cmdFlag = true;
+                        }
+                    }
+                }
+
+                try {
+                    // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+                    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());
+                    }
+                } 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());
+            }
+        } 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());
+            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("SiemensCrn"+" - 6"+" - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
-        command.setCrnNo(slave.getId());
-        short[] array = new short[9];
-        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();
-        OperateResult result = siemensNet.Write("DB8.0", array);
-        if (result.IsSuccess) {
-            log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+        OperateResult result;
+//        convertRow(command);
+        if (command.getAckFinish() == 1) {
+            result = siemensNet.Write("DB100.0", (short) 1);
+//            result = siemensNet.Write("DB100.18", 0);
+        } else {
+            command.setCrnNo(slave.getId());
+            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.getSourceStaNo();
+//        array[10] = command.getDestinationStaNo();
+            array[9] = command.getCommand();
+            result = siemensNet.Write("DB100.0", array);
+
+//            if (command.getAckFinish() == 0) {
+//                short commandFinish = 1;
+//                Thread.sleep(100L);
+//                result = siemensNet.Write("DB100.18", commandFinish);
+//            }
+        }
+
+        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("SiemensCrn"+" - 7"+" - 鍫嗗灈鏈哄懡浠や笅鍙慬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("SiemensCrn"+" - 8"+" - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             return false;
         }
     }
+
 
     @Override
     public void close() {
@@ -218,7 +346,8 @@
     public static void main(String[] args) throws InterruptedException {
         CrnSlave slave = new CrnSlave();
         slave.setId(1);
-        slave.setIp("192.168.6.9");
+        slave.setIp("10.10.10.10");
+        slave.setPort(0);
         slave.setRack(0);
         slave.setSlot(0);
         SiemensCrnThread crnThread = new SiemensCrnThread(slave);
@@ -229,16 +358,17 @@
 
         // 1.鍏ュ簱 婧愬拰鐩爣閮藉彂
 //        CrnCommand command = new CrnCommand();
-//        command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
-//        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+////        command.setCrnNo(3); // 鍫嗗灈鏈虹紪鍙�
+//        command.setTaskNo((short) 2); // 宸ヤ綔鍙�
 //        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
 //        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
-//        command.setSourcePosX((short) 1);     // 婧愬簱浣嶆帓
-//        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-//        command.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
-//        command.setDestinationPosX((short) 2);     // 鐩爣搴撲綅鎺�
-//        command.setDestinationPosY((short) 3);     // 鐩爣搴撲綅鍒�
+//        command.setSourcePosX((short) 6);     // 婧愬簱浣嶆帓
+//        command.setSourcePosY((short) 2);     // 婧愬簱浣嶅垪
+//        command.setSourcePosZ((short) 2);     // 婧愬簱浣嶅眰
+//        command.setDestinationPosX((short) 6);     // 鐩爣搴撲綅鎺�
+//        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
 //        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+//        command.setCommand((short)1);
 //        crnThread.write(command);
 
         // 2.鍑哄簱 婧愬拰鐩爣閮藉彂

--
Gitblit v1.9.1