CanadaMes-ui/src/views/home/index.vue
@@ -929,7 +929,7 @@ if (obj.D01RequestState != null) { this.D01RequestState = obj.D01RequestState[0]; } // this.D01RequestState=true; //是否允许出片 this.isAllowQueue = obj.isAllowQueue[0]; @@ -1779,8 +1779,8 @@ } else { if (count > 0) { this.PromptSize = 500; this.CountDowns = count; count--; this.CountDowns = count; this.dialogFormCountDown = true; } else { springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -28,7 +28,7 @@ FileInputStream fileInputStream; try { // 从文件中读取字节数据存入 fileInputStream fileInputStream = new FileInputStream("D:/code/canadames/Alarm.json"); fileInputStream = new FileInputStream("D:/canadames/Alarm.json"); // 读取 fileInputStream 中字节并将其解码为字符 InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8"); // 提高读取效率,在 BufferedReader 内包装 InputStreamReader springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -18,7 +18,6 @@ import com.example.springboot.entity.alarmmg; import com.example.springboot.mapper.HomeMapper; import com.example.springboot.mapper.SpianMapper; import com.example.springboot.service.StorageCageService; public class Plchome extends Thread { @@ -109,7 +108,17 @@ jsonObject.append("isAllowReordering", Plchome.isAllowReordering); // 是否需要人工确认上片玻璃 jsonObject.append("isConfirm", isConfirm); String framenos="X21763329601FB"; if (!framenos.equals(Plchome.FrameNo)) { Plchome.FrameNo = framenos; try { north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (S7control.getinstance().CheckConnected() == true) { // 读去Plc进片车与出片车位置W List<String> addressList = new ArrayList<String>(); addressList.add("DB106.12"); @@ -129,13 +138,16 @@ // 获取进片玻璃信息 List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); if (inglassInfo != null) { if (inglassInfo.size() > 0) if (inglassInfo.size() > 0) { jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); } // 获取铝框idDB106.DBW64 } // 获取铝框idDB106.DBW64,添加到出片队列 String frameno = spianService.queGlassid("DB103.270", 14).toString(); // String frameno="X12345611002GV"; frameno="X21763329601FB"; if (!frameno.equals(Plchome.FrameNo)) { Plchome.FrameNo = frameno; try { @@ -159,9 +171,9 @@ jsonObject.append("countdown", countdowns); } // jsonObject.append("countdown", true); // 复位完成信号 List<Boolean> resets = S7control.getinstance().ReadBits("DB103.284", 1); for (Boolean reset : resets) { // 复位完成信号ss List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1); for (Boolean reset : resetss) { jsonObject.append("reset", reset); } @@ -176,8 +188,8 @@ List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3); // Boolean[] value4 = { false, false}; // List<Boolean> anniuread = new ArrayList<>(Arrays.asList(value4)); // Boolean[] value5 = { true}; // List<Boolean> resets = new ArrayList<>(Arrays.asList(value5)); Boolean[] value5 = { true }; List<Boolean> resets = new ArrayList<>(Arrays.asList(value5)); short[] anniuparams = new short[anniuread.size()]; for (int i = 0; i < anniuread.size(); i++) { boolean value = anniuread.get(i); @@ -197,6 +209,7 @@ } } } // 铝框线交互 @@ -245,63 +258,63 @@ if (!messages.isEmpty()) { // 将最后一个消息转换为整数类型的列表 String lastMessage = messages.get(messages.size() - 1); // String lastMessage = messages.get(messages.size() - 1); // System.out.println("lastMessage:" + lastMessage); JSONArray messageArray = new JSONArray(lastMessage); // JSONArray messageArray = new JSONArray(lastMessage); // // try { // // 检查索引是否有效 // if (messageArray.getJSONArray(0).size() > 0) { // // 获取消息数组 // JSONArray jsonArray = messageArray.getJSONArray(0); // // 创建一个布尔值列表 // List<Boolean> sValue = new ArrayList<>(); // // 遍历消息数组 // for (int i = 0; i < jsonArray.size(); i++) { // // 获取消息数组中的值 // Object value = jsonArray.get(i); // // 检查值是否有效 // if (value != null && !value.toString().equals("null")) { // try { // // 移除非数字和数字字符 // String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); // // 解析为布尔值 // boolean val = "1".equals(cleanedValue.trim()); // // 将布尔值添加到布尔值列表中 // sValue.add(val); // System.out.println( // "messageValue: " + Arrays.asList(val) + " added to the list"); try { // 检查索引是否有效 if (messageArray.getJSONArray(0).size() > 0) { // 获取消息数组 JSONArray jsonArray = messageArray.getJSONArray(0); // 创建一个布尔值列表 List<Boolean> sValue = new ArrayList<>(); // 遍历消息数组 for (int i = 0; i < jsonArray.size(); i++) { // 获取消息数组中的值 Object value = jsonArray.get(i); // 检查值是否有效 if (value != null && !value.toString().equals("null")) { try { // 移除非数字和数字字符 String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); // 解析为布尔值 boolean val = "1".equals(cleanedValue.trim()); // 将布尔值添加到布尔值列表中 sValue.add(val); System.out.println( "messageValue: " + Arrays.asList(val) + " added to the list"); // } catch (NumberFormatException e) { // // 如果无法解析为 boolean 类型,则忽略该部分 // System.err.println("Could not parse value: " + value); // } // } // } // // 终止进片任务 // boolean Value1 = sValue.get(0); // boolean Value2 = sValue.get(1); } catch (NumberFormatException e) { // 如果无法解析为 boolean 类型,则忽略该部分 System.err.println("Could not parse value: " + value); } } } // 终止进片任务 boolean Value1 = sValue.get(0); boolean Value2 = sValue.get(1); // if (Value1) { // storageCageService.EndTask(0); if (Value1) { storageCageService.EndTask(0); // } // if (Value2) { // storageCageService.EndTask(1); } if (Value2) { storageCageService.EndTask(1); // } // // 检查布尔值列表是否为空 // if (!sValue.isEmpty()) { } // 检查布尔值列表是否为空 if (!sValue.isEmpty()) { // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 S7control.getinstance().WriteBit(niuanaddressList3, sValue); System.out.println( "Values " + sValue + " written to PLC at address " + niuanaddressList3); } } } catch (Exception e) { System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); } // // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 // S7control.getinstance().WriteBit(niuanaddressList3, sValue); // System.out.println( // "Values " + sValue + " written to PLC at address " + niuanaddressList3); // } // } // } catch (Exception e) { // System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); // } webserver.clearMessages(); } springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -17,25 +17,25 @@ // System.out.println("启动完成"); new PlcHold().start(); // new PlcHold().start(); new Plchome().start(); new Plcalarm().start(); // new Plcalarm().start(); new Plcsign().start(); // new Plcsign().start(); new Plcstate().start(); new PlcPositioning1().start(); // new Plcstate().start(); // new PlcPositioning1().start(); new PlcParameter2().start(); // new PlcParameter2().start(); new PLCAutomaticParameterSetting().start(); // new PLCAutomaticParameterSetting().start(); new PlcManualonePosition().start(); new PlcManualonePosition2().start(); new PlcServoManualone().start(); new PLCManualJog().start(); new Plclog().start(); // new PlcManualonePosition().start(); // new PlcManualonePosition2().start(); // new PlcServoManualone().start(); // new PLCManualJog().start(); // new Plclog().start(); } } springboot-vue3/src/main/java/com/example/springboot/entity/north_glass_buffer1.java
@@ -1,4 +1,7 @@ package com.example.springboot.entity; import java.util.Comparator; //客户玻璃信息表 public class north_glass_buffer1 { private Integer id; //自增id @@ -20,7 +23,9 @@ private String datecreated;// private String FrameBarcode;//铝框id private StorageCage storageCage; public StorageCage storageCage; public void setstorageCage(StorageCage storageCage) { this.storageCage = storageCage; @@ -51,15 +56,19 @@ public Integer getId() { return id; } public String getordernumber() { return ordernumber; } public void setordernumber(String ordernumber) { this.ordernumber = ordernumber; } public String getlistnumber() { return listnumber; } public void setlistnumber(String listnumber) { this.listnumber = listnumber; } @@ -67,22 +76,23 @@ public String getboxnumber() { return boxnumber; } public void setboxnumber(String boxnumber) { this.boxnumber = boxnumber; } public String getbarcode() { return barcode; } public void setbarcode(String barcode) { this.barcode = barcode; } public Double getglasslength() { return glasslength; } public void setglasslength(Double glasslength) { this.glasslength = glasslength; } @@ -90,6 +100,7 @@ public Double getglassheight() { return glassheight; } public void setglassheight(Double glassheight) { this.glassheight = glassheight; } @@ -97,6 +108,7 @@ public Double getglasslengthmm() { return glasslengthmm; } public void setglasslengthmm(Double glasslengthmm) { this.glasslengthmm = glasslengthmm; } @@ -104,6 +116,7 @@ public Double getglassheightmm() { return glassheightmm; } public void setglassheightmm(Double glassheightmm) { this.glassheightmm = glassheightmm; } @@ -111,33 +124,41 @@ public String getitemtype() { return itemtype; } public void setitemtype(String itemtype) { this.itemtype = itemtype; } public String getslotnumber() { return slotnumber; } public void setslotnumber(String slotnumber) { this.slotnumber = slotnumber; } public String getdatemodified() { return datemodified; } public void setdatemodified(String datemodified) { this.datemodified = datemodified; } public String getdatecreated() { return datecreated; } public void setdatecreated(String datecreated) { this.datecreated = datecreated; } public String getFrameBarcode() { return FrameBarcode; } public void setFrameBarcode(String FrameBarcode) { this.FrameBarcode = FrameBarcode; } } springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
@@ -1,13 +1,17 @@ package com.example.springboot.service; import java.sql.SQLException; import java.util.Collection; import java.util.Comparator; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.mapper.HomeMapper; import java.util.Collections; @Service public class North_Glass_Buffer1Service { @@ -17,6 +21,33 @@ @Autowired private JdbcConnections jdbcConnections; class north_glass_buffer1Comparator implements Comparator<north_glass_buffer1> { @Override public int compare(north_glass_buffer1 n1, north_glass_buffer1 n2) {//对查询到的铝框对应的玻璃数据进行排序,将离出片位置近的,靠近笼子出片侧的玻璃排在前面 if (n1.getstorageCage() != null) { if (n2.getstorageCage() != null) { int cageComparison = n2.getstorageCage().getCage().compareTo(n1.getstorageCage().getCage()); if (cageComparison != 0) { return cageComparison; } else { int cellComparison = n2.getstorageCage().getCell().compareTo(n1.getstorageCage().getCell()); if (cellComparison != 0) { return cellComparison; } else { return n2.getstorageCage().getTier().compareTo(n1.getstorageCage().getTier()); } } } else { return -1; } } else { return 1; } } } // 获取玻璃是否在笼子,是否在出片队列 public List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode) throws SQLException { List<north_glass_buffer1> listAluminumFrame = jdbcConnections @@ -25,6 +56,8 @@ north_glass_buffer1.setstorageCage(homeMapper.SelectStorageGlassById(north_glass_buffer1.getbarcode())); north_glass_buffer1.setOut_slice(homeMapper.SelectQueueByglassid(north_glass_buffer1.getbarcode())); } // 对嵌套类的其中一列进行排序 Collections.sort(listAluminumFrame, new north_glass_buffer1Comparator()); return listAluminumFrame; }