wuyouming666
2024-03-26 90110ed128dd9212caf3b7d5fb4a8d5f870d2905
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
package com.mes.service;
 
import com.mes.common.PlcTools.MockS7PLCtwo;
import com.mes.entity.DownGlassInfo;
import com.mes.mapper.DownWorkstationMapper;
import com.mes.tools.WebSocketServer;
import org.springframework.beans.factory.annotation.Autowired;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class Plcaction extends Thread {
 
 
  @Autowired
  private DownWorkstationMapper downWorkstationMapper;
  private DownGlassInfo downGlassInfo; //
  private DownGlassInfoService downGlassInfoService;
  private int i =1; //
 
    //MockS7PLC mockS7PLC=new MockS7PLC();
  @Override
  public void run() {
    while (!Thread.currentThread().isInterrupted()) {
      try {
        i++;
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
        e.printStackTrace();
      }
      downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
      downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
      int workstationId = 1;
      int deviceId = 2;
      int newWorkState = 9;
 
      downWorkstationMapper.updateWorkStateByWorkstationIdAndDeviceId(workstationId, deviceId, newWorkState);
      downGlassInfo  = downGlassInfoService.getDownGlassInfoById(1); // 设置需要查询的id
//   System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
      Boolean[] value4 = { false, true, true, true, true, true, false, false, false,
              false};
     List<Boolean> booldata2 = new ArrayList<>(Arrays.asList(value4));
       // MockS7PLCtwo.getInstance().writeBoolean("DB1.DBX0.0", false);
       // MockS7PLCtwo.getInstance().writebits("DB4.0.0",booldata2);
// 从相同的地址读取布尔值
      boolean value = MockS7PLCtwo.getInstance().readBoolean("DB1.DBX0.0");
      Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
      Short[] values2 = { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
 
   List<Short> data = new ArrayList<>(Arrays.asList(values1));
      List<Short> data2 = new ArrayList<>(Arrays.asList(values2));
        List<String> addresses3 = new ArrayList<>();
        addresses3.add("DB1.0.0");
        addresses3.add("DB1.0.3");
        addresses3.add("DB1.0.5");
      List<String> addresses = new ArrayList<>();
      addresses.add("DB100.0");
      addresses.add("DB100.2");
      addresses.add("DB100.4");
      addresses.add("DB100.6");
      addresses.add("DB100.26");
      addresses.add("DB100.28");
      addresses.add("DB100.30");
      addresses.add("DB100.32");
      addresses.add("DB100.34");
      addresses.add("DB100.36");
 
 
 
      List<String> addresses2 = new ArrayList<>();
      addresses2.add("DB101.0");
      addresses2.add("DB101.2");
      addresses2.add("DB101.4");
      addresses2.add("DB101.6");
      addresses2.add("DB101.8");
      addresses2.add("DB101.10");
      addresses2.add("DB101.12");
      addresses2.add("DB101.14");
      addresses2.add("DB101.16");
      addresses2.add("DB101.18");
//      mockPLC.writeword("DB100.2",data );
        MockS7PLCtwo.getInstance().WriteWords(addresses, data);
        MockS7PLCtwo.getInstance().WriteWords(addresses2, data2);
  //DB100.2,DB100.4,DB100.6,DB100.28,DB100.30,DB100.32,DB100.36,DB100.38,DB100.40
 
  List<Short> data5= MockS7PLCtwo.getInstance().readwords("DB104.0", 9);
      List<Short> data3= MockS7PLCtwo.getInstance().ReadWords(addresses);
      List<Boolean> data4= MockS7PLCtwo.getInstance().readbits("DB4.0.0",10);
 
        List<Boolean> data6= MockS7PLCtwo.getInstance().readBits(addresses3);
    //  System.out.println("读取的布尔值: " + value); // 应该输出 true
     // System.out.println("读取的word值: " + data3);
      System.out.println("读取的word值: " + data4);
//        System.out.println("读取的bit值: " + data4);
//        System.out.println("读取的bit值: " + data6);
 
 
     //   System.out.println("读取的word值: " + MockS7PLCtwo.getInstance().readInt16("DB5.0.0"));
    }
  }
}