pang.jiabao
12 小时以前 4f0617f8fcc7f1c91f3c2dc8056e195ae71aad83
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -303,13 +303,13 @@
            }
            // 读侧面码盘完成信号
            OperateResultExOne<byte[]> resultMp = siemensS7Net.Read("DB79.362", (short) 4);
            if (resultMp.IsSuccess) {
                StaProtocol staProtocol207 = station.get(207);
                StaProtocol staProtocol212 = station.get(212);
                staProtocol207.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 0));
                staProtocol212.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 2));
            }
//            OperateResultExOne<byte[]> resultMp = siemensS7Net.Read("DB79.362", (short) 4);
//            if (resultMp.IsSuccess) {
//                StaProtocol staProtocol207 = station.get(207);
//                StaProtocol staProtocol212 = station.get(212);
//                staProtocol207.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 0));
//                staProtocol212.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 2));
//            }
            // 读取正面条码
            OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB103.0", (short) (5 * 40));
@@ -603,7 +603,7 @@
                        }
                    }
                    OperateResult writeResult4 = siemensS7Net.Write("DB79" + offset, bytes);
                    OperateResult writeResult4 = siemensS7Net.Write("DB79." + offset, bytes);
                    if (writeResult4.IsSuccess) {
                        log.info("侧面出库到:{}站点,给输送线写条码:{}成功", staNo, barcode);
                    } else {
@@ -677,9 +677,10 @@
        int lx = 0,mp = 0,lev = 0;
        switch (staProtocol.getSiteId()) {
            case 205: lx = 16;mp = 18;lev=344;break;
            case 202: lev=366;break;
            case 206: lev=368;break;
            case 207: lx = 24;mp = 26;lev=348;break;
            case 210: lx = 36;mp = 38;lev=354;break;
            case 211: lev=370;break;
            case 212: lx = 44;mp = 46;lev=358;break;
            default:
                log.error("写码盘信息站点有误:{}" , staProtocol.getSiteId());
@@ -693,16 +694,28 @@
        //任务下发成功标识
        boolean writeFlag = false;
        while (writeCount < 5) {
            OperateResult writeResult1 = siemensS7Net.Write(addressPre + lx, staProtocol.getLx());    // 工装类型
            OperateResult writeResult2 = siemensS7Net.Write(addressPre + mp, staProtocol.getMp());    // 是否码盘
            OperateResult writeResult3 = siemensS7Net.Write(addressPre + lev, staProtocol.getLev());    // 码盘层数
            if (writeResult1.IsSuccess && writeResult2.IsSuccess && writeResult3.IsSuccess) {
            if (staProtocol.getSiteId() == 202 || staProtocol.getSiteId() == 206 || staProtocol.getSiteId() == 211) {
                OperateResult writeResult3 = siemensS7Net.Write(addressPre + lev, staProtocol.getLev());    // 码盘层数
                if (writeResult3.IsSuccess) {
                    writeFlag = true;
                    log.info("码盘信息写入输送线命令后返回成功【{},{},{},{}】,并且回读成功,写入次数={}", staProtocol.getSiteId(),staProtocol.getMp(),staProtocol.getLx(),staProtocol.getLev(), writeCount);
                    log.info("入库码盘信息写入输送线命令后返回成功【{},{},{},{}】,并且回读成功,写入次数={}", staProtocol.getSiteId(), staProtocol.getMp(), staProtocol.getLx(), staProtocol.getLev(), writeCount);
                    break;
                } else {
                    writeCount++;
                    log.error("入库码盘信息写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                }
            } else {
                writeCount++;
                log.error("码盘信息写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                OperateResult writeResult1 = siemensS7Net.Write(addressPre + lx, staProtocol.getLx());    // 工装类型
                OperateResult writeResult2 = siemensS7Net.Write(addressPre + mp, staProtocol.getMp());    // 是否码盘
                OperateResult writeResult3 = siemensS7Net.Write(addressPre + lev, staProtocol.getLev());    // 码盘层数
                if (writeResult1.IsSuccess && writeResult2.IsSuccess && writeResult3.IsSuccess) {
                    writeFlag = true;
                    log.info("出库码盘信息写入输送线命令后返回成功【{},{},{},{}】,并且回读成功,写入次数={}", staProtocol.getSiteId(), staProtocol.getMp(), staProtocol.getLx(), staProtocol.getLev(), writeCount);
                    break;
                } else {
                    writeCount++;
                    log.error("出库码盘信息写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                }
            }
        }