#
whycq
2023-05-09 294157b5ffaab25310171d839e7d7ed998493a96
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("获取站点失败!");
        }
@@ -133,7 +133,7 @@
        updateIoMode();
        ArrayList<Integer> staNos = getStaNo();
        int staNoSize = staNos.size();
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*2));
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4));
        if (result.IsSuccess) {
            for (int i = 0; i < staNoSize; i++) {
                Integer siteId = staNos.get(i); // 站点编号
@@ -145,7 +145,7 @@
                }
                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 + 2 ));   // 目标站
            }
        }
        Thread.sleep(200);
@@ -263,7 +263,7 @@
        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 工作号
        Thread.sleep(300);
        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 目标站
        OperateResult write1 = siemensS7Net.Write("DB100." + index*2, staProtocol.getStaNo());    // 目标站
        if (!write.IsSuccess) {
            staProtocol = station.get(staProtocol.getSiteId());
@@ -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);
    }