From 2cc17d26486c9e4d4db6157497589c52dd7f0dc2 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期四, 17 三月 2022 13:50:04 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/model/protocol/StaProtocol.java |    3 +
 src/main/java/com/zy/asrs/entity/BasDevp.java             |    2 
 src/main/java/com/zy/core/thread/MelsecCrnThread.java     |   84 +++++++++++++++++++++------
 src/main/java/com/zy/core/thread/SiemensDevpThread.java   |   45 +++++++++++++-
 src/main/resources/application.yml                        |    4 
 5 files changed, 111 insertions(+), 27 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasDevp.java b/src/main/java/com/zy/asrs/entity/BasDevp.java
index 388c3e2..1e3d022 100644
--- a/src/main/java/com/zy/asrs/entity/BasDevp.java
+++ b/src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -129,7 +129,7 @@
     @ApiModelProperty(value= "鏉″舰鐮�")
     private String barcode;
 
-    @ApiModelProperty(value= "")
+    @ApiModelProperty(value= "鍏ュ簱鏆傚瓨鏁�")
     @TableField("in_qty")
     private Integer inQty;
 
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 2290116..e42e540 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -49,6 +49,8 @@
     // 閿佸畾鏍囪
     private boolean pakMk = true;
 
+    // 鍏ュ簱鏆傚瓨鏁�
+    private Short inQty;
 
     public BasDevp toSqlModel(){
         BasDevp basDevp = new BasDevp();
@@ -62,6 +64,7 @@
         basDevp.setLocType2((short) 0);  // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿
         basDevp.setLocType3((short) 0);  // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿
         basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2);
+        basDevp.setInQty(inQty !=null ?(int)inQty : 0);
         return basDevp;
     }
 
diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
index 1680a88..73e1d1b 100644
--- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -229,29 +229,73 @@
             log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
-        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.getCommand();
-        OperateResult result = melsecMcNet.Write("D0", array);
 
-        try {
-            Thread.sleep(200);
+        OperateResult result = null;
+        try{
+            Integer exeCount=0;
+            do{
+                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.getCommand();
+                result = melsecMcNet.Write("D0", array);
+                if(result.IsSuccess) {
+                    if (command.getAckFinish() == 0) {
+                        short commandFinish = 1;
+                        result = melsecMcNet.Write("D9", commandFinish);
+                        if(result.IsSuccess){
+                            //鍐欎换鍔$‘璁よ繑鍥炴垚鍔熷悗锛屾煡璇㈢‘璁や竴娆�
+                            Thread.sleep(200);
+                            OperateResultExOne<byte[]> result1 = melsecMcNet.Read("D9", (short)2);
+                            if(result1.IsSuccess){
+                                short commandVal = melsecMcNet.getByteTransform().TransInt16(result1.Content,2);
+                                if(commandVal==1){
+                                    break;
+                                } else {
+                                    exeCount++;
+                                }
+                            } else{
+                                exeCount++;
+                            }
+                        }else{
+                            exeCount++;
+                        }
+                    }
+                }else{
+                    exeCount++;
+                }
+                Thread.sleep(200);
+            }while(exeCount>3);
         }catch (Exception e){
+
         }
 
-        if (command.getAckFinish() == 0) {
-            short commandFinish = 1;
-            result = melsecMcNet.Write("D9", commandFinish);
-        }
+//        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.getCommand();
+//        OperateResult result = melsecMcNet.Write("D0", array);
+//
+//        if (command.getAckFinish() == 0) {
+//            short commandFinish = 1;
+//            result = melsecMcNet.Write("D9", commandFinish);
+//        }
 
         try {
             // 鏃ュ織璁板綍
@@ -276,7 +320,7 @@
             bean.insert(basCrnOpt);
         } catch (Exception ignore) {}
 
-        if (result.IsSuccess) {
+        if (result != null && result.IsSuccess) {
             log.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;
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 17a3e4a..803a751 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -118,7 +118,7 @@
 //        updateIoMode();
         OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 186);
         if (result.IsSuccess) {
-            for (int i = 0; i < 83; i++) {
+            for (int i = 0; i < 93; i++) {
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
@@ -132,7 +132,7 @@
         Thread.sleep(200);
         OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 186);
         if (result0.IsSuccess) {
-            for (int i = 0; i < 83; i++) {
+            for (int i = 0; i < 93; i++) {
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
@@ -146,7 +146,7 @@
         Thread.sleep(200);
         OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.0", (short) 186);
         if (result1.IsSuccess) {
-            for (int i = 0; i < 83; i++) {
+            for (int i = 0; i < 93; i++) {
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1);
                 StaProtocol staProtocol = station.get(siteId);
@@ -162,6 +162,41 @@
                 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                     staProtocol.setPakMk(true);
                 }
+            }
+        }
+
+        Thread.sleep(200);
+        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB300.0", (short) 10);
+        if (result3.IsSuccess) {
+//            Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+            Integer siteId = 0;
+            for (int i = 0; i < 5; i++) {
+                switch (i){
+                    case 0:
+                        siteId = 100;
+                        break;
+                    case 1:
+                        siteId = 102;
+                        break;
+                    case 2:
+                        siteId = 104;
+                        break;
+                    case 3:
+                        siteId = 106;
+                        break;
+                    case 4:
+                        siteId = 108;
+                        break;
+                }
+                StaProtocol staProtocol = station.get(siteId);
+                if (null == staProtocol) {
+                    staProtocol = new StaProtocol();
+                    staProtocol.setSiteId(siteId);
+                    station.put(siteId, staProtocol);
+                }
+                short value = siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2);
+                staProtocol.setInQty(value);     // 鍏ュ簱鏆傚瓨鏁�
+                String str="";
             }
         }
 
@@ -181,11 +216,13 @@
                     StaProtocol staProtocol = station.get(siteId);
                     basDevps.add(staProtocol.toSqlModel());
                 }
+
                 BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
-                if (!basDevpService.updateBatchById(basDevps)) {
+                if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
                     throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
                 }
             } catch (Exception e) {
+                e.printStackTrace();
                 OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [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("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index e2b441a..b688f73 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -11,8 +11,8 @@
     #    url: jdbc:sqlserver://47.97.1.152:51433;databasename=xgmasrs
     #    username: sa
     #    password: Zoneyung@zy56$
-#    url: jdbc:sqlserver://10.10.10.238:1433;databasename=xgmasrs
-    url: jdbc:sqlserver://localhost:1433;databasename=xgmasrs
+    url: jdbc:sqlserver://10.10.10.238:1433;databasename=xgmasrs
+#    url: jdbc:sqlserver://localhost:1433;databasename=xgmasrs
     username: sa
     password: sa@123
   mvc:

--
Gitblit v1.9.1