lty
4 天以前 286cd8397e2ba167e859af0dd3225db41ec82662
#输送线重读
1个文件已修改
44 ■■■■ 已修改文件
src/main/java/com/zy/core/thread/SiemensDevpThread.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -518,20 +518,52 @@
        OperateResult write = null;
        OperateResult write1 = null;
        boolean flag1 = false;
        boolean flag2 = false;
        //任务下发次数
        int writeCount = 0;
        do {
            write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 工作号
            Thread.sleep(200);
            write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 目标站
            if(write.IsSuccess && write1.IsSuccess){
            if (!flag1) {
                write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 工作号
                if (write.IsSuccess) {
                    OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100." + offset, (short) 2);
                    if (result.IsSuccess) {
                        if (staProtocol.getWorkNo().equals(siemensS7Net.getByteTransform().TransInt16(result.Content, (short) 0))) {
                            flag1 = true;
                        }
                    }
                }
            }
            if (!flag2) {
                Thread.sleep(200);
                write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 目标站
                if (write1.IsSuccess) {
                    OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100." + (offset+4), (short) 2);
                    if (result2.IsSuccess) {
                        if (staProtocol.getStaNo().equals(siemensS7Net.getByteTransform().TransInt16(result2.Content, (short) 0))) {
                            flag2 = true;
                        }
                    }
                }
            }
            if (flag1 && flag2) {
                log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                break;
            }
            else {
            } else {
                writeCount++;
                log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
            }
//            write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 工作号
//            Thread.sleep(200);
//            write1 = siemensS7Net.Write("DB100." + (offset+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) {