#
zjj
2025-05-08 b44b85a4d7512615b8c19c95dc21e537a15a0d5b
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -768,11 +768,11 @@
                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*4, 1);
//                short tongType = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2);
                short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 6);
                String batch = siemensS7Net.getByteTransform().TransString(result.Content,i * 4+ 8, 20, "UTF-8");
                String batch = siemensS7Net.getByteTransform().TransString(result.Content,i * 4+ 8, 20, "UTF-8").trim();
                short ban = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 28);
                Integer w1 = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 30);
                String orderNo = siemensS7Net.getByteTransform().TransString(result.Content, i * 4 + 34,22, "UTF-8");
                String matnr = siemensS7Net.getByteTransform().TransString(result.Content, i * 4 + 56,22, "UTF-8");
                String matnr = siemensS7Net.getByteTransform().TransString(result.Content, i * 4 + 56,22, "UTF-8").trim();
                StaProtocol staProtocol = station.get(siteId);
@@ -838,9 +838,23 @@
        }
        ArrayList<Integer> staNos = getWriteStaNo();
        int index = staNos.indexOf(staProtocol.getSiteId());
        OperateResult write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue());    // 工作号
        Thread.sleep(500);
        OperateResult write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo());    // 目标站
        OperateResult write = null;
        OperateResult write1 = null;
        //任务下发次数
        int writeCount = 0;
        do {
            write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue());    // 工作号
            Thread.sleep(200);
            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;
            }
            else {
                writeCount++;
                log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
            }
        }while (writeCount<5);
        if (!write.IsSuccess || !write1.IsSuccess) {
            staProtocol = station.get(staProtocol.getSiteId());
@@ -864,9 +878,33 @@
        }
        ArrayList<Integer> staNos = getWriteStaNo();
        int index = staNos.indexOf(staProtocol.getSiteId());
        OperateResult write = siemensS7Net.Write("DB100." + index*10, staProtocol.getWorkNo().intValue());    // 工作号
        OperateResult write1 = siemensS7Net.Write("DB100." + (index*10+4), staProtocol.getStaNo());    // 目标站
        OperateResult write2 = siemensS7Net.Write("DB100." + (index*10+6), staProtocol.getMatnr());    // 目标站
        OperateResult write = null;
        OperateResult write1 = null;
        OperateResult write2 = null;
        //任务下发次数
        int writeCount = 0;
        do {
             write = siemensS7Net.Write("DB100." + index*10, staProtocol.getWorkNo().intValue());    // 工作号
            Thread.sleep(100);
             write1 = siemensS7Net.Write("DB100." + (index*10+4), staProtocol.getStaNo());    // 目标站
            Thread.sleep(100);
             write2 = siemensS7Net.Write("DB100." + (index*10+6), staProtocol.getMatnr());    // 目标站
//            write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo());    // 工作号
//            write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue());    // 目标站
//            write2 = siemensS7Net.Write("DB100." + (index*10+6), staProtocol.getMatnr());    // 目标站
            if(write.IsSuccess && write1.IsSuccess && write2.IsSuccess){
                log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                break;
            }
            else {
                writeCount++;
                log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
            }
        }while (writeCount<5);
        if (!write.IsSuccess || !write1.IsSuccess || !write2.IsSuccess) {
            staProtocol = station.get(staProtocol.getSiteId());