pjb
2025-06-16 4c4c8fb50c3e9a86ebe6948bfa81961579ea86c3
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -224,7 +224,7 @@
        // 读罐装线反馈信息
        if (slave.getId() > 3) {
//            log.info("读取{}号罐装线plc信息成功",slave.getId());
            OperateResultExOne<byte[]> read = siemensS7Net.Read("DB101.0", (short) 58);
            OperateResultExOne<byte[]> read = siemensS7Net.Read("DB101.0", (short) 60);
            if (read.IsSuccess) {
                // 15秒打印一下日志
                if (System.currentTimeMillis() - lastLogTime >= 15000) {
@@ -241,17 +241,18 @@
                if (staProtocol != null) {
                    staProtocol.setWantBucketFlag(siemensS7Net.getByteTransform().TransInt16(read.Content, 0));// 罐装线要桶型信号
                    staProtocol.setWrkNo(siemensS7Net.getByteTransform().TransInt16(read.Content, 2));
                    double weight208l1 = siemensS7Net.getByteTransform().TransInt32(read.Content, 4); // 200L桶1净重
                    double weight208l2 = siemensS7Net.getByteTransform().TransInt32(read.Content, 8); // 200L桶2净重
                    double weight208l3 = siemensS7Net.getByteTransform().TransInt32(read.Content, 12); // 200L桶3净重
                    double weight208l4 = siemensS7Net.getByteTransform().TransInt32(read.Content, 16); // 200L桶4净重
                    double weight1T = siemensS7Net.getByteTransform().TransInt32(read.Content, 20); // 1T桶净重
                    double weight208l1 = siemensS7Net.getByteTransform().TransSingle(read.Content, 4); // 200L桶1净重
                    double weight208l2 = siemensS7Net.getByteTransform().TransSingle(read.Content, 8); // 200L桶2净重
                    double weight208l3 = siemensS7Net.getByteTransform().TransSingle(read.Content, 12); // 200L桶3净重
                    double weight208l4 = siemensS7Net.getByteTransform().TransSingle(read.Content, 16); // 200L桶4净重
                    double weight1T = siemensS7Net.getByteTransform().TransSingle(read.Content, 20); // 1T桶净重
//                    log.info("读取工罐装线净重 200l桶1:{},200l桶2:{},200l桶3:{},200l桶4:{},1t桶:{}",weight208l1,weight208l2,weight208l3,weight208l4,weight1T);
                    staProtocol.setWeight(weight208l1 + weight208l2 + weight208l3 + weight208l4 + weight1T);
                    staProtocol.setGrossWeight(siemensS7Net.getByteTransform().TransInt32(read.Content, 24));
                    staProtocol.setGrossWeight(siemensS7Net.getByteTransform().TransSingle(read.Content, 24));
                    staProtocol.setMatnr(siemensS7Net.getByteTransform().TransString(read.Content, 28,12,"UTF-8"));
                    staProtocol.setBatch(siemensS7Net.getByteTransform().TransString(read.Content, 40,10,"UTF-8"));
                    staProtocol.setManuDate(siemensS7Net.getByteTransform().TransString(read.Content, 50,8,"UTF-8"));
                    staProtocol.setReinspection(siemensS7Net.getByteTransform().TransInt16(read.Content, 58) == 1);
                }
                return;
            }
@@ -503,7 +504,15 @@
        do {
            write = siemensS7Net.Write("DB100.0", common);
            Thread.sleep(200);
            if(write.IsSuccess){
            OperateResultExOne<byte[]> read = siemensS7Net.Read("DB100.4", (short) 2);
            if(write.IsSuccess && read.IsSuccess){
                short i = siemensS7Net.getByteTransform().TransInt16(read.Content, 0);
                if ( i != staProtocol.getWorkNo().shortValue()) {
                    writeCount++;
                    log.error("给罐装线写入桶型信息成功,但回读失败:写入任务号:{},回读任务号:{},输送线plc编号={},写入次数={}",staProtocol.getWorkNo().shortValue(), i, slave.getId(), writeCount);
                    continue;
                }
                log.info("给罐装线写入桶型信息成功,回读成功:任务号:{},回读任务号:{},输送线plc编号={},写入次数={}",staProtocol.getWorkNo().shortValue(), i, slave.getId(), writeCount);
                break;
            }
            else {