ZengTao
2024-06-17 70f2265af5c8ec078ef2a7be65dd7229ab5f2924
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.example.springboot.component;
 
 
 
import com.example.springboot.entity.device.PlcParameterObject;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
 
import static com.example.springboot.component.InitUtil.readAndUpdateBitValues;
import static com.example.springboot.component.InitUtil.readAndUpdateWordValues;
 
public class PLCAutomaticParameterSettingReview2 extends Thread {
 
 
    private static PlcParameterObject plcParameterObject;
    // 用于存储应用程序的配置信息
    private Configuration config;
    private static InitUtil initUtil;
    // 创建一个自定义的 S7 控制器消息处理器对象
    MessageHandler customS7Control = new MessageHandler();
 
//    public static  PlcParameterObject plcStateObject;
 
    // 单例实例
    private static PLCAutomaticParameterSettingReview2 instance;
 
    // 私有构造函数
    public PLCAutomaticParameterSettingReview2() throws IOException {
        config = new Configuration("config.properties");
       // initUtil = new InitUtil();
    }
 
    // 获取单例实例
    public static synchronized PLCAutomaticParameterSettingReview2 getInstance() throws IOException {
        if (instance == null) {
            instance = new PLCAutomaticParameterSettingReview2();
        }
        return instance;
    }
 
 
 
    @Override
    public void run() {
        while (this != null) {
            try {
                Thread.sleep(1000);
 
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
 
 
          //  String jsonFilePath = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
           //  String jsonFilePath2 = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
             //String jsonFilePath4 = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
            //System.out.println(jsonFilePath4);
            // 调用initword方法
            // plcParameterObject = initUtil.initword(jsonFilePath);
         //    plcStateObject = initUtil.initword(jsonFilePath4);
 
            // 调用initbit方法
         //   PlcBitObject plcBitObject = initUtil.initbit(jsonFilePath2);
 
          //  int index3 = plcParameterObject.getPlcParameter("A01A02conveyorVelocity(Max)").getAddressIndex();
           // System.out.println(index3);
           // System.out.println(plcParameterObject.getPlcParameter("A01A02conveyorVelocity(Max)").getAddress(index3));
 
 
//            readAndUpdateBitValues(plcBitObject);
//            readAndUpdateWordValues(plcParameterObject);
//            readAndUpdateWordValues(plcStateObject);
 
//                 List<String> addresses = new ArrayList<>();
//      addresses.add("conveyorVelocity(AutoFAST)");
//      addresses.add("A02ID");
//            addresses.add("conveyorVelocity(Manual)");
            List<String> addresses = new ArrayList<>();
            addresses.add("conveyorVelocity(AutoFAST)");
            addresses.add("A02ID");
            addresses.add("conveyorVelocity(Manual)");
 
 
 
 
 
            List<String> address =  PLCAutomaticParameterSettingReview2.plcParameterObject.getAddressListByCodeId(addresses);
            System.out.println(address);
 
           // List<String> address =  plcParameterObject.getAddressListByCodeId(addresses);
         // System.out.println(address);
 
           // int index = plcParameterObject.getPlcParameter("A01turnAngle1").getAddressIndex();
           // List<Short> arraylist = S7control.getinstance().ReadWord(plcParameterObject.getPlcParameter("A01turnAngle1").getAddress(index), 8);
 
 
//            List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
//            plcBitObject.setPlcBitList(getplcvlues);
 
 
            // plcParameterObject.getPlcParameter("A01A02conveyorVelocity(Max)").getAddress(index);
          //
            // S7control.getinstance().WriteWord(plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getAddress(index), (short) 100);
//     List<String> addresses = new ArrayList<>();
//      addresses.add("conveyorVelocity(AutoFAST)");
//      addresses.add("A02ID");
//System.out.println(plcParameterObject.getPlcParameterValues(addresses));
//            List<String> addresses2 = new ArrayList<>();
//            addresses2.add("D01.SRdec");
//            addresses2.add("D01.SRinpos");
//            addresses2.add("D05.SRinpos");
//
//
//
//
//            System.out.println(plcBitObject.getPlcBitValues(addresses2));
//
//           int index2 = plcBitObject.getPlcBit("D05.SRinpos").getAddressIndex();
//            System.out.println(index2);
//
//           plcBitObject.getPlcBit("D05.SRinpos").getAddress(index2);
//           System.out.println(plcBitObject.getPlcBit("D05.SRinpos").getAddress(index2));
//
//
//            List<String> addresses3 = new ArrayList<>();
//            addresses3.add("A02ID1");
//            addresses3.add("A01CurrentGrid");
//            System.out.println(plcStateObject.getPlcParameterValues(addresses3));
        }
    }
}