huang
2025-11-18 1566e4c7604d85737ea67fe6757e71b8185fa48e
mes-processes/mes-plcSend/src/main/java/com/mes/service/PlcDynamicDataService.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.github.xingshuangs.iot.common.enums.EDataType;
import com.github.xingshuangs.iot.protocol.s7.serializer.S7Parameter;
import com.mes.device.entity.DeviceConfig;
import com.mes.entity.PlcAddress;
import com.mes.s7.enhanced.EnhancedS7Serializer;
@@ -66,4 +67,52 @@
     * @param s7Serializer S7序列化器
     */
    void writePlcField(PlcAddress config, String fieldName, Object value, EnhancedS7Serializer s7Serializer);
    /**
     * 根据DeviceConfig配置和字段名称读取PLC数据
     *
     * @param device 设备配置
     * @param fieldNames 要读取的字段名称列表
     * @param s7Serializer S7序列化器
     * @return 字段名->值 的Map
     */
    Map<String, Object> readPlcData(DeviceConfig device, List<String> fieldNames, EnhancedS7Serializer s7Serializer);
    /**
     * 根据DeviceConfig配置和数据Map写入PLC
     *
     * @param device 设备配置
     * @param dataMap 字段名->值 的Map
     * @param s7Serializer S7序列化器
     */
    void writePlcData(DeviceConfig device, Map<String, Object> dataMap, EnhancedS7Serializer s7Serializer);
    /**
     * 读取PLC所有字段(基于DeviceConfig)
     *
     * @param device 设备配置
     * @param s7Serializer S7序列化器
     * @return 所有字段的值
     */
    Map<String, Object> readAllPlcData(DeviceConfig device, EnhancedS7Serializer s7Serializer);
    /**
     * 读取单个字段(基于DeviceConfig)
     *
     * @param device 设备配置
     * @param fieldName 字段名
     * @param s7Serializer S7序列化器
     * @return 字段值
     */
    Object readPlcField(DeviceConfig device, String fieldName, EnhancedS7Serializer s7Serializer);
    /**
     * 写入单个字段(基于DeviceConfig)
     *
     * @param device 设备配置
     * @param fieldName 字段名
     * @param value 字段值
     * @param s7Serializer S7序列化器
     */
    void writePlcField(DeviceConfig device, String fieldName, Object value, EnhancedS7Serializer s7Serializer);
}