From 204e15023a4443ac2849f732763ee41ee2918f06 Mon Sep 17 00:00:00 2001
From: lsh <lsh123456>
Date: 星期二, 07 三月 2023 13:16:47 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/model/MatDto.java               |   36 ++++++-
 src/main/java/com/zy/core/thread/LedThread.java             |   10 ++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   91 ++++++++++++------
 src/main/java/com/zy/asrs/controller/MonitorController.java |   22 ++++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   71 ++++++++-----
 src/main/resources/application.yml                          |   35 +++++-
 6 files changed, 192 insertions(+), 73 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MonitorController.java b/src/main/java/com/zy/asrs/controller/MonitorController.java
index df73a28..51fdd09 100644
--- a/src/main/java/com/zy/asrs/controller/MonitorController.java
+++ b/src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -62,7 +62,17 @@
      * 鑾峰彇鍏朵粬淇℃伅
      */
     @GetMapping("/other")
-    public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer ledId) {
+    public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer sta) {
+        Integer ledId = 0;
+        for (LedSlave led : slaveProperties.getLed()) {
+            for (Integer staNo : led.getStaArr()) {
+                if (staNo.equals(sta)) {
+                    ledId = led.getId();
+                    break;
+                }
+            }
+        }
+
         Double xSpeed = 0.0D;
         Double ySpeed = 0.0D;
         Double zSpeed = 0.0D;
@@ -105,7 +115,15 @@
         // 鑾峰彇杈撻�佺嚎plc绾跨▼
         LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledId);
         String ledContent = ledThread==null?"":ledThread.getWorkNos().toString();
-//        ledContent = "ask鐨勬ā鍧楄惃婊″ぇ绠椾簡钀ㄦ弧澶т簡\n 鏄獦澧冨埌鍩冨強鍡插鍡瞈n 钀ㄨ揪濮嗘墦寮�钀ㄦ弧澶у嚡鎾掗害褰撳姵钀ㄦ弧澶ц�佸笀";
+        if (!(xSpeed<127)){
+            xSpeed=0.0;
+        }
+        if (!(ySpeed<127)){
+            ySpeed=0.0;
+        }
+        if (!(zSpeed<127)){
+            zSpeed=0.0;
+        }
 
         return R.ok(
                 Cools.add("xSpeed", Arith.multiplys(1, Math.abs(xSpeed), 1)) // 琛岃蛋閫熷害
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 c7a5445..7a79790 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -120,39 +120,37 @@
                         && staProtocol.isInEnable()
                         && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
                         && staProtocol.isPakMk()) {
-
                     // 灏哄妫�娴嬪紓甯�
                     boolean back = false;
-                    String errMsg = "";
+                    String errMsg = "寮傚父锛�";
                     if (staProtocol.isFrontErr()) {
-                        errMsg = "鍓嶈秴闄�";
+                        errMsg = errMsg+"鍓嶈秴闄愶紱";
                         back = true;
                     }
-                    if (!back && staProtocol.isBackErr()) {
-                        errMsg = "鍚庤秴闄�";
+                    if (staProtocol.isBackErr()) {
+                        errMsg = errMsg+"鍚庤秴闄�";
                         back = true;
                     }
-                    if (!back && staProtocol.isHighErr()) {
-                        errMsg = "楂樿秴闄�";
+                    if (staProtocol.isHighErr()) {
+                        errMsg = errMsg+"楂樿秴闄�";
                         back = true;
                     }
-                    if (!back && staProtocol.isLeftErr()) {
-                        errMsg = "宸﹁秴闄�";
+                    if (staProtocol.isLeftErr()) {
+                        errMsg = errMsg+"宸﹁秴闄�";
                         back = true;
                     }
-                    if (!back && staProtocol.isRightErr()) {
-                        errMsg = "鍙宠秴闄�";
+                    if (staProtocol.isRightErr()) {
+                        errMsg = errMsg+"鍙宠秴闄�";
                         back = true;
                     }
-                    if (!back && staProtocol.isWeightErr()) {
-                        errMsg = "瓒呴噸";
+                    if (staProtocol.isWeightErr()) {
+                        errMsg = errMsg+"瓒呴噸";
                         back = true;
                     }
-                    if (!back && staProtocol.isBarcodeErr()) {
-                        errMsg = "鎵爜澶辫触";
+                    if (staProtocol.isBarcodeErr()) {
+                        errMsg = errMsg+"鎵爜澶辫触";
                         back = true;
                     }
-
                     // 閫�鍥�
                     if (back) {
                         News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
@@ -177,7 +175,7 @@
                     String barcode = barcodeThread.getBarcode();
                     if(!Cools.isEmpty(barcode)) {
 //                        News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                        if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
+                        if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)|| "00000000".equals(barcode)) {
                             staProtocol.setWorkNo((short) 32002);
                             staProtocol.setStaNo(inSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -2388,18 +2386,11 @@
                         break;
                 }
                 ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+                ledCommand.setLocNo(wrkMast.getLocNo());
                 ledCommand.setStaNo(wrkMast.getStaNo());
-                if (wrkMast.getIoType() != 110) {
+                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-                    try {
-                        WrkDetl wrkDetl = wrkDetls.get(0);
-                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                            OrderDetl orderDetl = orderDetlMapper.selectItemNoneOfBatch(wrkDetl.getOrderNo(), wrkDetl.getMatnr());
-                            ledCommand.getMatDtos().add(new MatDto(orderDetl));
-                        }
-                    } catch (Exception e) {
-                        News.error("led execute fail", e);
-                    }
+                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getSpecs())));
                 }
                 commands.add(ledCommand);
             }
@@ -2412,9 +2403,20 @@
             }
             // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
             if (!commands.isEmpty()) {
-                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
-                    News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-                    continue;
+                if (led.getId()>3){
+                    if (!MessageQueue.offer(SlaveType.Led, led.getId()-3, new Task(1, commands))) {
+                        log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId()-3, led.getIp(), led.getPort());
+                        continue;
+                    }else {
+                        ledThread.setLedMk(false);
+                    }
+                }else {
+                    if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
+                        log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                        continue;
+                    }else {
+                        ledThread.setLedMk(false);
+                    }
                 }
             }
 
