| | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.example.springboot.controller.HomeController; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | | import org.apache.commons.io.FileUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.example.springboot.service.StorageCageService; |
| | | |
| | | import java.io.*; |
| | | import java.util.ArrayList; |
| | |
| | | |
| | | |
| | | public class PlcParameter2 extends Thread { |
| | | @Autowired |
| | | StorageCageService storageCageService; |
| | | |
| | | |
| | | // 用于存储应用程序的配置信息 |
| | | private Configuration config; |
| | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService .class); |
| | | // id |
| | | List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(",")); |
| | | |
| | | List<String> paramlist = S7control.getinstance().readStrings(addressList1); |
| | | |
| | | // System.out.println("addressList:" + paramlist); |
| | | |
| | | //手动状态 |
| | | List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(",")); |
| | |
| | | // jsonObject.set("message", "Hello, Parameter2!"); |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | HomeController controller = new HomeController(); |
| | | // HomeController controller = new HomeController(); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | //完成出片 |
| | | boolean containsOne = data.stream().anyMatch(number -> number == 1); |
| | | for (int i = 1; i <= 5; i++) { |
| | | boolean value = sValue.get(i); |
| | | if (value) { |
| | | String id=paramlist.get(i); |
| | | //判断是否自动状态 |
| | | if(!containsOne) { |
| | | //判断id是否包含数字 |
| | | if(id.matches(".*\\d.*")){ |
| | | //判断清楚id是否true |
| | | if (value) { |
| | | System.out.println(id); |
| | | switch (i) { |
| | | case 1: |
| | | controller.UpdateTask(0, 0, paramlist.get(i)); |
| | | storageCageService.UpdateTask(2, 0, paramlist.get(i)); |
| | | break; |
| | | case 2: |
| | | case 3: |
| | | case 4: |
| | | case 5: |
| | | controller.UpdateTask(1, 0, paramlist.get(i)); |
| | | storageCageService.UpdateTask(3, 0, paramlist.get(i)); |
| | | break; |
| | | default: |
| | | // 处理索引值不在范围内的情况 |
| | |
| | | } |
| | | } |
| | | |
| | | } |
| | | // 检查布尔值列表是否为空 |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 |
| | | S7control.getinstance().WriteBit(addressList0, sValue); |
| | | System.out.println("Values " + sValue + " written to PLC at address " + addressList0); |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 终止进片任务 |
| | | boolean Value1 = sValue.get(0); |
| | | boolean Value2 = sValue.get(1); |
| | | |
| | | if (Value1) { |
| | | controller.EndTask(0); |
| | | storageCageService.EndTask(0); |
| | | |
| | | } |
| | | if (Value2) { |
| | | controller.EndTask(0); |
| | | storageCageService.EndTask(1); |
| | | |
| | | } |
| | | // 检查布尔值列表是否为空 |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 |
| | | S7control.getinstance().WriteBit(addressList0, sValue); |
| | | System.out.println("Values " + sValue + " written to PLC at address " + addressList0); |
| | | S7control.getinstance().WriteBit(niuanaddressList3, sValue); |
| | | System.out.println("Values " + sValue + " written to PLC at address " + niuanaddressList3); |
| | | } |
| | | } |
| | | } catch (Exception e) { |