1
9 小时以前 fb74f60f1d8397acf5251ae289e80ab8a056857f
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -107,7 +107,17 @@
        put(1101, 2508);put(1102, 2600);put(1103, 2692);put(1104, 2784);put(1105, 2876);
        put(1106, 2968);put(1107, 3060);put(1108, 3152);put(1109, 3244);put(1110, 3336);
        put(2001, 392);put(2002, 116);put(2003, 208);put(2004, 0);put(2005, 300);
        put(2006, 508);put(2007, 692);put(2008, 600);put(2009, 808);put(2010, 992);
        put(2011, 900);put(2012, 1108);put(2013, 1500);put(2014, 1292);put(2015, 1200);
        put(2016, 1384);put(2017, 1616);put(2018, 1708);put(2019, 1800);put(2020, 1916);
        put(2021, 2008);put(2022, 2100);put(2023, 2216);put(2024, 2308);put(2025, 2400);
        put(2026, 2516);put(2027, 2608);put(2028, 2792);put(2029, 2700);put(2030, 2908);
        put(2031, 464);put(2032, 348);put(2033, 556);put(2034, 92);put(2035, 0);
        put(2037, 256);
        put(4001, 0);put(4002, 116);put(4003, 508);put(4004, 392);put(4005, 300);
        put(4006, 208);
        // 其他站点同理继续加
    }};
@@ -118,11 +128,11 @@
    // 特殊站点集合
    private static final Set<Integer> specialSites = new HashSet<>(
            Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039));
            Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039,2004,2001,2007,2010,2016,2013,2019,2022,2025,2030,4001,4004));
    // 特殊站点集合
    private static final Set<Integer> specialSites2 = new HashSet<>(
            Arrays.asList(1051,1055,1057,1065,1067,1069,1077,1081,1083,1086,1089,1092,1095,1097,1100));
            Arrays.asList(1051,1055,1057,1065,1067,1069,1077,1081,1083,1086,1089,1092,1095,1097,1100,2034));
    private static final Set<Integer> specialSites3 = new HashSet<>(//机械臂站点
            Arrays.asList(1098,1093,1087,1082,1074,1071,1061,1058));
@@ -250,7 +260,7 @@
                staProtocol.setEmptyMk(false);      // 空板信号
                staProtocol.setStaNo((short) 0);     // 目标站
                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                if (!staProtocol.isPakMk() && staProtocol.isLoading()) {
                    staProtocol.setPakMk(true);
                }
            }
@@ -287,12 +297,25 @@
        ArrayList<Integer> staNos = getStaNo();
        int staNoSize = staNos.size();
        OperateResultExOne<byte[]> result = null;
        OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037
        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053
        OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
        OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110
        OperateResultExOne<byte[]> result1 = null;
        OperateResultExOne<byte[]> result2 = null;//1029-1037
        OperateResultExOne<byte[]> result3 = null;//1042-1053
        OperateResultExOne<byte[]> result4 = null;//1054-1079
        OperateResultExOne<byte[]> result5 = null;//1080-1110
        OperateResultExOne<byte[]> resultErr = null;//1080-1110
        if(staNoSize == 99){
            result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
            result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037
            result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053
            result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
            result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
            resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110
        }else{
            result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030
            result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037
            result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006
        }
@@ -305,16 +328,26 @@
                    staProtocol.setSiteId(siteId);
                    station.put(siteId, staProtocol);
                }
                if(siteId < 1029){
                    result = result1;
                }else if(siteId < 1042){
                    result = result2;
                }else if(siteId < 1054){
                    result = result3;
                }else if(siteId < 1080){
                    result = result4;
                }else if(siteId < 1111){
                    result = result5;
                if (staNoSize == 99) {
                    if (siteId < 1029) {
                        result = result1;
                    } else if (siteId < 1042) {
                        result = result2;
                    } else if (siteId < 1054) {
                        result = result3;
                    } else if (siteId < 1080) {
                        result = result4;
                    } else if (siteId < 1111) {
                        result = result5;
                    }
                }else{
                    if (siteId < 2031) {
                        result = result1;
                    } else if (siteId < 4001) {
                        result = result2;
                    } else {
                        result = result3;
                    }
                }
                // 获取该站点对应的偏移量
                Integer offset = siteOffsetMap.get(siteId);
@@ -367,7 +400,7 @@
//                staProtocol.setHigh(status[6]);     // 高库位
//                staProtocol.setLow(status[7]);      // 低库位
                if (!staProtocol.isPakMk() && (!staProtocol.isLoading() || !staProtocol.isInEnable())) {
                if (!staProtocol.isPakMk() && (!staProtocol.isLoading() || staProtocol.getWorkNo()==0)) {
                    staProtocol.setPakMk(true);
                }
            }
@@ -490,7 +523,32 @@
                    write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 目标站
                }else{
                    write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 目标站
                }            }
                }
            }else if(siteId < 2031){
                write = siemensS7Net.Write("DB200." + (offset + offset2), staProtocol.getWorkNo());    // 工作号
                Thread.sleep(200);
                if(specialSites2.contains(siteId)){
                    write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 目标站
                }else{
                    write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 目标站
                }
            }else if(siteId < 4000){
                write = siemensS7Net.Write("DB201." + (offset + offset2), staProtocol.getWorkNo());    // 工作号
                Thread.sleep(200);
                if(specialSites2.contains(siteId)){
                    write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 目标站
                }else{
                    write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 目标站
                }
            }else{
                write = siemensS7Net.Write("DB400." + (offset + offset2), staProtocol.getWorkNo());    // 工作号
                Thread.sleep(200);
                if(specialSites2.contains(siteId)){
                    write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 目标站
                }else{
                    write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 目标站
                }
            }
            if(write.IsSuccess && write1.IsSuccess){
                log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                break;