lty
4 天以前 286cd8397e2ba167e859af0dd3225db41ec82662
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -388,7 +388,7 @@
                for (int i = 0; i < staNosInSize; i++) {
                    Integer siteId = staNosIns.get(i);
                    StaProtocol staProtocol = station.get(siteId);
                    staProtocol.setStamp(siemensS7Net.getByteTransform().TransInt32(result.Content, i*6));
                    staProtocol.setStamp( siemensS7Net.getByteTransform().TransInt16(resultIn.Content, i*6));
                }
            }
@@ -484,21 +484,23 @@
        if(resultIn.IsSuccess){
            for (int i = 0; i < staNosInSize; i++) {
                Integer siteId = staNosIns.get(i);
                if(staProtocol.getSiteId() == siteId){
                    offset = i;
                if(staProtocol.getSiteId().equals(siteId)){
                    offset = i*6 + 2;
                    break;
                }
            }
        }
        do {
            write = siemensS7Net.Write("DB1000." + offset*6 + 2,staProtocol.getWorkNo());    // 工作号
            write = siemensS7Net.Write("DB1000.0" + offset,staProtocol.getWorkNo());    // 工作号
            if(write.IsSuccess ){
                log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                log.error("写入工作号{}",staProtocol.getWorkNo());
                log.error("写入输命令成功。输送线plc编号={},写入次数={}", slave.getId(), writeCount);
                break;
            }
            else {
                writeCount++;
                log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                log.error("写入命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
            }
        }while (writeCount<5);
    }
@@ -516,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) {