pang.jiabao
2026-04-14 e0865876435877f8f53d62a4a93c71cb1ac004db
纽维盛wcs初始化
7个文件已修改
1795 ■■■■ 已修改文件
pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/ServerBootstrap.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 446 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/console.js 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/console.map.js 1220 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -185,7 +185,7 @@
    </dependencies>
    <build>
        <finalName>jsjwcs</finalName>
        <finalName>nwswcs</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
src/main/java/com/zy/core/ServerBootstrap.java
@@ -6,11 +6,9 @@
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.LedSlave;
import com.zy.core.model.RgvSlave;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.LedThread;
import com.zy.core.thread.SiemensCrnThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.core.thread.*;
import com.zy.utils.News;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -94,12 +92,12 @@
            SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
        }
        // 初始化穿梭车线程
//        log.info("初始化RGV线程...................................................");
//        for (RgvSlave rgv : slaveProperties.getRgv()) {
//            RgvThread rgvThread = new RgvThread(rgv);
//            new Thread((Runnable) rgvThread).start();
//            SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
//        }
        log.info("初始化RGV线程...................................................");
        for (RgvSlave rgv : slaveProperties.getRgv()) {
            RgvThread rgvThread = new RgvThread(rgv);
            new Thread((Runnable) rgvThread).start();
            SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
        }
        // 初始化输送线线程
        News.info("初始化输送线线程...................................................");
        for (DevpSlave devp : slaveProperties.getDevp()) {
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -25,10 +25,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;
/**
@@ -44,21 +41,54 @@
    private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
    private short heartBeatVal = 1;
    private StaError1 staError1;
    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
        add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);
    }};
    public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
        add(1); add(2);
    // 站点
    public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
        for(int i = 1 ;i <= 20; i ++) {add(1100+i);}
    }};
    public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
        add(104); add(106);
    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
        for(int i = 1 ;i <= 20; i ++) {add(1200+i);}
    }};
    public static final ArrayList<Integer> staNos3 = new ArrayList<Integer>() {{
        for(int i = 1 ;i <= 20; i ++) {add(1300+i);}
    }};
    public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{
        for(int i = 1 ;i <= 20; i ++) {add(1400+i);}
    }};
    private ArrayList<Integer> getStaNo() {
        switch (this.slave.getId()) {
            case 1: return staNos1;
            case 2: return staNos2;
            case 3: return staNos3;
            case 4: return staNos4;
            default:
        }
        return new ArrayList<>();
    }
    /**
     * 条码数量
     */
    private int barcodeSize = 2;
    // 条码扫描器
    public static final ArrayList<Integer> barcodeList1 = new ArrayList<Integer>(){{
        add(1);add(2);
    }};
    public static final ArrayList<Integer> barcodeList2 = new ArrayList<Integer>(){{
        add(3);
    }};
    public static final ArrayList<Integer> barcodeList3 = new ArrayList<Integer>(){{
        add(4);
    }};
    public static final ArrayList<Integer> barcodeList4 = new ArrayList<Integer>(){{
        add(5);add(6);
    }};
    private ArrayList<Integer> getBarcodeList() {
        switch (this.slave.getId()) {
            case 1: return barcodeList1;
            case 2: return barcodeList2;
            case 3: return barcodeList3;
            case 4: return barcodeList4;
            default:
        }
        return new ArrayList<>();
    }
    /**
     * 入出库模式
@@ -72,10 +102,6 @@
    public SiemensDevpThread(DevpSlave slave) {
        this.slave = slave;
    }
    private ArrayList<Integer> getStaNo() {
        return staNos;
    }
    @Override
@@ -185,8 +211,8 @@
        // 站点信息
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (8*8));
        if (result.IsSuccess) {
            for (int i = 0; i < staNos.size(); i++) {
                Integer siteId = staNos.get(i); // 站点编号
            for (int i = 0; i < getStaNo().size(); i++) {
                Integer siteId = getStaNo().get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
                    staProtocol = new StaProtocol();
@@ -220,11 +246,11 @@
        }
        // 条码扫描器
        OperateResultExOne<byte[]> barcodeResult = siemensS7Net.Read("DB101.400", (short) (BarcodeList.size() * 10));
        OperateResultExOne<byte[]> barcodeResult = siemensS7Net.Read("DB101.400", (short) (getBarcodeList().size() * 10));
        if (barcodeResult.IsSuccess) {
            for (int i = 0; i < BarcodeList.size(); i++) {
            for (int i = 0; i < getBarcodeList().size(); i++) {
                String barcode = siemensS7Net.getByteTransform().TransString(barcodeResult.Content,i*10 + 2,8, "UTF-8");
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, BarcodeList.get(i));
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, getBarcodeList().get(i));
                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                    barcodeThread.setBarcode(barcode);
                }
@@ -232,11 +258,11 @@
        }
        // 外形检测
        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.430", (short) (staNosErrList.size() *4)); // 不连续,多读中间一个
        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.430", (short) (getStaNo().size() *4)); // 不连续,多读中间一个
        if (resultErr.IsSuccess){
            for (int i = 0;i<staNosErrList.size();i++){
            for (int i = 0;i<getStaNo().size();i++){
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1);
                StaProtocol staProtocol = station.get(staNosErrList.get(i));
                StaProtocol staProtocol = station.get(getStaNo().get(i));
                staProtocol.setFrontErr(status[0]);
                staProtocol.setBackErr(status[1]);
                staProtocol.setHighErr(status[2]);
@@ -251,11 +277,11 @@
        }
        // 故障信息反馈
        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.442", (short) (staNos.size() * 4));
        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.442", (short) (getStaNo().size() * 4));
        if (resultErr2.IsSuccess) {
            for (int i = 0; i < staNos.size(); i++) {
            for (int i = 0; i < getStaNo().size(); i++) {
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4 + 2, 1);
                StaProtocol staProtocol = station.get(staNos.get(i)); // 站点编号
                StaProtocol staProtocol = station.get(getStaNo().get(i)); // 站点编号
                staProtocol.setBreakerErr(status[0]);
                staProtocol.setInfraredErr(status[1]);
                staProtocol.setOutTimeErr(status[2]);
@@ -275,7 +301,7 @@
            // 根据实时信息更新数据库
            try {
                List<BasDevp> basDevps = new ArrayList<>();
                for (Integer siteId : staNos) {
                for (Integer siteId : getStaNo()) {
                    StaProtocol staProtocol = station.get(siteId);
                    basDevps.add(staProtocol.toSqlModel());
                }
@@ -305,7 +331,7 @@
            return;
        }
        int address = staNos.indexOf(staProtocol.getSiteId()) * 4;
        int address = getStaNo().indexOf(staProtocol.getSiteId()) * 4;
        OperateResult write;
        OperateResult write1;
src/main/resources/application.yml
@@ -8,7 +8,7 @@
    name: @pom.build.finalName@
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jsjasrs
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=nwswms
    username: sa
    password: sa@123
  mvc:
@@ -34,14 +34,14 @@
  enable: false
wms:
  url: 127.0.0.1:8080/jsjwms
  url: 127.0.0.1:8080/nwswms
# 下位机配置
wcs-slave:
  # 双深
  doubleDeep: true
  # 双深库位排号
  doubleLocs: 1,4,5,8
  doubleLocs: 1,4,5,8,9,12
  # 一个堆垛机负责的货架排数
  groupCount: 4
@@ -58,17 +58,53 @@
    # 堆垛机入库站点
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 104
      staNo: 1119
      row: 3
      bay: 1
      lev: 1
    crnInStn[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 1219
      row: 3
      bay: 1
      lev: 4
    crnInStn[2]:
      devpPlcId: ${wcs-slave.devp[2].id}
      staNo: 1319
      row: 3
      bay: 1
      lev: 6
    crnInStn[3]:
      devpPlcId: ${wcs-slave.devp[3].id}
      staNo: 1419
      row: 3
      bay: 1
      lev: 8
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 102
      staNo: 1120
      row: 2
      bay: 1
      lev: 1
    crnOutStn[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 1220
      row: 2
      bay: 1
      lev: 4
    crnOutStn[2]:
      devpPlcId: ${wcs-slave.devp[2].id}
      staNo: 1320
      row: 2
      bay: 1
      lev: 6
    crnOutStn[3]:
      devpPlcId: ${wcs-slave.devp[3].id}
      staNo: 1420
      row: 2
      bay: 1
      lev: 8
  # 堆垛机2
  crn[1]:
    id: 2
@@ -82,18 +118,113 @@
    # 堆垛机入库站点
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 106
      row: 6
      bay: 1
      lev: 1
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 108
      staNo: 1117
      row: 7
      bay: 1
      lev: 1
    crnInStn[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 1217
      row: 7
      bay: 1
      lev: 4
    crnInStn[2]:
      devpPlcId: ${wcs-slave.devp[2].id}
      staNo: 1317
      row: 7
      bay: 1
      lev: 6
    crnInStn[3]:
      devpPlcId: ${wcs-slave.devp[3].id}
      staNo: 1417
      row: 7
      bay: 1
      lev: 8
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 1118
      row: 6
      bay: 1
      lev: 1
    crnOutStn[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 1218
      row: 6
      bay: 1
      lev: 4
    crnOutStn[2]:
      devpPlcId: ${wcs-slave.devp[2].id}
      staNo: 1318
      row: 6
      bay: 1
      lev: 6
    crnOutStn[3]:
      devpPlcId: ${wcs-slave.devp[3].id}
      staNo: 1418
      row: 6
      bay: 1
      lev: 8
  # 堆垛机3
  crn[2]:
    id: 3
    ip: 192.168.5.20
    port: 102
    rack: 0
    slot: 0
    # 偏移量,当堆垛机站点列号=1时,偏移量=2
    offset: 2
    demo: false
    # 堆垛机入库站点
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 1106
      row: 11
      bay: 4
      lev: 1
    crnInStn[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 1212
      row: 11
      bay: 4
      lev: 4
    crnInStn[2]:
      devpPlcId: ${wcs-slave.devp[2].id}
      staNo: 1312
      row: 11
      bay: 4
      lev: 6
    crnInStn[3]:
      devpPlcId: ${wcs-slave.devp[3].id}
      staNo: 1416
      row: 10
      bay: 1
      lev: 8
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 1105
      row: 11
      bay: 2
      lev: 1
    crnOutStn[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 1216
      row: 10
      bay: 1
      lev: 4
    crnOutStn[2]:
      devpPlcId: ${wcs-slave.devp[2].id}
      staNo: 1316
      row: 10
      bay: 1
      lev: 6
    crnOutStn[3]:
      devpPlcId: ${wcs-slave.devp[3].id}
      staNo: 1412
      row: 11
      bay: 4
      lev: 8
  # 输送线1
  devp[0]:
    id: 1
@@ -103,48 +234,193 @@
    slot: 0
    # 入库口1
    inSta[0]:
      staNo: 104
      staNo: 1109
      barcode: ${wcs-slave.barcode[0].id}
      backSta: 103
      backSta: 1108
      led: ${wcs-slave.led[1].id}
    # 入库口2
    inSta[1]:
      staNo: 106
      staNo: 1112
      barcode: ${wcs-slave.barcode[1].id}
      backSta: 105
      backSta: 1111
      led: ${wcs-slave.led[2].id}
    # 空板入库口1
    emptyInSta[0]:
      staNo: 104
      staNo: 1109
      barcode: ${wcs-slave.barcode[0].id}
      backSta: 103
      backSta: 1108
      led: ${wcs-slave.led[1].id}
    # 空板入库口2
    emptyInSta[1]:
      staNo: 106
      staNo: 1112
      barcode: ${wcs-slave.barcode[1].id}
      backSta: 105
      backSta: 1111
      led: ${wcs-slave.led[2].id}
    # 拣料入库口1
    pickSta[0]:
      staNo: 104
      staNo: 1109
      barcode: ${wcs-slave.barcode[0].id}
      backSta: 103
      backSta: 1108
      led: ${wcs-slave.led[1].id}
    # 拣料入库口2
    pickSta[1]:
      staNo: 106
      staNo: 1112
      barcode: ${wcs-slave.barcode[1].id}
      backSta: 105
      backSta: 1111
      led: ${wcs-slave.led[2].id}
    # 出库口1
    outSta[0]:
      staNo: 101
      staNo: 1101
      led: ${wcs-slave.led[0].id}
  # 输送线2
  devp[1]:
    id: 2
    ip: 192.168.5.40
    port: 102
    rack: 0
    slot: 0
    # 入库口1
    inSta[0]:
      staNo: 1209
      barcode: ${wcs-slave.barcode[2].id}
      backSta: 1208
      led: ${wcs-slave.led[5].id}
#    # 入库口2
#    inSta[1]:
#      staNo: 1112
#      barcode: ${wcs-slave.barcode[1].id}
#      backSta: 1111
#      led: ${wcs-slave.led[1].id}
    # 空板入库口1
    emptyInSta[0]:
      staNo: 1209
      barcode: ${wcs-slave.barcode[2].id}
      backSta: 1208
      led: ${wcs-slave.led[5].id}
#    # 空板入库口2
#    emptyInSta[1]:
#      staNo: 1112
#      barcode: ${wcs-slave.barcode[1].id}
#      backSta: 1111
#      led: ${wcs-slave.led[1].id}
    # 拣料入库口1
    pickSta[0]:
      staNo: 1209
      barcode: ${wcs-slave.barcode[2].id}
      backSta: 1208
      led: ${wcs-slave.led[5].id}
#    # 拣料入库口2
#    pickSta[1]:
#      staNo: 1112
#      barcode: ${wcs-slave.barcode[1].id}
#      backSta: 1111
#      led: ${wcs-slave.led[1].id}
    # 出库口1
    outSta[0]:
      staNo: 1206
      led: ${wcs-slave.led[4].id}
    # 出库口2
    outSta[1]:
      staNo: 107
      staNo: 1201
      led: ${wcs-slave.led[3].id}
  # 输送线3
  devp[2]:
    id: 3
    ip: 192.168.5.40
    port: 102
    rack: 0
    slot: 0
    # 入库口1
    inSta[0]:
      staNo: 1309
      barcode: ${wcs-slave.barcode[3].id}
      backSta: 1308
      led: ${wcs-slave.led[8].id}
    #    # 入库口2
    #    inSta[1]:
    #      staNo: 1112
    #      barcode: ${wcs-slave.barcode[1].id}
    #      backSta: 1111
    #      led: ${wcs-slave.led[1].id}
    # 空板入库口1
    emptyInSta[0]:
      staNo: 1309
      barcode: ${wcs-slave.barcode[3].id}
      backSta: 1308
      led: ${wcs-slave.led[8].id}
    #    # 空板入库口2
    #    emptyInSta[1]:
    #      staNo: 1112
    #      barcode: ${wcs-slave.barcode[1].id}
    #      backSta: 1111
    #      led: ${wcs-slave.led[1].id}
    # 拣料入库口1
    pickSta[0]:
      staNo: 1309
      barcode: ${wcs-slave.barcode[3].id}
      backSta: 1308
      led: ${wcs-slave.led[8].id}
    #    # 拣料入库口2
    #    pickSta[1]:
    #      staNo: 1112
    #      barcode: ${wcs-slave.barcode[1].id}
    #      backSta: 1111
    #      led: ${wcs-slave.led[1].id}
    # 出库口1
    outSta[0]:
      staNo: 1306
      led: ${wcs-slave.led[7].id}
    # 出库口2
    outSta[1]:
      staNo: 1301
      led: ${wcs-slave.led[6].id}
  # 输送线4
  devp[3]:
    id: 4
    ip: 192.168.5.40
    port: 102
    rack: 0
    slot: 0
    # 入库口1
    inSta[0]:
      staNo: 1402
      barcode: ${wcs-slave.barcode[4].id}
      backSta: 1401
      led: ${wcs-slave.led[9].id}
    # 入库口2
    inSta[1]:
      staNo: 1407
      barcode: ${wcs-slave.barcode[5].id}
      backSta: 1406
      led: ${wcs-slave.led[10].id}
    # 空板入库口1
    emptyInSta[0]:
      staNo: 1402
      barcode: ${wcs-slave.barcode[4].id}
      backSta: 1401
      led: ${wcs-slave.led[9].id}
    # 空板入库口2
    emptyInSta[1]:
      staNo: 1407
      barcode: ${wcs-slave.barcode[5].id}
      backSta: 1406
      led: ${wcs-slave.led[10].id}
    # 拣料入库口1
    pickSta[0]:
      staNo: 1402
      barcode: ${wcs-slave.barcode[4].id}
      backSta: 1401
      led: ${wcs-slave.led[9].id}
    # 拣料入库口2
    pickSta[1]:
      staNo: 1407
      barcode: ${wcs-slave.barcode[5].id}
      backSta: 1406
      led: ${wcs-slave.led[10].id}
    # 出库口1
    outSta[0]:
      staNo: 1408
      led: ${wcs-slave.led[11].id}
  # 条码扫描仪1
  barcode[0]:
@@ -156,6 +432,26 @@
    id: 2
    ip: 192.168.5.43
    port: 51236
  # 条码扫描仪3
  barcode[2]:
    id: 3
    ip: 192.168.5.42
    port: 51236
  # 条码扫描仪4
  barcode[3]:
    id: 4
    ip: 192.168.5.43
    port: 51236
  # 条码扫描仪5
  barcode[4]:
    id: 5
    ip: 192.168.5.42
    port: 51236
  # 条码扫描仪6
  barcode[5]:
    id: 6
    ip: 192.168.5.43
    port: 51236
  # LED1
  led[0]:
@@ -163,7 +459,7 @@
    ip: 192.168.5.104
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 101
    staArr: 1101
    crnId: 1
  # LED2
  led[1]:
@@ -171,7 +467,7 @@
    ip: 192.168.5.105
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 104
    staArr: 1109
    crnId: 1
  # LED3
  led[2]:
@@ -179,13 +475,93 @@
    ip: 192.168.5.106
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 106
    crnId: 2
    staArr: 1112
    crnId: 1
  # LED4
  led[3]:
    id: 4
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 107
    crnId: 2
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 1201
    crnId: 1
  # LED5
  led[4]:
    id: 5
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 1206
    crnId: 1
  # LED6
  led[5]:
    id: 6
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 1209
    crnId: 1
  # LED7
  led[6]:
    id: 7
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[2].id}
    staArr: 1301
    crnId: 1
  # LED8
  led[7]:
    id: 8
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[2].id}
    staArr: 1306
    crnId: 1
  # LED9
  led[8]:
    id: 9
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[2].id}
    staArr: 1309
    crnId: 1
  # LED10
  led[9]:
    id: 10
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[3].id}
    staArr: 1402
    crnId: 1
  # LED11
  led[10]:
    id: 11
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[3].id}
    staArr: 1407
    crnId: 1
  # LED12
  led[11]:
    id: 12
    ip: 192.168.5.107
    port: 5005
    devpPlcId: ${wcs-slave.devp[3].id}
    staArr: 1408
    crnId: 1
  rgv[0]:
    id: 1
    ip: 192.168.5.20
    port: 102
  rgv[1]:
    id: 2
    ip: 192.168.5.20
    port: 102
  rgv[2]:
    id: 3
    ip: 192.168.5.20
    port: 102
  rgv[3]:
    id: 4
    ip: 192.168.5.20
    port: 102
src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
var baseUrl = "/jsjwcs";
var baseUrl = "/nwswcs";
// 赋值
function setVal(el, val) {
src/main/webapp/static/js/console.js
@@ -29,14 +29,27 @@
        let minBayNo = rackss[i].minBayNo // 最小库位号
        let bLen
        let interval // 间隔数
        if (maxBayNo<35) {
        if (maxBayNo<=35) {
            interval = 1
            bLen = maxBayNo / interval // 库位个数
        } else {
            interval = 2
            bLen = maxBayNo / interval // 库位个数
        }
        if (minBayNo === 5) {
            // interval=1 时:修正长度(关键)
            if (interval === 1) {
                bLen = maxBayNo - minBayNo + 1
            }
            // interval=2 时:保证奇偶一致(防止错位)
            if (interval === 2) {
                if (maxBayNo % 2 !== minBayNo % 2) {
                    maxBayNo = maxBayNo - 1
                }
                bLen = Math.floor((maxBayNo - minBayNo) / interval) + 1
            }
        }
        let bayWidth // 单个库位宽度
        let bNum // 库位号码
src/main/webapp/static/js/console.map.js
@@ -1,257 +1,250 @@
mapInfo = {
    "mapName": "WCS",
    "rackCount": 8,
    "crnCount": 2,
    "crnCount": 3,
    "stbCount": 18,
    "hpPosition": 0,
    "hpPosition": 1,
    "minBayNo": 1,
    "floors": 1,
    "floors": 4,
    "racks": [
    {
        "type": "rack",
        "id": "rack1",
        "top": 189,
        "left": 400,
        "width": 1350,
        "height": 23,
        "top": 150,
        "left": 180,
        "width": 1400,
        "height": 20,
        "minBayNo": 1,
        "maxBayNo": 27
        "maxBayNo": 35
    },
    {
        "type": "rack",
        "id": "rack8",
        "top": 457,
        "left": 400,
        "width": 1350,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 27
    },
    {
        "type": "rack",
        "id": "rack7",
        "top": 430,
        "left": 400,
        "width": 1350,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 27
    },
    {
        "type": "rack",
        "id": "rack6",
        "top": 365,
        "left": 400,
        "width": 1350,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 27
    },
    {
        "type": "rack",
        "id": "rack5",
        "top": 338,
        "left": 400,
        "width": 1350,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 27
    },
    {
        "type": "rack",
        "id": "rack4",
        "top": 311,
        "left": 400,
        "width": 1350,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 27
    },
    {
        "type": "rack",
        "id": "rack3",
        "top": 283,
        "left": 400,
        "width": 1350,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 27
    },
    {
        "type": "rack",
        "id": "rack2",
        "top": 217,
        "left": 400,
        "width": 1350,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 27
    },
    {
        "type": "rack",
        "id": "rack9",
        "top": 500,
        "left": 300,
        "width": 1500,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 32
    },
    {
        "type": "rack",
        "id": "rack10",
        "top": 570,
        "left": 300,
        "width": 656,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 14
    },
    {
        "type": "rack",
        "id": "rack11",
        "top": 570,
        "left": 1143,
        "width": 656,
        "height": 23,
        "minBayNo": 19,
        "maxBayNo": 14
    }
        {
            "type": "rack",
            "id": "rack1",
            "top": 170,
            "left": 180,
            "width": 1360,
            "height": 20,
            "minBayNo": 2,
            "maxBayNo": 35
        },
        {
            "type": "rack",
            "id": "rack1",
            "top": 220,
            "left": 180,
            "width": 1360,
            "height": 20,
            "minBayNo": 2,
            "maxBayNo": 35
        }
        ,{
            "type": "rack",
            "id": "rack1",
            "top": 240,
            "left": 180,
            "width": 1400,
            "height": 20,
            "minBayNo": 1,
            "maxBayNo": 35
        }
        ,{
            "type": "rack",
            "id": "rack1",
            "top": 260,
            "left": 180,
            "width": 1400,
            "height": 20,
            "minBayNo": 1,
            "maxBayNo": 35
        }
        ,        {
            "type": "rack",
            "id": "rack1",
            "top": 280,
            "left": 180,
            "width": 1360,
            "height": 20,
            "minBayNo": 2,
            "maxBayNo": 35
        }
        ,        {
            "type": "rack",
            "id": "rack1",
            "top": 330,
            "left": 260,
            "width": 1280,
            "height": 20,
            "minBayNo": 2,
            "maxBayNo": 33
        }
        ,        {
            "type": "rack",
            "id": "rack1",
            "top": 350,
            "left": 260,
            "width": 1320,
            "height": 20,
            "minBayNo": 1,
            "maxBayNo": 33
        }
        ,        {
            "type": "rack",
            "id": "rack1",
            "top": 370,
            "left": 300,
            "width": 1280,
            "height": 20,
            "minBayNo": 1,
            "maxBayNo": 32
        }
        ,        {
            "type": "rack",
            "id": "rack1",
            "top": 390,
            "left": 300,
            "width": 1240,
            "height": 20,
            "minBayNo": 2,
            "maxBayNo": 32
        }
        ,        {
            "type": "rack",
            "id": "rack11",
            "top": 440,
            "left": 300,
            "width": 1125,
            "height": 20,
            "minBayNo": 5,
            "maxBayNo": 32
        }
        ,        {
            "type": "rack",
            "id": "rack11",
            "top": 460,
            "left": 300,
            "width": 1125,
            "height": 20,
            "minBayNo": 5,
            "maxBayNo": 32
        }
],
    "rackDescs": [
        {
            "type": "rackDescs",
            "id": "lb_desc14",
            "text": "》》》入库",
            "top": 339,
            "left": 303,
            "width": 100,
            "height": 23
        },
        {
            "type": "rackDescs",
            "id": "lb_desc13",
            "text": "》》》入库",
            "top": 312,
            "left": 303,
            "width": 100,
            "height": 23
        },
        {
            "type": "rackDescs",
            "id": "lb_desc12",
            "text": "《《《 出库",
            "top": 459,
            "left": 303,
            "width": 100,
            "height": 23
        },
        {
            "type": "rackDescs",
            "id": "lb_desc11",
            "text": "《《《 出库",
            "top": 190,
            "left": 303,
            "width": 100,
            "height": 23
        },
        {
            "type": "rackDescs",
            "id": "lb_desc10",
            "text": "#10",
            "top": 570,
            "left": 1800,
            "width": 33,
            "height": 23
        },
        {
            "type": "rackDescs",
            "id": "lb_desc9",
            "text": "#9",
            "top": 500,
            "left": 1800,
            "width": 33,
            "height": 23
        },
    {
        "type": "rackDescs",
        "id": "lb_desc8",
        "text": "#8",
        "top": 460,
        "left": 1750,
        "width": 33,
        "height": 23
    },
    {
        "type": "rackDescs",
        "id": "lb_desc7",
        "text": "#7",
        "top": 430,
        "left": 1750,
        "width": 33,
        "height": 23
    },
    {
        "type": "rackDescs",
        "id": "lb_desc6",
        "text": "#6",
        "top": 370,
        "left": 1750,
        "width": 33,
        "height": 23
    },
    {
        "type": "rackDescs",
        "id": "lb_desc5",
        "text": "#5",
        "top": 340,
        "left": 1750,
        "width": 33,
        "height": 23
    },
    {
        "type": "rackDescs",
        "id": "lb_desc4",
        "text": "#4",
        "top": 310,
        "left": 1750,
        "width": 33,
        "height": 23
    },
    {
        "type": "rackDescs",
        "id": "lb_desc3",
        "text": "#3",
        "top": 280,
        "left": 1750,
        "width": 33,
        "height": 23
    },
    {
        "type": "rackDescs",
        "id": "lb_desc2",
        "text": "#2",
        "top": 218,
        "left": 1750,
        "width": 33,
        "height": 23
    },
    {
        "type": "rackDescs",
        "id": "lb_desc1",
        "text": "#1",
        "top": 190,
        "left": 1750,
        "top": 150,
        "left": 145,
        "width": 33,
        "height": 23
    }
    ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#2",
            "top": 170,
            "left": 145,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#3",
            "top": 220,
            "left": 145,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#4",
            "top": 240,
            "left": 145,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#5",
            "top": 260,
            "left": 145,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#6",
            "top": 280,
            "left": 145,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#7",
            "top": 330,
            "left": 225,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#8",
            "top": 350,
            "left": 225,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#9",
            "top": 370,
            "left": 261,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#10",
            "top": 390,
            "left": 265,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#11",
            "top": 440,
            "left": 265,
            "width": 33,
            "height": 23
        }
        ,{
            "type": "rackDescs",
            "id": "lb_desc1",
            "text": "#12",
            "top": 460,
            "left": 265,
            "width": 33,
            "height": 23
        }
],
    "crns": [
    {
        "type": "crane",
        "id": "crn-1",
        "text": "1",
        "top": 250,
        "top": 190,
        "left": 350,
        "width": 101,
        "height": 32
@@ -260,16 +253,16 @@
        "type": "track",
        "id": "lb_track3",
        "text": "",
        "top": 265,
        "left": 400,
        "width": 1350,
        "top": 208,
        "left": 180,
        "width": 1400,
        "height": 1
    },
    {
        "type": "crane",
        "id": "crn-2",
        "text": "2",
        "top": 393,
        "top": 302,
        "left": 350,
        "width": 101,
        "height": 29
@@ -278,11 +271,30 @@
        "type": "track",
        "id": "lb_track4",
        "text": "",
        "top": 408,
        "left": 400,
        "width": 1350,
        "top": 318,
        "left": 180,
        "width": 1400,
        "height": 1
    }
        ,
        {
            "type": "crane",
            "id": "crn-3",
            "text": "3",
            "top": 414,
            "left": 350,
            "width": 101,
            "height": 29
        },
        {
            "type": "track",
            "id": "lb_track5",
            "text": "",
            "top": 430,
            "left": 300,
            "width": 1280,
            "height": 1
        }
],
    "areas": [
    {
@@ -305,74 +317,710 @@
                "stns": [
                    {
                        "type": "stn",
                        "id": "site-101",
                        "text": "101",
                        "top": 218,
                        "left": 260,
                        "width": 65,
                        "id": "site-1120",
                        "text": "1120",
                        "top": 170,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    },
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1119",
                        "text": "1119",
                        "top": 220,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1118",
                        "text": "1118",
                        "top": 280,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1117",
                        "text": "1117",
                        "top": 330,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1107",
                        "text": "1107",
                        "top": 442,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1106",
                        "text": "1106",
                        "top": 442,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1105",
                        "text": "1105",
                        "top": 442,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1114",
                        "text": "1114",
                        "top": 442,
                        "left": 1578,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1",
                        "text": "1",
                        "top": 442,
                        "left": 1629,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1113",
                        "text": "1113",
                        "top": 465,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1110",
                        "text": "1110",
                        "top": 465,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1103",
                        "text": "1103",
                        "top": 465,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1112",
                        "text": "1112",
                        "top": 488,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1109",
                        "text": "1109",
                        "top": 488,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1102",
                        "text": "1102",
                        "top": 488,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1111",
                        "text": "1111",
                        "top": 511,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1108",
                        "text": "1108",
                        "top": 511,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1101",
                        "text": "1101",
                        "top": 511,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                ]
            }
            ,{
                "type": "floor",
                "id": "page_floor2",
                "text": "2F",
                "top": 4,
                "left": 22,
                "width": 1677,
                "height": 613,
                "stns": [
                    {
                        "type": "stn",
                        "id": "site-102",
                        "text": "102",
                        "top": 218,
                        "left": 330,
                        "width": 68,
                        "id": "site-1220",
                        "text": "1220",
                        "top": 170,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    },
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1219",
                        "text": "1219",
                        "top": 220,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1218",
                        "text": "1218",
                        "top": 280,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1217",
                        "text": "1217",
                        "top": 330,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1216",
                        "text": "1216",
                        "top": 392,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1212",
                        "text": "1212",
                        "top": 442,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1211",
                        "text": "1211",
                        "top": 442,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1213",
                        "text": "1213",
                        "top": 442,
                        "left": 1527,
                        "width": 101,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-2",
                        "text": "2",
                        "top": 442,
                        "left": 1629,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1210",
                        "text": "1210",
                        "top": 465,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1205",
                        "text": "1205",
                        "top": 465,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1204",
                        "text": "1204",
                        "top": 465,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1203",
                        "text": "1203",
                        "top": 465,
                        "left": 1578,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1209",
                        "text": "1209",
                        "top": 488,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1207",
                        "text": "1207",
                        "top": 488,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1202",
                        "text": "1202",
                        "top": 488,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1208",
                        "text": "1208",
                        "top": 511,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1206",
                        "text": "1206",
                        "top": 511,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1201",
                        "text": "1201",
                        "top": 511,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                ]
            }
            ,{
                "type": "floor",
                "id": "page_floor3",
                "text": "3F",
                "top": 4,
                "left": 22,
                "width": 1677,
                "height": 613,
                "stns": [
                    {
                        "type": "stn",
                        "id": "site-103",
                        "text": "103",
                        "top": 284,
                        "left": 260,
                        "width": 65,
                        "id": "site-1320",
                        "text": "1320",
                        "top": 170,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    },
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1319",
                        "text": "1319",
                        "top": 220,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1318",
                        "text": "1318",
                        "top": 280,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1317",
                        "text": "1317",
                        "top": 330,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1316",
                        "text": "1316",
                        "top": 392,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1312",
                        "text": "1312",
                        "top": 442,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1311",
                        "text": "1311",
                        "top": 442,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1313",
                        "text": "1313",
                        "top": 442,
                        "left": 1527,
                        "width": 101,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-3",
                        "text": "3",
                        "top": 442,
                        "left": 1629,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1310",
                        "text": "1310",
                        "top": 465,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1305",
                        "text": "1305",
                        "top": 465,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1304",
                        "text": "1304",
                        "top": 465,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1303",
                        "text": "1303",
                        "top": 465,
                        "left": 1578,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1309",
                        "text": "1309",
                        "top": 488,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1307",
                        "text": "1307",
                        "top": 488,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1302",
                        "text": "1302",
                        "top": 488,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1308",
                        "text": "1308",
                        "top": 511,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1306",
                        "text": "1306",
                        "top": 511,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1301",
                        "text": "1301",
                        "top": 511,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                ]
            }
            ,{
                "type": "floor",
                "id": "page_floor4",
                "text": "4F",
                "top": 4,
                "left": 22,
                "width": 1677,
                "height": 613,
                "stns": [
                    {
                        "type": "stn",
                        "id": "site-104",
                        "text": "104",
                        "top": 284,
                        "left": 330,
                        "width": 68,
                        "id": "site-1420",
                        "text": "1420",
                        "top": 170,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    },
                    {
                    }
                    ,{
                        "type": "stn",
                        "id": "site-105",
                        "text": "105",
                        "top": 367,
                        "left": 260,
                        "width": 65,
                        "id": "site-1419",
                        "text": "1419",
                        "top": 220,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    },
                    {
                    }
                    ,{
                        "type": "stn",
                        "id": "site-106",
                        "text": "106",
                        "top": 367,
                        "left": 330,
                        "width": 68,
                        "id": "site-1418",
                        "text": "1418",
                        "top": 280,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    },
                    {
                    }
                    ,{
                        "type": "stn",
                        "id": "site-107",
                        "text": "107",
                        "top": 431,
                        "left": 260,
                        "width": 65,
                        "id": "site-1417",
                        "text": "1417",
                        "top": 330,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    },
                    {
                    }
                    ,{
                        "type": "stn",
                        "id": "site-108",
                        "text": "108",
                        "top": 431,
                        "left": 330,
                        "width": 68,
                        "id": "site-1416",
                        "text": "1416",
                        "top": 392,
                        "left": 1542,
                        "width": 83,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1412",
                        "text": "1412",
                        "top": 442,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1411",
                        "text": "1411",
                        "top": 442,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1413",
                        "text": "1413",
                        "top": 442,
                        "left": 1527,
                        "width": 101,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-4",
                        "text": "4",
                        "top": 442,
                        "left": 1629,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1410",
                        "text": "1410",
                        "top": 465,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1405",
                        "text": "1405",
                        "top": 465,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1404",
                        "text": "1404",
                        "top": 465,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1403",
                        "text": "1403",
                        "top": 465,
                        "left": 1578,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1409",
                        "text": "1409",
                        "top": 488,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1407",
                        "text": "1407",
                        "top": 488,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1402",
                        "text": "1402",
                        "top": 488,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1408",
                        "text": "1408",
                        "top": 511,
                        "left": 1425,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1406",
                        "text": "1406",
                        "top": 511,
                        "left": 1476,
                        "width": 50,
                        "height": 22
                    }
                    ,{
                        "type": "stn",
                        "id": "site-1401",
                        "text": "1401",
                        "top": 511,
                        "left": 1527,
                        "width": 50,
                        "height": 22
                    }
                ]