From b717124538f5f68d158f10e37e23c7e0327563f6 Mon Sep 17 00:00:00 2001
From: gtsxc <3272660260@qq.com>
Date: 星期六, 02 十一月 2024 17:04:08 +0800
Subject: [PATCH] #

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

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java
index fb09b66..338f581 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java
@@ -65,7 +65,7 @@
         this.device = device;
         this.redisUtil = redisUtil;
 
-        workModeTypes.put(101, new WorkModeTypeDto(101, WorkModeType.NONE, "DB1001.120"));
+//        workModeTypes.put(101, new WorkModeTypeDto(101, WorkModeType.NONE, "DB1001.120"));
     }
 
     private ArrayList<BasConveyorSta> getStaNo() {
@@ -108,7 +108,7 @@
         updateWorkMode();
         ArrayList<BasConveyorSta> staNos = getStaNo();
         int staNoSize = staNos.size();
-        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.16", (short) (staNoSize * 18));
+        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.20", (short) (staNoSize * 18));
         if (result.IsSuccess) {
             for (int i = 0; i < staNoSize; i++) {
                 BasConveyorSta siteStation = staNos.get(i);
@@ -120,17 +120,18 @@
                     station.put(siteId, staProtocol);
                 }
 
-                staProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18) == 2);  // 鑷姩
+                staProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18) == 1);  // 鑷姩
                 staProtocol.setLoading(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 2) == 1);  // 鏈夌墿
                 staProtocol.setInEnable(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 4) == 1); // 鍙叆
-                staProtocol.setOutEnable(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 6) == 2);// 鍙嚭
+                staProtocol.setOutEnable(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 6) == 1);// 鍙嚭
 
                 //楂樹綆淇″彿
                 short locType1 = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 8);
                 staProtocol.setLow(locType1 == 1);
 //                staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 宸ヤ綔妯″紡
-                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 10));     // 宸ヤ綔鍙�
-                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 14));   // 鐩爣绔�
+                staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 18 + 10));     // 宸ヤ綔鍙�
+                staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 18 + 14));   // 鐩爣绔�
+
 
                 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                     staProtocol.setPakMk(true);
@@ -138,18 +139,20 @@
             }
         }
 
-        OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.160", (short) 8);
-        //鏉$爜鏁版嵁
-        String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content,0,8, "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));
-        if (basConveyorSta != null) {
-            DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId());
-            if (deviceBarcode != null) {
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId()));
-                if (barcodeThread != null) {
-                    barcodeThread.setBarcode(barcode);
+        OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.166", (short) 9);
+        if (resultBarcode.IsSuccess) {
+            //鏉$爜鏁版嵁
+            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));
+            if (basConveyorSta != null) {
+                DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId());
+                if (deviceBarcode != null) {
+                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId()));
+                    if (barcodeThread != null) {
+                        barcodeThread.setBarcode(barcode);
+                    }
                 }
             }
         }
@@ -168,6 +171,7 @@
                 }
 
                 if (!stations.isEmpty()) {
+                    BasConveyorStaService basConveyorStaService = SpringUtils.getBean(BasConveyorStaService.class);
                     if (null != basConveyorStaService && !basConveyorStaService.updateBatchById(stations)) {
                         throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
                     }
@@ -188,7 +192,7 @@
     @Override
     public boolean connect() {
         boolean result = false;
-        siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, device.getIp());
+        siemensS7Net = new SiemensS7Net(SiemensPLCS.S1500, device.getIp());
         siemensS7Net.setRack(device.getRack().byteValue());
         siemensS7Net.setSlot(device.getSlot().byteValue());
         OperateResult connect = siemensS7Net.ConnectServer();
@@ -213,7 +217,7 @@
     public boolean writeWorkNo(int siteId, short workNo) {
         int index = findStaNosIndex(siteId);
 
-        OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 20), workNo);    // 宸ヤ綔鍙�
+        OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 20 + 4),(int) workNo);    // 宸ヤ綔鍙�
 
         if (!write.IsSuccess) {
             StaProtocol staProtocol = station.get(siteId);
@@ -234,7 +238,7 @@
     public boolean writeStaNo(int siteId,short staNo) {
         int index = findStaNosIndex(siteId);
 
-        OperateResult write = siemensS7Net.Write("DB1001." + (index * 8 + 20 + 4), staNo);    // 鐩爣绔�
+        OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 20),(int) staNo);    // 鐩爣绔�
 
         if (!write.IsSuccess) {
             StaProtocol staProtocol = station.get(siteId);
@@ -255,44 +259,30 @@
     public boolean writeWorkSta(int siteId, short workNo, short staNo) {
         int index = findStaNosIndex(siteId);
 
-        String workNoAddress = "DB1001." + (index * 8 + 20);
-        String staNoAddress = "DB1001." + (index * 8 + 20 + 4);
+        short[] array = new short[2];
+        array[0] = workNo;
+        array[1] = staNo;
+
+
+        String workNoAddress = "DB101." + (index * 8 + 20 + 4);
+        String staNoAddress = "DB101." + (index * 8 + 20);
         OperateResult write1 = null;    // 宸ヤ綔鍙�
         OperateResult write2 = null;     // 鐩爣绔�
 
-        //浠诲姟涓嬪彂娆℃暟
-        int writeCount = 0;
-        do {
-            write1 = siemensS7Net.Write(workNoAddress, workNo);    // 宸ヤ綔鍙�
-            write2 = siemensS7Net.Write(staNoAddress, staNo);    // 鐩爣绔�
-            if ((write1.IsSuccess && write2.IsSuccess)) {
-                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + (index * 40 + 100 + 2), (short) 4);
-                if (readResult.IsSuccess) {
-                    short workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
-                    short staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);
-                    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) ;
-        StaProtocol staProtocol = station.get(siteId);
-        if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
-            staProtocol.setPakMk(true);
+//        write1 = siemensS7Net.Write(workNoAddress, workNo);    // 宸ヤ綔鍙�
+//        write2 = siemensS7Net.Write(staNoAddress, staNo);    // 鐩爣绔�
+
+        write1 = siemensS7Net.Write(workNoAddress, (int) workNo);    // 宸ヤ綔鍙�
+        write2 = siemensS7Net.Write(staNoAddress, (int) staNo);    // 鐩爣绔�
+
+        if ((write1.IsSuccess && write2.IsSuccess)) {
+            log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo));
+            return true;
+        }else {
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(array)));
+            log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(array));
+            return false;
         }
-        OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol)));
-        log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
-        return false;
     }
 
     @Override

--
Gitblit v1.9.1