zhangchao
2024-08-26 c96fbc66ec97d88baf95a75fa18092ccfc3f416c
偶发bug(任务号丢失)
1个文件已修改
29 ■■■■■ 已修改文件
src/main/java/com/zy/core/thread/SiemensCrnThread.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -298,13 +298,15 @@
        do {
            try{
                if(!result.IsSuccess || !result2.IsSuccess){
                    News.error("写入堆垛机plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
                    if (!resetFlag){
                        News.error("写入堆垛机plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
//                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
                    result = siemensNet.Write("DB100.0", array);
                    result2 = siemensNet.Write("DB100.22", array2);
                    Thread.sleep(100);
                    writeCount1++;
                    continue;
                        result = siemensNet.Write("DB100.0", array);
                        result2 = siemensNet.Write("DB100.22", array2);
                        Thread.sleep(100);
                        writeCount1++;
                        continue;
                    }
                }
                OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
                if (resultRead.IsSuccess) {
@@ -339,14 +341,15 @@
                        }catch (Exception e){
                        }
//                        News.error("堆垛机命令回读失败后,重新添加任务到队列 ===>> [id:{}],{},resetFlag={}", slave.getId(), JSON.toJSON(command),resetFlag);
                        if (!resetFlag){
                            //                        News.error("堆垛机命令回读失败后,重新添加任务到队列 ===>> [id:{}],{},resetFlag={}", slave.getId(), JSON.toJSON(command),resetFlag);
//                            MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
                        News.error("写入堆垛机plc数据失败,重新下发任务  回读不一致 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
                        result = siemensNet.Write("DB100.0", array);
                        result2 = siemensNet.Write("DB100.22", array2);
                        writeCount1++;
                        continue;
                            News.error("写入堆垛机plc数据失败,重新下发任务  回读不一致 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
                            result = siemensNet.Write("DB100.0", array);
                            result2 = siemensNet.Write("DB100.22", array2);
                            writeCount1++;
                            continue;
                        }
                    } else {
                        News.info("堆垛机命令地址写入后回读成功[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));