pang.jiabao
2025-02-07 f75ab7eb69a218aa79ccc77c092887f009d16f90
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -26,10 +26,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;
/**
@@ -46,7 +43,7 @@
    private short heartBeatVal = 1;
    private StaError1 staError1;
    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
        add(100);add(101);add(102);add(103);
        add(1002);add(1020);add(1035);add(103);
        add(104);add(105);add(106);add(107);
        add(200);add(201);add(202);add(203);add(210);
        add(300);add(301);add(302);add(303);add(304);add(305);
@@ -133,6 +130,7 @@
                booleans[1] = true; // 关门信号
                booleans[0] = false;
                siemensS7Net.Write("DB100.826",booleans);
                log.info("下发关门信号成功:" + Arrays.toString(booleans));
            }
        } else if(flag == 1) {
            OperateResultExOne<byte[]> readOpenResult = siemensS7Net.Read("DB100.826", (short) 1);
@@ -141,6 +139,7 @@
                booleans[0] = true; // 开门信号
                booleans[1] = false;
                siemensS7Net.Write("DB100.826",booleans);
                log.info("下发开门信号成功:" + Arrays.toString(booleans));
            }
        }
        Thread.sleep(500);
@@ -157,6 +156,7 @@
            staProtocol.setCloseAskDoor(booleans[1]);
            staProtocol.setIfOpenDoor(booleans[2]);
            staProtocol.setIfCloseDoor(booleans[3]);
            log.info("下发开关门后回读:" + Arrays.toString(booleans));
        }
    }
@@ -368,7 +368,7 @@
        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.1652", (short) ((staNosErrList.size()+1)*4)); // 不连续,多读中间一个
        if (resultErr.IsSuccess){
            for (int i = 0;i<staNosErrList.size();i++){
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*9+2, 1);
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*8+2, 1);
                StaProtocol staProtocol = station.get(staNosErrList.get(i));
                staProtocol.setFrontErr(status[0]);
                staProtocol.setBackErr(status[1]);