@@ -2444,6 +2446,35 @@
      */
     public void ledReset() {
         for (LedSlave led : slaveProperties.getLed()) {
+
+            // 鑾峰彇杈撻�佺嚎plc绾跨▼
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+            // 鍛戒护闆嗗悎
+            boolean reset = true;
+            for (Integer staNo : led.getStaArr()) {
+                // 鑾峰彇鍙夎溅绔欑偣
+                StaProtocol staProtocol = devpThread.getStation().get(staNo);
+                if (staProtocol == null) {
+                    continue;
+                }
+                if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) {
+                    reset = false;
+                    break;
+                }
+            }
+            // 鑾峰彇led绾跨▼
+            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+            // led鏄剧ず榛樿鍐呭
+            if (reset && !ledThread.isLedMk()) {
+                ledThread.setLedMk(true);
+                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+                    News.error(" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                } else {
+
+                }
+            }
+        }
+        for (LedSlave led : slaveProperties.getLed()) {
             // 鑾峰彇杈撻�佺嚎plc绾跨▼
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
             // 鍛戒护闆嗗悎
diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index f3c808f..358e924 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -13,6 +13,18 @@
     private String matnr;
 
     // 鐗╂枡鍚嶇О
+    private String maknx;
+
+    // 搴撲綅瑙勬牸
+    private String specs;
+
+    // 鐗╂枡鏁伴噺
+    private Double count;
+
+    // 搴撲綅鏁伴噺
+    private Double total;
+
+    // 鐗╂枡鍚嶇О
     private String model;
 
     // 鏉$爜
@@ -20,12 +32,6 @@
 
     // 璁㈠崟缂栧彿
     private String orderNo;
-
-    // 宸插嚭
-    private Double count;
-
-    // 鎬绘暟閲�
-    private Double total;
 
     public MatDto() {
     }
@@ -38,4 +44,22 @@
         this.count = orderDetl.getQty();
         this.total = orderDetl.getAnfme();
     }
+    public MatDto(String matNo, String maknx, Double count) {
+        this.matnr = matNo;
+        this.maknx = maknx;
+        this.count = count;
+    }
+    public MatDto(String matNo, String maknx, Double count,String specs) {
+        this.specs = specs;
+        this.matnr = matNo;
+        this.maknx = maknx;
+        this.count = count;
+    }
+    public MatDto(String matNo, String maknx, Double count,Double total,String specs) {
+        this.specs = specs;
+        this.matnr = matNo;
+        this.maknx = maknx;
+        this.count = count;
+        this.total = total;
+    }
 }
diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java
index 1581f7a..eb261b6 100644
--- a/src/main/java/com/zy/core/thread/LedThread.java
+++ b/src/main/java/com/zy/core/thread/LedThread.java
@@ -9,6 +9,10 @@
 import com.zy.core.model.command.LedCommand;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+import onbon.bx05.Bx5GScreenClient;
+import onbon.bx05.area.TextCaptionBxArea;
+import onbon.bx05.file.ProgramBxFile;
+import onbon.bx05.utils.DisplayStyleFactory;
 
 import java.util.HashSet;
 import java.util.List;
@@ -23,6 +27,12 @@
 
     private Slave slave;
     private Set<Integer> workNos = new HashSet<>();
+    private Bx5GScreenClient screen;
+    ProgramBxFile pf;
+    TextCaptionBxArea area;
+    DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]);
+    private boolean ledMk = false;
+    private boolean resetStatus = false;    // 澶嶄綅鐘舵��
 
     // 鏄剧ず鍣�
     private StringBuffer stringBuffer = new StringBuffer();
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index edce7b1..408002a 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -181,34 +181,49 @@
             charge1 = status[0];
         }
 
