From 6274f4380453d9e2855f5e13645877852f020600 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期二, 16 五月 2023 22:33:11 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/model/MatDto.java               |    6 +-
 src/main/java/com/zy/core/thread/SiemensCrnThread.java      |   73 ++++++++++++++++++++++++
 src/main/java/com/zy/core/thread/LedThread.java             |    2 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   16 +++--
 src/main/webapp/views/console.html                          |   12 ++--
 src/main/java/com/zy/core/model/command/LedCommand.java     |    2 
 src/main/resources/application.yml                          |    4 
 src/main/java/com/zy/core/ServerBootstrap.java              |   13 +++-
 8 files changed, 105 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 079cd36..23338fa 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -121,11 +121,11 @@
                     }
                 } else {
                     // led 寮傚父鏄剧ず
-                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                    if (ledThread != null) {
-                        String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
-                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
-                    }
+//                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+//                    if (ledThread != null) {
+//                        String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+//                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+//                    }
                     continue;
                 }
 
@@ -199,7 +199,7 @@
                                 .build()
                                 .doPost();
                         JSONObject jsonObject = JSON.parseObject(response);
-//                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
 //                        Integer code = jsonObject.getInteger("code");
                         if (jsonObject.getInteger("code").equals(200)) {
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
@@ -208,6 +208,7 @@
                             staProtocol.setWorkNo(dto.getWorkNo().shortValue());
                             staProtocol.setStaNo(dto.getStaNo().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            ledThread.errorReset();
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             if (!result) {
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
@@ -1486,6 +1487,7 @@
                 }
                 ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                 ledCommand.setStaNo(wrkMast.getStaNo());
+                ledCommand.setBarcode(wrkMast.getBarcode());
                 if (wrkMast.getIoType() != 110) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
                     wrkDetls.forEach(wrkDetl -> {
@@ -1561,7 +1563,7 @@
             // led鏄剧ず榛樿鍐呭
             if (reset) {
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
-                    News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                    News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触1565锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                 }
             }
         }
diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index e5b625b..19322ad 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -9,7 +9,7 @@
 public class MatDto {
 
     // 鐗╂枡缂栧彿
-    private String matNo;
+    private String matnr;
 
     // 鐗╂枡鍚嶇О
     private String maknx;
@@ -20,8 +20,8 @@
     public MatDto() {
     }
 
-    public MatDto(String matNo, String maknx, Double count) {
-        this.matNo = matNo;
+    public MatDto(String matnr, String maknx, Double count) {
+        this.matnr = matnr;
         this.maknx = maknx;
         this.count = count;
     }
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 062a29f..817c710 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -92,12 +92,17 @@
         log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
         for (Slave barcode : slaveProperties.getBarcode()) {
             BarcodeThread barcodeThread = new BarcodeThread(barcode);
-            if(barcode.getId() > 6)
-            {//1鍒�6鍙锋壂鐮佸櫒鏁版嵁浠嶱LC涓幏鍙栵紝鏃犻渶start
-                new Thread(barcodeThread).start();
-            }
+            new Thread(barcodeThread).start();
             SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
         }
+//        for (Slave barcode : slaveProperties.getBarcode()) {
+//            BarcodeThread barcodeThread = new BarcodeThread(barcode);
+//            if(barcode.getId() > 6)
+//            {//1鍒�6鍙锋壂鐮佸櫒鏁版嵁浠嶱LC涓幏鍙栵紝鏃犻渶start
+//                new Thread(barcodeThread).start();
+//            }
+//            SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
+//        }
         // 鍒濆鍖朙ED绾跨▼
         log.info("鍒濆鍖朙ED绾跨▼...................................................");
         for (LedSlave led : slaveProperties.getLed()) {
diff --git a/src/main/java/com/zy/core/model/command/LedCommand.java b/src/main/java/com/zy/core/model/command/LedCommand.java
index 36685e8..0a31d46 100644
--- a/src/main/java/com/zy/core/model/command/LedCommand.java
+++ b/src/main/java/com/zy/core/model/command/LedCommand.java
@@ -25,6 +25,8 @@
 
     private String sourceLocNo;
 
+    private String barcode;
+
     private List<MatDto> matDtos = new ArrayList<>();
 
     private boolean emptyMk = false;
diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java
index d735a76..fbf55fc 100644
--- a/src/main/java/com/zy/core/thread/LedThread.java
+++ b/src/main/java/com/zy/core/thread/LedThread.java
@@ -85,7 +85,7 @@
             sb.append("鐩爣绔欙細").append(command.getStaNo()).append("\n");
             if (!command.isEmptyMk()) {
                 for (MatDto matDto : command.getMatDtos()) {
-                    sb.append(matDto.getMatNo()).append("-").append(matDto.getMaknx()).append("\n");
+                    sb.append(matDto.getMatnr()).append("-").append(matDto.getMaknx()).append("\n");
                 }
             }
             sb.append("\n");
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 7bb8e27..1aa95ab 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -232,6 +232,37 @@
             log.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())
+                ){
+                    log.error("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                    log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
+                    Thread.sleep(100);
+                    readStatus();
+                    return false;
+                } else {
+                    log.info("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                }
+            }
+        }catch (Exception e){
+            log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+        }
 //        convertRow(command);
         command.setCrnNo(slave.getId());
 //        short[] array = new short[10];
@@ -248,6 +279,48 @@
         array[9] = command.getCommand();
         array[10] = command.getLocType1();   //鏂板璐х墿绫诲瀷涓嬪彂
         OperateResult result = siemensNet.Write("DB100.0", array);
+        log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
+
+        if(!result.IsSuccess){
+            log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+            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));
+                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())
+                ){
+                    log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                    log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
+                    Thread.sleep(100);
+                    readStatus();
+                    return false;
+                } else {
+                    log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                }
+            }
+        }catch (Exception e){
+            log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+        }
 
         if (command.getAckFinish() == 0) {
             short commandFinish = 1;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 78851a1..328c002 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -139,14 +139,14 @@
   # LED1
   led[0]:
     id: 1
-    ip: 10.10.10.221
+    ip: 10.10.10.220
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
     staArr: 100
   # LED2
   led[1]:
     id: 2
-    ip: 10.10.10.222
+    ip: 10.10.10.221
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
     staArr: 103
\ No newline at end of file
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 8d69b6c..b3148e3 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -607,12 +607,12 @@
                         offSet = 1710; //145
 
 
-                        crnEl.animate({left: offSet + 'px'}, 1000);
-                        // if(crns[i].bay === 1){
-                        //     crnEl.animate({left: offSet + 'px'}, 1000);
-                        // } else {
-                        //     crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000);
-                        // }
+                        // crnEl.animate({left: offSet + 'px'}, 1000);
+                        if(crns[i].bay === 1){
+                            crnEl.animate({left: offSet + 'px'}, 1000);
+                        } else {
+                            crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000);
+                        }
 
                     }
                 } else if (res.code === 403) {

--
Gitblit v1.9.1