huang
16 小时以前 9c489617b002e71859597097c9d1d2f1b9fc0e56
mes-processes/mes-plcSend/src/main/java/com/mes/plc/client/impl/S7PlcClient.java
@@ -9,6 +9,7 @@
import com.mes.s7.enhanced.EnhancedS7Serializer;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -70,12 +71,19 @@
    }
    
    static {
        // 初始化PLC类型映射
        // 初始化PLC类型映射(支持多种格式)
        // S7_1200 格式
        PLC_TYPE_MAP.put("S7_1200", EPlcType.S1200);
        PLC_TYPE_MAP.put("S7_1500", EPlcType.S1500);
        PLC_TYPE_MAP.put("S7_200", EPlcType.S200);
        PLC_TYPE_MAP.put("S7_300", EPlcType.S300);
        PLC_TYPE_MAP.put("S7_400", EPlcType.S400);
        // S1200 格式(不带下划线)
        PLC_TYPE_MAP.put("S1200", EPlcType.S1200);
        PLC_TYPE_MAP.put("S1500", EPlcType.S1500);
        PLC_TYPE_MAP.put("S200", EPlcType.S200);
        PLC_TYPE_MAP.put("S300", EPlcType.S300);
        PLC_TYPE_MAP.put("S400", EPlcType.S400);
    }
    
    /**
@@ -181,13 +189,13 @@
            }
            
            // 使用PlcDynamicDataService读取指定字段PLC数据
            Map<String, Object> data = this.plcDynamicDataService.readPlcData(this.device, java.util.Arrays.asList(fields), this.s7Serializer);
            Map<String, Object> data = this.plcDynamicDataService.readPlcData(this.device, Arrays.asList(fields), this.s7Serializer);
            if (data == null) {
                log.warn("PLC动态数据服务返回空数据: {}:{}", this.plcIp, this.plcPort);
                return new HashMap<>();
            }
            
            log.info("S7 PLC读取指定字段数据成功: {}:{}, fields={}", this.plcIp, this.plcPort, java.util.Arrays.toString(fields));
            log.info("S7 PLC读取指定字段数据成功: {}:{}, fields={}", this.plcIp, this.plcPort, Arrays.toString(fields));
            return data;
        } catch (Exception e) {
            log.error("S7 PLC读取数据失败: {}:{}", this.plcIp, this.plcPort, e);