huang
2 天以前 14763d895151f3ddad09906f2233057b8b967881
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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);
}