#
whycq
2023-05-09 dea324847d747e4a730902ddcaa56b87e623ef9a
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -42,7 +42,7 @@
    private SiemensS7Net siemensS7Net;
    private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
    private short heartBeatVal = 1;
    public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
        add(100);add(101);add(102);add(103);add(104);add(105);
    }};
    /**
@@ -67,7 +67,7 @@
    private ArrayList<Integer> getStaNo() {
        switch (slave.getId()) {
            case 1:
                return staNos1;
                return staNos;
            default:
                throw new CoolException("获取站点失败!");
        }
@@ -145,26 +145,26 @@
                }
                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2));     // 工作号
//                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2));   // 目标站
                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2 ));   // 目标站
            }
        }
        Thread.sleep(200);
        OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) (staNoSize*2));
        if (result0.IsSuccess) {
            for (int i = 0; i < staNoSize; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
                    staProtocol = new StaProtocol();
                    staProtocol.setSiteId(siteId);
                    station.put(siteId, staProtocol);
                }
                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2));   // 目标站
            }
        }
        Thread.sleep(200);
//        OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) (staNoSize*2));
//        if (result0.IsSuccess) {
//            for (int i = 0; i < staNoSize; i++) {
//                Integer siteId = staNos.get(i); // 站点编号
//                StaProtocol staProtocol = station.get(siteId);
//                if (null == staProtocol) {
//                    staProtocol = new StaProtocol();
//                    staProtocol.setSiteId(siteId);
//                    station.put(siteId, staProtocol);
//                }
//                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2));   // 目标站
//            }
//        }
//        Thread.sleep(200);
        OperateResultExOne<byte[]> result1 = null;
        result1 = siemensS7Net.Read("DB101.1", (short) (staNoSize * 2));
        result1 = siemensS7Net.Read("DB100.100", (short) (staNoSize * 2));
        if (result1.IsSuccess) {
            for (int i = 0; i < staNoSize; i++) {
                Integer siteId = staNos.get(i); // 站点编号
@@ -281,13 +281,13 @@
    // 更新入出库模式
    private void updateIoMode() throws InterruptedException {
        if (slave.getId() == 1 && this.ioModeOf1F1 != IoModeType.NONE) {
            if (!siemensS7Net.Write("DB100.300", this.ioModeOf1F1.id).IsSuccess) {
            if (!siemensS7Net.Write("DB100.120", this.ioModeOf1F1.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线1F1入出库模式失败。输送线plc编号={1}", slave.getId()));
                log.error("写入输送线1F1入出库模式失败。输送线plc编号={}", slave.getId());
            }
        }
        if (slave.getId() == 1 && this.ioModeOf1F2 != IoModeType.NONE) {
            if (!siemensS7Net.Write("DB100.302", this.ioModeOf1F2.id).IsSuccess) {
            if (!siemensS7Net.Write("DB100.122", this.ioModeOf1F2.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线1F2入出库模式失败。输送线plc编号={1}", slave.getId()));
                log.error("写入输送线1F2入出库模式失败。输送线plc编号={}", slave.getId());
            }
@@ -326,14 +326,14 @@
    }
    public static void main(String[] args) {
        System.out.println(staNos1.indexOf(129));
        System.out.println(staNos1.size());
        for (int i = 0; i<staNos1.size(); i++) {
        System.out.println(staNos.indexOf(129));
        System.out.println(staNos.size());
        for (int i = 0; i<staNos.size(); i++) {
//            System.out.println(i*2);
//            System.out.println(i*2 + 200);
//            System.out.println(i);
        }
        int index = staNos1.indexOf(128);
        int index = staNos.indexOf(128);
        System.out.println(index*2);
        System.out.println(index*2 + 200);
    }