| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | // 使用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); |