package com.mes.plc.client;
import java.util.Map;
/**
* PLC客户端接口
*
* 定义PLC通信的通用方法,支持多种PLC协议(S7、Modbus等)
*
*
* @author huang
* @date 2025/12/19
*/
public interface PlcClient {
/**
* 连接PLC
*
* @return 是否连接成功
*/
boolean connect();
/**
* 断开PLC连接
*/
void disconnect();
/**
* 读取PLC的所有数据
*
* @return PLC数据,key为字段名,value为字段值
*/
Map readAllData();
/**
* 读取PLC的指定字段数据
*
* @param fields 需要读取的字段列表
* @return PLC数据,key为字段名,value为字段值
*/
Map readData(String... fields);
/**
* 写入PLC数据
*
* @param data 需要写入的数据,key为字段名,value为字段值
* @return 是否写入成功
*/
boolean writeData(Map data);
/**
* 检查PLC连接状态
*
* @return 是否连接成功
*/
boolean isConnected();
/**
* 获取PLC类型
*
* @return PLC类型
*/
String getPlcType();
/**
* 获取连接超时时间
*
* @return 超时时间(毫秒)
*/
int getTimeout();
/**
* 设置连接超时时间
*
* @param timeout 超时时间(毫秒)
*/
void setTimeout(int timeout);
}