dubin
1 天以前 0e10bf39c53b0b79cbdc051ddb10845d361042c3
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;
/**
@@ -48,21 +45,22 @@
    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
        add(100);add(101);add(102);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);
        add(1101);add(1102);
        add(200);add(201);add(202);add(203);add(2101);add(2102);add(2103);add(2104);add(210);
        add(300);add(301);add(302);add(303);add(304);add(305);add(1200);add(1201);add(1202);
    }};
    public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
        add(1); add(2);
        add(1); add(2);add(3);
    }};
    public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
        add(101); add(103);
        add(101); add(103);add(1102);
    }};
    /**
     * 条码数量
     */
    private int barcodeSize = 2;
    private int barcodeSize = 3;
    /**
     * 入出库模式
@@ -133,6 +131,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 +140,7 @@
                booleans[0] = true; // 开门信号
                booleans[1] = false;
                siemensS7Net.Write("DB100.826",booleans);
                log.info("下发开门信号成功:" + Arrays.toString(booleans));
            }
        }
        Thread.sleep(500);
@@ -157,6 +157,7 @@
            staProtocol.setCloseAskDoor(booleans[1]);
            staProtocol.setIfOpenDoor(booleans[2]);
            staProtocol.setIfCloseDoor(booleans[3]);
            log.info("下发开关门后回读:" + Arrays.toString(booleans));
        }
    }
@@ -218,7 +219,7 @@
        // 读一楼连续8个站点
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (8*8));
        if (result.IsSuccess) {
            for (int i = 0; i < 8; i++) {
            for (int i = 0; i < 10; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
@@ -248,7 +249,7 @@
        // 读二楼连续4个站点
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.800", (short) (4*8));
        if (result2.IsSuccess) {
            for (int i = 8; i < 12; i++) {
            for (int i = 10; i < 18; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
@@ -278,7 +279,7 @@
        // 读二楼210
        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB101.880", (short) (8));
        if (result3.IsSuccess) {
                Integer siteId = staNos.get(12); // 站点编号210
                Integer siteId = staNos.get(18); // 站点编号210
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
                    staProtocol = new StaProtocol();
@@ -306,7 +307,7 @@
        // 读二楼3区
        OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.1600", (short) (6*8));
        if (result2.IsSuccess) {
            for (int i = 13; i < staNos.size(); i++) {
            for (int i = 19; i < staNos.size(); i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
@@ -368,7 +369,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]);
@@ -382,7 +383,7 @@
        // 读一楼连续8个站点,故障信息反馈
        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.3312", (short) (8*2));
        if (resultErr2.IsSuccess) {
            for (int i = 0; i < 8; i++) {
            for (int i = 0; i < 10; i++) {
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*2 + 1, 1);
                StaProtocol staProtocol = station.get(staNos.get(i)); // 站点编号
                staProtocol.setBreakerErr(status[0]);
@@ -399,7 +400,7 @@
        // 读二楼连续4个站点,故障信息反馈
        OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB101.3512", (short) (4*2));
        if (resultErr3.IsSuccess) {
            for (int i = 8; i < 12; i++) {
            for (int i = 10; i < 18; i++) {
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, (i-8) * 2 + 1, 1);
                StaProtocol staProtocol = station.get(staNos.get(i)); // 站点编号
                staProtocol.setBreakerErr(status[0]);
@@ -415,7 +416,7 @@
        // 读三区故障信息反馈
        OperateResultExOne<byte[]> resultErr4 = siemensS7Net.Read("DB101.2096", (short) (6*2));
        if (resultErr4.IsSuccess) {
            for (int i = 13; i < staNos.size(); i++) {
            for (int i = 19; i < staNos.size(); i++) {
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr4.Content, (i-13) * 2 + 1, 1);
                StaProtocol staProtocol = station.get(staNos.get(i)); // 站点编号
                staProtocol.setBreakerErr(status[0]);