From f25bbbc769f14d18c39f11ba0e395a9f09431148 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期日, 11 五月 2025 12:13:06 +0800
Subject: [PATCH] #调试

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java      |    2 
 src/main/java/com/zy/asrs/controller/ConsoleController.java |    3 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |    6 
 src/main/webapp/views/console.html                          |    2 
 src/main/java/com/zy/asrs/controller/CrnController.java     |    8 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |  318 +++++++++++++++++--------------
 src/main/resources/application.yml                          |  203 ++++++++++----------
 7 files changed, 292 insertions(+), 250 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 208b218..5a2f5fc 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -149,6 +149,9 @@
             /**
              * 鍫嗗灈鏈虹姸鎬佸垽鏂�
              */
+            if(crnProtocol.getAlarm() == 10){
+                crnProtocol.setAlarm((short) 0);
+            }
             if (crnProtocol.getAlarm() > 0) {
                 vo.setCrnStatus(CrnStatusType.MACHINE_ERROR);
             } else {
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index e4fcfca..387ea02 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -127,6 +127,9 @@
             vo.setForkOffset(crnProtocol.getForkPosType().desc);    // 璐у弶浣嶇疆
             vo.setLiftPos(crnProtocol.getLiftPosType().desc);
             vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
+            if(crnProtocol.getAlarm() == 10){
+                crnProtocol.setAlarm((short) 0);
+            }
             vo.setWarnCode(String.valueOf(crnProtocol.getAlarm()));
             if (crnProtocol.getAlarm() > 0) {
                 BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
@@ -513,7 +516,10 @@
     }
 
     private boolean isLocSts(String row,String bay,String lev){
-        String loc = String.format("%2d",row)+String.format("%3d",bay)+String.format("%2d",lev);
+        int rowInt = Integer.parseInt(row);
+        int bayInt = Integer.parseInt(bay);
+        int levInt = Integer.parseInt(lev);
+        String loc = String.format("%2d",rowInt)+String.format("%3d",bayInt)+String.format("%2d",levInt);
         LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", loc));
         if (Cools.isEmpty(locMast)){
             return false;
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 f02e02d..0aa5cf6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -411,7 +411,7 @@
                 StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
 
                 if(staProtocol == null) {
-                    News.error("绔欑偣淇℃伅鏈幏寰�");
+//                    News.error("绔欑偣淇℃伅鏈幏寰�");
                     continue;
                 }
                 // 灏哄妫�娴嬪紓甯�
@@ -1103,7 +1103,7 @@
             crnCommand.setDestinationPosX((short) (locMast.getRow1() + slave.getOffset()));     // 鐩爣搴撲綅鎺�
             crnCommand.setDestinationPosY((short) (locMast.getBay1() + slave.getOffset()));     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ((short) (locMast.getLev1() + slave.getOffset()));     // 鐩爣搴撲綅灞�
-            crnCommand.setTraySize(locMast.getLocType1() == 2);
+//            crnCommand.setTraySize(locMast.getLocType1() == 2);
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                 News.error("" + mark + " - 1" + " - 16" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
@@ -1689,8 +1689,8 @@
 
                     try {
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
                         SearchLocParam param = new SearchLocParam();
+                        locTypeDto.setLocType1((short) 1);
                         param.setIoType(10);
                         param.setSourceStaNo(emptyInSta.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index bd2b292..68b9ebe 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -602,7 +602,7 @@
 //        if (result != null && result.IsSuccess) {
 //            Thread.sleep(200);
 //            this.readStatus();
-////            News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+////            News.info("鍫嗗灈鏈哄懡浠や笅鍙慬{}] >>>>> {}", 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;
 //        } else {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index ca72822..2bf4d3a 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -28,10 +28,7 @@
 import lombok.extern.slf4j.Slf4j;
 
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -71,12 +68,22 @@
         add(401);add(402);add(403);add(404);
     }};
 
-    public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
-        add(1); add(2);add(3);add(4);add(5);add(6);add(7);add(8);add(9);
+    public static final ArrayList<Integer> BarcodeList1 = new ArrayList<Integer>() {{
+        add(1); add(2);add(3);add(4);add(5);
+    }};
+
+    public static final ArrayList<Integer> BarcodeList2 = new ArrayList<Integer>() {{
+        add(6);add(7);add(8);add(9);
         add(10); add(11); add(12); add(13);
     }};
-    public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
-        add(101); add(201);
+    public static final ArrayList<Integer> staNosErrList2 = new ArrayList<Integer>() {{
+        add(101); add(104);add(106);add(108);
+        add(202);add(204);add(207);add(210);
+    }};
+
+    public static final ArrayList<Integer> staNosErrList1 = new ArrayList<Integer>() {{
+        add(122);
+        add(222);add(224);add(227);add(230);
     }};
 
     private Integer count=0;
@@ -103,6 +110,17 @@
         this.slave = slave;
     }
 
+    private ArrayList<Integer> getStaNoErr() {
+        switch (slave.getId()) {
+            case 1:
+                return staNosErrList1;
+            case 2:
+                return staNosErrList2;
+            default:
+                throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
+        }
+    }
+
     private ArrayList<Integer> getStaNo() {
         switch (slave.getId()) {
             case 1:
@@ -111,6 +129,16 @@
                 return staNos2;
             default:
                 throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
+        }
+    }
+    private ArrayList<Integer> getBarcodeList() {
+        switch (slave.getId()) {
+            case 1:
+                return BarcodeList1;
+            case 2:
+                return BarcodeList2;
+            default:
+                throw new CoolException("鑾峰彇绔欑偣澶辫触锛�");
         }
     }
 
@@ -198,6 +226,20 @@
         return result;
     }
 
+    public static int getOffsetFromSiteId(int siteId) {
+        if (siteId < 100 || siteId > 450) {
+            throw new IllegalArgumentException("siteId 瓒呭嚭鏈夋晥鑼冨洿: " + siteId);
+        }
+        return (siteId - 100) * 8;
+    }
+
+    public static int getOffsetFromSiteId2(int siteId) {
+        if (siteId < 100 || siteId > 450) {
+            throw new IllegalArgumentException("siteId 瓒呭嚭鏈夋晥鑼冨洿: " + siteId);
+        }
+        return (siteId - 100) * 6;
+    }
+
     /**
      * 璇诲彇鐘舵�� ====> 鏁村潡plc
      */
@@ -205,11 +247,12 @@
 //        // 鏇存柊鍏ュ嚭搴撴ā寮�
 //        updateIoMode();
         ArrayList<Integer> staNos = getStaNo();
+        ArrayList<Integer> staNosErrList = getStaNoErr();
         int staNoSize = staNos.size();
-        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
-        OperateResultExOne<byte[]> result200 = siemensS7Net.Read("DB101.800", (short) (staNoSize*8));
+        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (500 * 8));
+
         if (result.IsSuccess) {
-            for (int i = 0; i < staNoSize; i++) {
+            for(int i = 0 ; i<staNoSize;i++){
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
@@ -218,19 +261,13 @@
                     station.put(siteId, staProtocol);
                 }
                 boolean[] status = null;
-                if(i < 24){
-                    staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8));     // 宸ヤ綔鍙�
+                int offset = getOffsetFromSiteId(siteId);//鍙栦綑鑾峰緱瀵瑰簲db鍧楁暟鎹�
 
-                    staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4));   // 鐩爣绔�
+                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, offset));     // 宸ヤ綔鍙�
 
