自动化立体仓库 - WCS系统
1
zhangc
2025-04-16 e83761d390b593cff8b7c17144529e92eb482bd6
src/main/java/com/zy/core/thread/impl/FyDevpThread.java
@@ -227,50 +227,19 @@
        index += 1;
        short[] array = new short[2];
        array[0] = staProtocol.getWorkNo();
        array[1] = staProtocol.getStaNo();
        array[0] = staProtocol.getStaNo();
        array[1] = staProtocol.getWorkNo();
        String staNoAddress = "DB83." + (index * 8 + 4);
        String workNoAddress = "DB83." + (index * 8 + 6);
        OperateResult write1 = null;    // 工作号
        OperateResult write2 = null;     // 目标站
        //任务下发次数
        int writeCount = 0;
        do {
            write1 = siemensS7Net.Write(workNoAddress, array[0]);    // 工作号
            write2 = siemensS7Net.Write(staNoAddress, array[1]);
            if ((write1.IsSuccess && write2.IsSuccess)) {
                log.info("写入输送线命令后返回成功,并且回读成功。输送线plc编号={},{},{},写入次数={}", staProtocol.getSiteId(), JSON.toJSON(staProtocol.getWorkNo()), JSON.toJSON(staProtocol.getStaNo()), writeCount);
//                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB82.14", (short) (staNos2.indexOf(siteId) * 26));
//                //OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
//                if (readResult.IsSuccess) {
//                    int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);     // 工作号
//                    int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);   // 目标站
//                    // int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
//                    //int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
//                    if (workNo == workNo2 && staNo == staNo2) {
//                        //任务命令写入成功
//                        log.info("写入输送线命令后返回成功,并且回读成功。输送线plc编号={},{},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
//                        return true;
//                    } else {//返回结果是成功了,但是真实值不相同
//                        writeCount++;
//                        log.error("写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={},{},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
//                    }
//                } else {
//                    writeCount++;
//                    log.error("写入输送线命令后读取失败。输送线plc编号={},站点数据={},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
//                }
            } else {
                writeCount++;
            }
        } while (writeCount < 5);
//        StaProtocol staProtocol = station.get(siteId);
//        if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
//            staProtocol.setPakMk(true);
//        }
        OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(array)));
        log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(array));
        OperateResult write1 = siemensS7Net.Write(staNoAddress, array);
        if (!write1.IsSuccess) {
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(array)));
            log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(array));
            return;
        }
        OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据成功。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(array)));
        log.info("写入输送线站点数据成功。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(array));
    }
    /**