From 50435a81915932eda06b7f1afd48f9ff1ae84f19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 10 四月 2025 17:50:28 +0800
Subject: [PATCH] 1

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java |  116 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 71 insertions(+), 45 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
index eced132..a01dcdd 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
@@ -47,11 +47,31 @@
     public static ArrayList<BasConveyorSta> stationList = new ArrayList<>();
 
     public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
-        add(1012);add(1014);add(1015);add(1022);
-        add(1023);add(1025);add(1026);add(1031);
+        add(1012);
+        add(1014);
+        add(1015);
+        add(1022);
+        add(1023);
+        add(1025);
+        add(1026);
+        add(1031);
         add(1032);
+    }};
 
-
+    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+        add(1011);
+        add(1012);
+        add(1013);
+        add(1014);
+        add(1015);
+        add(1021);
+        add(1022);
+        add(1023);
+        add(1024);
+        add(1025);
+        add(1026);
+        add(1031);
+        add(1032);
     }};
 
     /**
@@ -84,7 +104,7 @@
                 BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>()
                         .eq(BasConveyor::getDeviceId, device.getId())
                         .eq(BasConveyor::getHostId, device.getHostId()));
-                if(basConveyor != null) {
+                if (basConveyor != null) {
                     List<BasConveyorSta> stations = basConveyorStaService.list(new LambdaQueryWrapper<BasConveyorSta>()
                             .eq(BasConveyorSta::getConveyorId, basConveyor.getId())
                             .eq(BasConveyorSta::getHostId, device.getHostId()));
@@ -128,14 +148,14 @@
 
                     if (siteId == 1015) {
                         staProtocol.setLocNo("1200301");
-                    }else if (siteId == 1026) {
+                    } else if (siteId == 1026) {
                         staProtocol.setLocNo("1200305");
                     }
 
                     station.put(siteId, staProtocol);
                 }
                 Thread.sleep(300);
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*26, 2);
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 26, 2);
                 staProtocol.setAutoing(status[0]);  // 鑷姩
                 staProtocol.setIdle(status[1]); //绌洪棽
                 staProtocol.setLoading(status[2]);  // 鏈夌墿
@@ -151,15 +171,15 @@
                 staProtocol.setOutEnable(status[14]);// 鍙嚭
 
 
-                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+2));     // 宸ヤ綔鍙�
-                staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+6)); //宸插畬鎴愬伐浣滃彿
-                staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*26+10,12, "UTF-8").trim()); //鏉$爜
-                staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i*26+22)); //閲嶉噺
+                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 2));     // 宸ヤ綔鍙�
+                staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 4));   // 鐩爣绔�
+                staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 6)); //宸插畬鎴愬伐浣滃彿
+                staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content, i * 26 + 10, 12, "UTF-8").trim()); //鏉$爜
+                staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i * 26 + 22)); //閲嶉噺
 
 
 //                staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 宸ヤ綔妯″紡
-                staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10));     // 宸ヤ綔鍙�
-                staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 12));   // 鐩爣绔�
+                //staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10));     // 宸ヤ綔鍙�
 
                 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                     staProtocol.setPakMk(true);
@@ -170,7 +190,7 @@
         OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.166", (short) 9);
         if (resultBarcode.IsSuccess) {
             //鏉$爜鏁版嵁
-            String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content,0,9, "UTF-8");// 鏉$爜
+            String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content, 0, 9, "UTF-8");// 鏉$爜
             BasConveyorStaService basConveyorStaService = SpringUtils.getBean(BasConveyorStaService.class);
             DeviceBarcodeService deviceBarcodeService = SpringUtils.getBean(DeviceBarcodeService.class);
             BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, 31002));
@@ -187,7 +207,7 @@
 
         if (!Cools.isEmpty(result) && result.IsSuccess) {
 
-            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getId()));
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), device.getId()));
 
             // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
             try {
@@ -224,12 +244,12 @@
         siemensS7Net.setRack(device.getRack().byteValue());
         siemensS7Net.setSlot(device.getSlot().byteValue());
         OperateResult connect = siemensS7Net.ConnectServer();
-        if(connect.IsSuccess){
+        if (connect.IsSuccess) {
             result = true;
-            OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
             News.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort());
         } else {
-            OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]  [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]  [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
             News.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort());
         }
         // siemensS7Net.ConnectClose();
@@ -246,44 +266,45 @@
         int index = staNos1.indexOf(siteId);
         index += 1;
 
-        OperateResult write = siemensS7Net.Write("DB83." + (index *8+6),(int) workNo);    // 宸ヤ綔鍙�
+        OperateResult write = siemensS7Net.Write("DB83." + (index * 8 + 6), (int) workNo);    // 宸ヤ綔鍙�
 
         if (!write.IsSuccess) {
             StaProtocol staProtocol = station.get(siteId);
-            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
                 staProtocol.setPakMk(true);
             }
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol)));
             log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
         } else {
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(workNo)));
-            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  device.getId(), JSON.toJSON(workNo));
+            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(workNo));
             return true;
         }
         return false;
     }
 
     @Override
-    public boolean writeStaNo(int siteId,short staNo) {
+    public boolean writeStaNo(int siteId, short staNo) {
         int index = staNos1.indexOf(siteId);
         index += 1;
 
-        OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4),(int) staNo);    // 鐩爣绔�
+        OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4), (int) staNo);    // 鐩爣绔�
 
         if (!write.IsSuccess) {
             StaProtocol staProtocol = station.get(siteId);
-            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
                 staProtocol.setPakMk(true);
             }
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol)));
             log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
         } else {
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(staNo)));
-            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  device.getId(), JSON.toJSON(staNo));
+            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(staNo));
             return true;
         }
         return false;
     }
+
 
     @Override
     public boolean writeWorkSta(int siteId, short workNo, short staNo) {
@@ -294,37 +315,42 @@
         array[0] = workNo;
         array[1] = staNo;
 
-        String workNoAddress = "DB83." + (index * 8 + 6);
         String staNoAddress = "DB83." + (index * 8 + 4);
+        String workNoAddress = "DB83." + (index * 8 + 6);
         OperateResult write1 = null;    // 宸ヤ綔鍙�
         OperateResult write2 = null;     // 鐩爣绔�
 
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write1 = siemensS7Net.Write(workNoAddress,  workNo);    // 宸ヤ綔鍙�
+            write1 = siemensS7Net.Write(workNoAddress, workNo);    // 宸ヤ綔鍙�
             write2 = siemensS7Net.Write(staNoAddress, staNo);
             if ((write1.IsSuccess && write2.IsSuccess)) {
-                OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
-                if (readResult.IsSuccess) {
-                    int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
-                    int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
-                    if (workNo == workNo2 && staNo == staNo2) {
-                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
-                        log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
-                        return true;
-                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
-                        writeCount++;
-                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
-                    }
-                } else {
-                    writeCount++;
-                    log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
-                }
-            }else {
+                log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+                return true;
+//                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB82.14", (short) (staNos2.indexOf(siteId) * 26));
+//                //OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
+//                if (readResult.IsSuccess) {
+//                    int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);     // 宸ヤ綔鍙�
+//                    int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);   // 鐩爣绔�
+//                    // int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+//                    //int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+//                    if (workNo == workNo2 && staNo == staNo2) {
+//                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
+//                        log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+//                        return true;
+//                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
+//                        writeCount++;
+//                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+//                    }
+//                } else {
+//                    writeCount++;
+//                    log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+//                }
+            } else {
                 writeCount++;
             }
-        }while (writeCount < 5) ;
+        } while (writeCount < 5);
 //        StaProtocol staProtocol = station.get(siteId);
 //        if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
 //            staProtocol.setPakMk(true);
@@ -380,7 +406,7 @@
     @Override
     public boolean switchWorkMode(int siteId, int workMode) {
         WorkModeTypeDto workModeTypeDto = workModeTypes.get(siteId);
-        if(workModeTypeDto == null) {
+        if (workModeTypeDto == null) {
             return false;
         }
 

--
Gitblit v1.9.1