-                    status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
-                }else {
-                    staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result200.Content, (i-24)*8));     // 宸ヤ綔鍙�
+                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, offset+ 4));   // 鐩爣绔�
 
-                    staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result200.Content, (i-24)*8 + 4));   // 鐩爣绔�
-
-                    status = siemensS7Net.getByteTransform().TransBool(result200.Content, (i-24)*8 + 6, 2);
-                }
+                status = siemensS7Net.getByteTransform().TransBool(result.Content, offset+ 6, 2);
 
                 staProtocol.setAutoing(status[0]);  // 鑷姩
                 staProtocol.setLoading(status[1]);  // 鏈夌墿
@@ -247,113 +284,114 @@
             }
         }
 
-        //鏉$爜鎵弿鍣�
-        ArrayList<Integer> barcodeList = BarcodeList;
-        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1648", (short) (barcodeList.size() * 8));
-        if (result2.IsSuccess) {
-            for (int i = 0; i < barcodeList.size(); i++) {
-                Integer barcodeId = barcodeList.get(i);
-                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
-                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                    barcodeThread.setBarcode(barcode);
+            //鏉$爜鎵弿鍣�
+            ArrayList<Integer> barcodeList = getBarcodeList();
+            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.2848", (short) (barcodeList.size() * 8));
+            if (result2.IsSuccess) {
+                for (int i = 0; i < barcodeList.size(); i++) {
+                    Integer barcodeId = barcodeList.get(i);
+                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                        barcodeThread.setBarcode(barcode);
+                    }
                 }
             }
-        }
-        //澶栧舰妫�娴�
-        ArrayList<Integer> staNoErrs = staNosErrList;
-        int staNoErrsSize = staNoErrs.size();
-        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.1608", (short) (staNoErrsSize*8));
-        if (resultErr.IsSuccess){
-            for (int i = 0;i<2;i++){
-                Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1);
-                StaProtocol staProtocol = station.get(siteId);
-                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]);
-            }
-        }
-
-        //plc鏁呴殰
-        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.1728", (short) (staNoSize*4));
-        if (resultErr2.IsSuccess) {
-            for (int i = 0; i < staNoSize; i++) {
-                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4, 1);
-                StaProtocol staProtocol = station.get(siteId);
-                staProtocol.setBreakerErr(status[0]);
-                staProtocol.setInfraredErr(status[1]);
-                staProtocol.setOutTimeErr(status[2]);
-                staProtocol.setSeizeSeatErr(status[3]);
-                staProtocol.setWrkYgoodsN(status[4]);
-                staProtocol.setInverterErr(status[5]);
-                staProtocol.setContactErr(status[6]);
-                staProtocol.setUpcontactErr(status[7]);
-
-            }
-        }
-        OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
-        if (resultErr3.IsSuccess) {
-            if (staError1 == null){
-                staError1 = new StaError1();
-            }
-            boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
-            staError1.setEMERGENCY_Stop_Core(status[0]);
-            staError1.setEMERGENCY_STOP1(status[1]);
-            staError1.setEMERGENCY_STOP2(status[2]);
-            staError1.setEMERGENCY_STOP3(status[3]);
-            staError1.setEMERGENCY_STOP4(status[4]);
-
-            staError1.setDoor_EMERGENCY_STOP1(status[5]);
-            staError1.setDoor_EMERGENCY_STOP2(status[6]);
-            staError1.setDoor_EMERGENCY_STOP3(status[7]);
-            staError1.setDoor_EMERGENCY_STOP4(status[8]);
-            staError1.setDoor_EMERGENCY_STOP5(status[9]);
-            staError1.setDoor_EMERGENCY_STOP6(status[10]);
-
-            staError1.setDoor_Open_Err1(status[11]);
-            staError1.setDoor_Open_Err1(status[12]);
-            staError1.setDoor_Open_Err1(status[13]);
-            staError1.setDoor_Open_Err1(status[14]);
-            staError1.setDoor_Open_Err1(status[15]);
-            staError1.setDoor_Open_Err1(status[16]);
-
-        }
-
-
-        if (result.IsSuccess) {
-
-            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
-            // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-            try {
-                List<BasDevp> basDevps = new ArrayList<>();
-                for (Integer siteId : staNos) {
+            //澶栧舰妫�娴�
+            ArrayList<Integer> staNoErrs = staNosErrList;
+            int staNoErrsSize = staNoErrs.size();
+            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.2808", (short) (staNoErrsSize * 4));
+            if (resultErr.IsSuccess) {
+                for (int i = 0; i < staNoErrsSize; i++) {
+                    Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
+                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4 + 2, 1);
                     StaProtocol staProtocol = station.get(siteId);
-                    basDevps.add(staProtocol.toSqlModel());
+                    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]);
                 }
