自动化立体仓库 - WCS系统
Junjie
2023-12-24 cc45bd4b1dd65cfd806ae54ddd74c165c57c1e8e
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -78,6 +78,18 @@
        add(343);add(344);
    }};
    public static final ArrayList<Integer> staNos3 = new ArrayList<Integer>() {{//218
        add(302);add(304);
        add(315);add(322);
        add(324);add(330);
        add(332);add(337);
    }};
    public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{//250
        add(318);add(320);
        add(343);
    }};
    //高低信号站点
    public static final ArrayList<Integer> locType1StaNos = new ArrayList<Integer>() {{
        add(100);add(103);
@@ -158,7 +170,7 @@
            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()));
            News.error("输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        }
        siemensS7Net.ConnectClose();
//        siemensS7Net.ConnectClose();
        return result;
    }
@@ -248,45 +260,90 @@
            }
        }
        //出入库站点检测报警信息
        Thread.sleep(100);
        for (Integer staNo : outInAlarmStaNos) {
            OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".20.0", (short) 2);
            if (result5.IsSuccess) {
                if (staNo == 101 || staNo == 201) {
                    staNo--;
                }else {
                    staNo++;
                }
                StaProtocol staProtocol = station.get(staNo);
                boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 2);
                staProtocol.setBarcodeErr(status[4]);//扫码失败
                staProtocol.setFrontErr(status[8]);//前超限
                staProtocol.setBackErr(status[9]);//后超限
                staProtocol.setLeftErr(status[10]);//左超限
                staProtocol.setRightErr(status[11]);//右超限
                staProtocol.setHighErr(status[12]);//超高
                staProtocol.setWeightErr(status[13]);//超重
            }
        }
//        //出入库站点检测报警信息
//        Thread.sleep(100);
//        for (Integer staNo : outInAlarmStaNos) {
//            OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".20.0", (short) 2);
//            if (result5.IsSuccess) {
//                if (staNo == 101 || staNo == 201) {
//                    staNo--;
//                }else {
//                    staNo++;
//                }
//                StaProtocol staProtocol = station.get(staNo);
//                boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 2);
//                staProtocol.setBarcodeErr(status[4]);//扫码失败
//                staProtocol.setFrontErr(status[8]);//前超限
//                staProtocol.setBackErr(status[9]);//后超限
//                staProtocol.setLeftErr(status[10]);//左超限
//                staProtocol.setRightErr(status[11]);//右超限
//                staProtocol.setHighErr(status[12]);//超高
//                staProtocol.setWeightErr(status[13]);//超重
//            }
//        }
//
//        Thread.sleep(100);
//        for (Integer staNo : staNos2) {
//            OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".0", (short) 48);
//            if (result5.IsSuccess) {
//                StaProtocol staProtocol = station.get(staNo);
//                StaProtocol staProtocol300 = station.get(300);
//                if (null == staProtocol) {
//                    staProtocol = new StaProtocol();
//                    staProtocol.setSiteId(staNo);
//                    station.put(staNo, staProtocol);
//                }
//
//                boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result5.Content, 8, 1);
//                boolean[] status2 = siemensS7Net.getByteTransform().TransBool(result5.Content, 21, 1);
//                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, 34));     // 工作号
//                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, 40));   // 目标站
//                staProtocol.setAutoing(status1[0]);  // 自动
//                staProtocol.setLoading(status2[2]);  // 有物
//                boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result5.Content, 1, 1);
//                staProtocol.setAutoing(staProtocol300.isAutoing());  // 自动
//                staProtocol.setLoading(!status1[2]);  // 有物
//
//                if (staNos3.contains(staNo) || staNos4.contains(staNo)) {
//                    continue;
//                }
//                if (staNo == 344) {
//                    staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result5.Content, 34));     // 工作号
//                }else {
//                    staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result5.Content, 22));     // 工作号
//                }
//            }
//        }
//
//        Thread.sleep(100);
//        for (Integer staNo : staNos3) {
//            OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".22.0", (short) 2);
//            OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB" + staNo + ".218.0", (short) 2);
//            if (result5.IsSuccess && result6.IsSuccess) {
//                StaProtocol staProtocol = station.get(staNo);
//                short wrkNo1 = siemensS7Net.getByteTransform().TransInt16(result5.Content, 0);
//                short wrkNo2 = siemensS7Net.getByteTransform().TransInt16(result6.Content, 0);
//                short wrkNo = 0;
//                if (wrkNo1 != 0) {
//                    wrkNo = wrkNo1;
//                }
//                if (wrkNo2 != 0) {
//                    wrkNo = wrkNo2;
//                }
//                staProtocol.setWorkNo(wrkNo);     // 工作号
//            }
//        }
//
//        Thread.sleep(100);
//        for (Integer staNo : staNos4) {
//            OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".22.0", (short) 2);
//            OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB" + staNo + ".250.0", (short) 2);
//            if (result5.IsSuccess && result6.IsSuccess) {
//                StaProtocol staProtocol = station.get(staNo);
//                short wrkNo1 = siemensS7Net.getByteTransform().TransInt16(result5.Content, 0);
//                short wrkNo2 = siemensS7Net.getByteTransform().TransInt16(result6.Content, 0);
//                short wrkNo = 0;
//                if (wrkNo1 != 0) {
//                    wrkNo = wrkNo1;
//                }
//                if (wrkNo2 != 0) {
//                    wrkNo = wrkNo2;
//                }
//                staProtocol.setWorkNo(wrkNo);     // 工作号
//            }
//        }