自动化立体仓库 - WCS系统
#
zjj
2025-03-07 81d9844aab9d1133505c6e74303754e7f2ac0507
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -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());    // 工作号
            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,27 @@
        }
        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*6, staProtocol.getWorkNo());    // 工作号
            Thread.sleep(100);
            write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue());    // 目标站
            Thread.sleep(100);
            write2 = siemensS7Net.Write("DB100." + (index*10+6), staProtocol.getMatnr());    // 目标站
            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 || !write2.IsSuccess) {
            staProtocol = station.get(staProtocol.getSiteId());