-                BasDevpService basDevpService = SpringContextUtil.getBean(BasDevpService.class);
-                //BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
-                if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
-                    throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
-                }
-            } catch (Exception e) {
-                initSite();
-                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()));
-                News.error("SiemensDevp"+" - 3"+" - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             }
 
-        } else {
-            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+//        //plc鏁呴殰
+//        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.1728", (short) (staNoSize*4));
+//        if (resultErr2.IsSuccess) {
+//            for (int i = 0; i < staNoSize; i++) {
+//                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+//                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4, 1);
+//                StaProtocol staProtocol = station.get(siteId);
+//                staProtocol.setBreakerErr(status[0]);
+//                staProtocol.setInfraredErr(status[1]);
+//                staProtocol.setOutTimeErr(status[2]);
+//                staProtocol.setSeizeSeatErr(status[3]);
+//                staProtocol.setWrkYgoodsN(status[4]);
+//                staProtocol.setInverterErr(status[5]);
+//                staProtocol.setContactErr(status[6]);
+//                staProtocol.setUpcontactErr(status[7]);
+//
+//            }
+//        }
+//        OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
+//        if (resultErr3.IsSuccess) {
+//            if (staError1 == null){
+//                staError1 = new StaError1();
+//            }
+//            boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
+//            staError1.setEMERGENCY_Stop_Core(status[0]);
+//            staError1.setEMERGENCY_STOP1(status[1]);
+//            staError1.setEMERGENCY_STOP2(status[2]);
+//            staError1.setEMERGENCY_STOP3(status[3]);
+//            staError1.setEMERGENCY_STOP4(status[4]);
+//
+//            staError1.setDoor_EMERGENCY_STOP1(status[5]);
+//            staError1.setDoor_EMERGENCY_STOP2(status[6]);
+//            staError1.setDoor_EMERGENCY_STOP3(status[7]);
+//            staError1.setDoor_EMERGENCY_STOP4(status[8]);
+//            staError1.setDoor_EMERGENCY_STOP5(status[9]);
+//            staError1.setDoor_EMERGENCY_STOP6(status[10]);
+//
+//            staError1.setDoor_Open_Err1(status[11]);
+//            staError1.setDoor_Open_Err1(status[12]);
+//            staError1.setDoor_Open_Err1(status[13]);
+//            staError1.setDoor_Open_Err1(status[14]);
+//            staError1.setDoor_Open_Err1(status[15]);
+//            staError1.setDoor_Open_Err1(status[16]);
+//
+//        }
+
+
+            if (result.IsSuccess) {
+
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
+
+                // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+                try {
+                    List<BasDevp> basDevps = new ArrayList<>();
+                    for (Integer siteId : staNos) {
+                        StaProtocol staProtocol = station.get(siteId);
+                        basDevps.add(staProtocol.toSqlModel());
+                    }
+                    BasDevpService basDevpService = SpringContextUtil.getBean(BasDevpService.class);
+                    //BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+                    if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+                        throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+                    }
+                } catch (Exception e) {
+                    initSite();
+                    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()));
+                    News.error("SiemensDevp" + " - 3" + " - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+                }
+
+            } else {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [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("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            }
         }
-    }
+
 
     /**
      * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
@@ -363,20 +401,17 @@
             return;
         }
         ArrayList<Integer> staNos = getStaNo();
-        int index = staNos.indexOf(staProtocol.getSiteId());
-
-        if(index >= 24){
-            index = 76 + index;
-        }
+//        int index = staNos.indexOf(staProtocol.getSiteId());
+        int offset = getOffsetFromSiteId2(staProtocol.getSiteId());//鍙栦綑鑾峰緱瀵瑰簲db鍧楁暟鎹�
 
         OperateResult write = null;
         OperateResult write1 = null;
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+            write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
             Thread.sleep(200);
-            write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
+            write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
             if(write.IsSuccess && write1.IsSuccess){
                 log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                 break;
@@ -394,21 +429,22 @@
             }
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
             News.error("SiemensDevp"+" - 4"+" - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
-        } else {
-            //dang 101,201zhan xaifazhiling qingchu tiaoxingsaomaolide shuju shanchu
-            if (staProtocol.getSiteId()==101){
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 1);
-                log.info("qingchutiaoma,{}",barcodeThread.getBarcode());
-                barcodeThread.clearBarcode();
-            }
-            if (staProtocol.getSiteId()==201){
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 2);
-                log.info("qingchutiaoma,{}",barcodeThread.getBarcode());
-                barcodeThread.clearBarcode();
-            }
-            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
-            News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  slave.getId(), JSON.toJSON(staProtocol));
         }
+//        else {
+//            //dang 101,201zhan xaifazhiling qingchu tiaoxingsaomaolide shuju shanchu
+//            if (staProtocol.getSiteId()==101){
+//                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 1);
+//                log.info("qingchutiaoma,{}",barcodeThread.getBarcode());
+//                barcodeThread.clearBarcode();
+//            }
+//            if (staProtocol.getSiteId()==201){
+//                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 2);
+//                log.info("qingchutiaoma,{}",barcodeThread.getBarcode());
+//                barcodeThread.clearBarcode();
+//            }
+//            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+//            News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  slave.getId(), JSON.toJSON(staProtocol));
+//        }
     }
 
     // 鏇存柊鍏ュ嚭搴撴ā寮�
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 399f756..3f8ad7c 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -38,7 +38,7 @@
   enable: false
 
 wms:
-  url: 127.0.0.1:8080/tzglwms
+  url: 127.0.0.1:8080/tzglasrs
 
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
@@ -72,14 +72,14 @@
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 121
       row: 1
-      bay: 1
+      bay: 121
       lev: 1
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[1]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 123
       row: 2
-      bay: 1
+      bay: 121
       lev: 1
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[1]:
@@ -94,70 +94,70 @@
       staNo: 203
       row: 2
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[3]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 223
       row: 2
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[2]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 201
       row: 1
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[3]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 221
       row: 1
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[4]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 223
       row: 2
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[5]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 203
       row: 2
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[6]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 401
       row: 1
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[4]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 401
       row: 1
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[7]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 411
       row: 1
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[5]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 411
       row: 1
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
   # 鍫嗗灈鏈�2
   crn[1]:
     id: 2
@@ -180,7 +180,7 @@
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 124
       row: 3
-      bay: 1
+      bay: 121
       lev: 1
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[1]:
@@ -188,56 +188,56 @@
       staNo: 205
       row: 3
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[2]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 225
       row: 3
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[1]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 205
       row: 3
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[2]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 225
       row: 3
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[3]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 402
       row: 3
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[3]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 402
       row: 3
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[4]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 412
       row: 3
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[4]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 412
       row: 3
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
   # 鍫嗗灈鏈�3
   crn[2]:
     id: 3
@@ -260,7 +260,7 @@
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 125
       row: 5
-      bay: 1
+      bay: 121
       lev: 1
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[1]:
@@ -268,84 +268,84 @@
       staNo: 206
       row: 5
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[1]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 226
       row: 5
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[2]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 226
       row: 5
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[2]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 206
       row: 5
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[3]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 208
       row: 6
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[3]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 208
       row: 6
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[4]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 228
       row: 6
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[4]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 228
       row: 6
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[5]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 403
       row: 5
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[5]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 403
       row: 5
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[6]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 413
       row: 5
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[6]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 413
       row: 5
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
   # 鍫嗗灈鏈�4
   crn[3]:
     id: 4
@@ -368,7 +368,7 @@
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 126
       row: 7
-      bay: 1
+      bay: 121
       lev: 1
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[1]:
@@ -376,84 +376,84 @@
       staNo: 209
       row: 7
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[1]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 209
       row: 7
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[2]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 229
       row: 7
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[2]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 229
       row: 7
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[3]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 211
       row: 8
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[3]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 211
       row: 8
       bay: 1
-      lev: 1
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[4]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 231
       row: 8
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[4]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 231
       row: 8
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 2
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[5]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 403
       row: 7
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[5]:
       devpPlcId: ${wcs-slave.devp[1].id}
       staNo: 403
       row: 7
       bay: 1
-      lev: 1
+      lev: 4
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[6]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 414
       row: 7
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[6]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 414
       row: 7
-      bay: 1
-      lev: 1
+      bay: 121
+      lev: 4
   # 涓滄ゼplc
   devp[0]:
     id: 1
@@ -799,98 +799,98 @@
     ip: 10.10.10.51
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 121
   # LED2
   led[1]:
     id: 2
     ip: 10.10.10.52
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 200
+    staArr: 122
   led[2]:
     id: 3
     ip: 10.10.10.53
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 124
   led[3]:
     id: 4
     ip: 10.10.10.54
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 125
   led[4]:
     id: 5
     ip: 10.10.10.55
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 126
   led[5]:
     id: 6
     ip: 10.10.10.56
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 221
   led[6]:
     id: 7
     ip: 10.10.10.57
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 222
   led[7]:
     id: 8
     ip: 10.10.10.58
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 224
   led[8]:
     id: 9
     ip: 10.10.10.59
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 226
   led[9]:
     id: 10
     ip: 10.10.10.60
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 227
   led[10]:
     id: 11
     ip: 10.10.10.61
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 229
   led[11]:
     id: 12
     ip: 10.10.10.62
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 230
   led[12]:
     id: 13
     ip: 10.10.10.63
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 411
   led[13]:
     id: 14
     ip: 10.10.10.64
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 412
   led[14]:
     id: 15
     ip: 10.10.10.65
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 413
   led[15]:
     id: 16
     ip: 10.10.10.66
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 101
+    staArr: 414
   led[16]:
     id: 17
     ip: 10.10.10.67
@@ -902,92 +902,89 @@
     ip: 10.10.10.68
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 103
   led[18]:
     id: 19
     ip: 10.10.10.69
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 104
   led[19]:
     id: 20
     ip: 10.10.10.70
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 106
   led[20]:
     id: 21
     ip: 10.10.10.71
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 108
   led[21]:
     id: 22
     ip: 10.10.10.72
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 201
   led[22]:
     id: 23
     ip: 10.10.10.73
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 202
   led[23]:
     id: 24
     ip: 10.10.10.74
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 204
   led[24]:
     id: 25
     ip: 10.10.10.75
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 206
   led[25]:
     id: 26
     ip: 10.10.10.76
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 207
   led[26]:
     id: 27
     ip: 10.10.10.77
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 209
   led[27]:
     id: 28
     ip: 10.10.10.78
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 210
   led[28]:
     id: 29
     ip: 10.10.10.79
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 401
   led[29]:
     id: 30
     ip: 10.10.10.80
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 402
   led[30]:
     id: 31
     ip: 10.10.10.81
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
+    staArr: 403
   led[31]:
     id: 32
     ip: 10.10.10.82
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 101
-
-
-
+    staArr: 404
 
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 2dcc629..5ec188b 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -595,7 +595,7 @@
                         // crns[i].bay = 15;
 
                         var offSet = 0;
-                        unit = 15;
+                        unit = 13;
                         offSet = 140;
 
 

--
Gitblit v1.9.1