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