lty
3 天以前 09f634c766e8daeeb687d48fd645f225afc3c082
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -387,6 +387,9 @@
            if(resultIn.IsSuccess){
                for (int i = 0; i < staNosInSize; i++) {
                    Integer siteId = staNosIns.get(i);
                    if(siteId == 202){
                        StaProtocol staProtocol1 = station.get(siteId);
                    }
                    StaProtocol staProtocol = station.get(siteId);
                    staProtocol.setStamp( siemensS7Net.getByteTransform().TransInt16(resultIn.Content, i*6));
                }
@@ -518,20 +521,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) {