dubin
2025-08-28 6d11821ff01c5bfb1c07153772a8efce774ab5d5
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -78,8 +78,9 @@
    }};*/
    public static final ArrayList<Integer> staNosErrList1 = new ArrayList<Integer>() {{
        add(101);
        add(102);add(103);add(104);add(105);
//        add(101);
//        add(102);add(103);add(104);add(105);
        add(102);
    }};
    public static final ArrayList<Integer> staNoWeight1 = new ArrayList<Integer>() {{
@@ -324,7 +325,7 @@
            //条码扫描器
            ArrayList<Integer> barcodeList = getBarcodeList();
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.2848", (short) (barcodeList.size() * 8));
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.602", (short) (barcodeList.size() * 8));
            if (result2.IsSuccess) {
                for (int i = 0; i < barcodeList.size(); i++) {
                    Integer barcodeId = barcodeList.get(i);
@@ -338,11 +339,12 @@
            //外形检测
            ArrayList<Integer> staNoErrs = staNosErrList;
            int staNoErrsSize = staNoErrs.size();
            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.2808", (short) (staNoErrsSize * 4));
            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.702", (short) (staNoErrsSize * 7));
            if (resultErr.IsSuccess) {
                for (int i = 0; i < staNoErrsSize; i++) {
                    Integer siteId = staNoErrs.get(i); // 站点编号
                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4 + 2, 1);
//                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4 + 2, 1);
                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 7, 1);
                    StaProtocol staProtocol = station.get(siteId);
                    staProtocol.setFrontErr(status[0]);
                    staProtocol.setBackErr(status[1]);
@@ -439,17 +441,17 @@
            return;
        }
        ArrayList<Integer> staNos = getStaNo();
//        int index = staNos.indexOf(staProtocol.getSiteId());
        int offset = getOffsetFromSiteId2(staProtocol.getSiteId());//取余获得对应db块数据
        int index = staNos.indexOf(staProtocol.getSiteId());
//        int offset = getOffsetFromSiteId2(staProtocol.getSiteId());//取余获得对应db块数据
        OperateResult write = null;
        OperateResult write1 = null;
        //任务下发次数
        int writeCount = 0;
        do {
            write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 工作号
            write = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo());    // 工作号
            Thread.sleep(200);
            write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 目标站
            write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo().shortValue());    // 目标站
            if(write.IsSuccess && write1.IsSuccess){
                log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                break;