-//        // 澶栧舰妫�娴� - 102
-//        Thread.sleep(50);
-//        OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB102.129", (short)1);
-//        if (result4.IsSuccess) {
-//            boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1);
-//            StaProtocol staProtocol = station.get(102);
-//            staProtocol.setFrontErr(status[0]);
-//            staProtocol.setBackErr(status[1]);
-//            staProtocol.setHighErr(status[2]);
-//            staProtocol.setLeftErr(status[3]);
-//            staProtocol.setRightErr(status[4]);
-//            staProtocol.setWeightErr(status[5]);
-//            staProtocol.setBarcodeErr(status[6]);
-//        }
-//        // 澶栧舰妫�娴� - 203
-//        Thread.sleep(50);
-//        OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.130", (short)1);
-//        if (result5.IsSuccess) {
-//            boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 1);
-//            StaProtocol staProtocol = station.get(202);
-//            staProtocol.setFrontErr(status[0]);
-//            staProtocol.setBackErr(status[1]);
-//            staProtocol.setHighErr(status[2]);
-//            staProtocol.setLeftErr(status[3]);
-//            staProtocol.setRightErr(status[4]);
-//            staProtocol.setWeightErr(status[5]);
-//            staProtocol.setBarcodeErr(status[6]);
-//        }
+        // 澶栧舰妫�娴� - 102
+        Thread.sleep(50);
+        OperateResultExOne<byte[]> result102 = siemensS7Net.Read("DB102.110", (short)1);
+        if (result102.IsSuccess) {
+            boolean[] status = siemensS7Net.getByteTransform().TransBool(result102.Content, 0, 1);
+            StaProtocol staProtocol = station.get(102);
+            staProtocol.setFrontErr(status[0]);// 鍓嶈秴闄�
+            staProtocol.setBackErr(status[1]);// 鍚庤秴闄�
+            staProtocol.setHighErr(status[2]);// 楂樿秴闄�
+            staProtocol.setLeftErr(status[3]);// 宸﹁秴闄�
+            staProtocol.setRightErr(status[4]);// 鍙宠秴闄�
+            staProtocol.setWeightErr(status[5]); // 瓒呴噸
+            staProtocol.setBarcodeErr(status[6]);// 鎵爜澶辫触
+        }
+        // 澶栧舰妫�娴� - 201
+        Thread.sleep(50);
+        OperateResultExOne<byte[]> result201 = siemensS7Net.Read("DB102.112", (short)1);
+        if (result201.IsSuccess) {
+            boolean[] status = siemensS7Net.getByteTransform().TransBool(result201.Content, 0, 1);
+            StaProtocol staProtocol = station.get(201);
+            staProtocol.setFrontErr(status[0]);
+            staProtocol.setBackErr(status[1]);
+            staProtocol.setHighErr(status[2]);
+            staProtocol.setLeftErr(status[3]);
+            staProtocol.setRightErr(status[4]);
+            staProtocol.setWeightErr(status[5]);
+            staProtocol.setBarcodeErr(status[6]);
+        }
+        // 澶栧舰妫�娴� - 301
+        Thread.sleep(50);
+        OperateResultExOne<byte[]> result301 = siemensS7Net.Read("DB102.114", (short)1);
+        if (result301.IsSuccess) {
+            boolean[] status = siemensS7Net.getByteTransform().TransBool(result301.Content, 0, 1);
+            StaProtocol staProtocol = station.get(301);
+            staProtocol.setFrontErr(status[0]);
+            staProtocol.setBackErr(status[1]);
+            staProtocol.setHighErr(status[2]);
+            staProtocol.setLeftErr(status[3]);
+            staProtocol.setRightErr(status[4]);
+            staProtocol.setWeightErr(status[5]);
+            staProtocol.setBarcodeErr(status[6]);
+        }
+
 
         if (result.IsSuccess && result1.IsSuccess) {
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 251f3c5..e6e65d7 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -183,21 +183,42 @@
    # LED1
   led[0]:
     id: 1
-    ip: 10.10.10.231
+    ip: 10.10.10.241
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
     staArr: 102
-  # LED1
+  # LED2
   led[1]:
     id: 2
-    ip: 10.10.10.232
+    ip: 10.10.10.242
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 202
-  # LED1
+    staArr: 201
+  # LED3
   led[2]:
     id: 3
-    ip: 10.10.10.233
+    ip: 10.10.10.243
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 302
+    staArr: 301
+  # LED1
+  led[3]:
+    id: 4
+    ip: 10.10.10.241
+    port: 5005
+    devpPlcId: ${wcs-slave.devp[0].id}
+    staArr: 100
+  # LED2
+  led[4]:
+    id: 5
+    ip: 10.10.10.242
+    port: 5005
+    devpPlcId: ${wcs-slave.devp[0].id}
+    staArr: 200
+  # LED3
+  led[5]:
+    id: 6
+    ip: 10.10.10.243
+    port: 5005
+    devpPlcId: ${wcs-slave.devp[0].id}
+    staArr: 300

--
Gitblit v1.9.1