From 6068faa866f976b7848b872420f2d93f77f5035b Mon Sep 17 00:00:00 2001 From: hdy <1105738590@qq.com> Date: 星期日, 12 五月 2024 18:15:38 +0800 Subject: [PATCH] 打印 --- jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 114 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 90 insertions(+), 24 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java index dc802b1..12af80d 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java @@ -35,16 +35,21 @@ public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //鏂拌嚜鍔ㄥ伐绔� - public List<String> automaticList = Arrays.asList("OP280", "OP320A","OP320B", "OP340A","OP340B", "OP350A","OP350B", "OP360","OP365","OP370", "OP390", "OP470"); + public List<String> automaticList = Arrays.asList("OP280","OP310A","OP310B", "OP300A","OP300B", "OP320A","OP320B", "OP340A","OP340B", "OP350A","OP350B", "OP360","OP365","OP370", "OP390", "OP470"); - //鑷姩宸ヤ綅 -// public List<String> automaticList = Arrays.asList("OP300","OP280", "OP320A","OP320B", "OP340", "OP350", "OP360","OP370", "OP390", "OP470", "OP530", "OP540"); + //閲囬泦妯$粍宸ヤ綅 ModuleCode + public List<String> moduleCodeList = Arrays.asList("OP300A","OP300B","OP320A","OP320B","OP340A","OP340B","OP365", "OP350A", "OP350B", "OP330"); - //閲囬泦妯$粍宸ヤ綅 - public List<String> moduleCodeList = Arrays.asList("OP300","OP310", "OP340", "OP350", "OP330"); + //鍖哄垎妯$粍鍨嬪彿宸ヤ綅 + public List<String> distinguishingModules = Arrays.asList("OP300","OP310", "OP340", "OP350", "OP330"); + + //鍖哄垎灏忚溅鐮� + public List<String> agvId = Arrays.asList("OP360", "OP390", "OP470","OP280"); + //鍖哄垎pack鍨嬪彿鐨勫伐浣� - public List<String> packIdList = Arrays.asList("OP280"); + public List<String> packIdList = Arrays.asList("OP280","OP360","OP390","OP470"); + //绌虹殑 public List<String> nullList = Arrays.asList("OP250","OP260"); @@ -112,24 +117,41 @@ //鑷姩宸ヤ綅 if(automaticList.stream().anyMatch(s -> s.equals(device))){ //plc缁欐垜浠竴涓ā缁勭爜锛屾嬁妯$粍鐮佹牎楠屽嚭鍨嬪彿 - if(moduleCodeList.stream().anyMatch(s -> s.equals(device))) { + if(distinguishingModules.stream().anyMatch(s -> s.equals(device))) { //璇绘ā缁勭爜 - String moduleCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCode").getValue().toString(); - String productTye = thoroughfare + "." + device + ".ProductType"; - if (null != moduleCode && moduleCode.length() == 24) { - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(productTye).value(Integer.valueOf(moduleCode.substring(7, 8))).build()); - //杩涚珯淇濆瓨鏁版嵁 -// inSaveDate(thoroughfare,device) - //璁板綍鏁版嵁瀹屾垚 +// String moduleCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCode").getValue().toString(); +// String productTye = thoroughfare + "." + device + ".ProductType"; +// if (null != moduleCode && moduleCode.length() == 24) { +// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(productTye).value(Integer.valueOf(moduleCode.substring(7, 8))).build()); +// //杩涚珯淇濆瓨鏁版嵁 +//// inSaveDate(thoroughfare,device) +// //璁板綍鏁版嵁瀹屾垚 String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; - +// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); - - - //璇锋眰宸ュ崟 - } else { - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); +// +// +// //璇锋眰宸ュ崟 +// } else { +// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); +// } + }else { + if(agvId.stream().anyMatch(s -> s.equals(device))){ + String agvId = miloService.readFromOpcUa(thoroughfare + "." + device + ".AGVID").getValue().toString(); + String PACKCode = thoroughfare + "." + device + ".MPACKCode"; + if (null != agvId) { + OmProductionOrdeInfo one = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getTrolleyYard, agvId)); + String packId = one.getProductNum(); + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(PACKCode).value(packId).build()); + } else { + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); + } } + //pack 濡傛灉鍖哄垎鍨嬪彿鐨勮瘽灏辫澶勭悊 + //璁板綍鏁版嵁瀹屾垚 + String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; + + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); } }else { //鎵嬪姩宸ヤ綅澶勭悊閫昏緫 @@ -154,7 +176,12 @@ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf(recordDataDoneValue)).build()); }else { //鎵嬪姩宸ヤ綅 - WebSocketUsers.sendMessageToUserByText(map.get(device), "END"); + if(device.contains("OP330")){ + String str = device.substring(0,5); + WebSocketUsers.sendMessageToUserByText(map.get(str), "END"); + }else { + WebSocketUsers.sendMessageToUserByText(map.get(device), "END"); + } } }else { System.out.println("^"); @@ -173,7 +200,7 @@ List<ReadWriteEntity> list1 = miloService.readFromOpcUa(list); List<Object> collect = list1.stream().map(ReadWriteEntity::getValue).collect(Collectors.toList()); String joinedString = String.join(",", collect.toString()); - WebSocketUsers.sendMessageToUserByText(map.get(device), joinedString); + WebSocketUsers.sendMessageToUserByText(map.get(device), TightenTheConversionOkNg(joinedString)); } } } @@ -217,8 +244,6 @@ String workOrderNo = ""; String productCode = ""; //2銆佷繚瀛樿繃绔欓噰闆嗘暟鎹� -// String workOrderNo = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "WorkOrderNumber").getValue().toString(); -// String productCode = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "ProductType").getValue().toString(); Object orderNumberObject = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "WorkOrderNumber").getValue(); if(orderNumberObject!=null){ workOrderNo = orderNumberObject.toString(); @@ -405,4 +430,45 @@ omProductionOrdeInfoService.saveOrUpdate(one); } + public static void avgFunction(){ + + } + + public static String TightenTheConversionOkNg(String param){ + // 鍘婚櫎棣栧熬鐨勬柟鎷彿锛岀劧鍚庢寜鐓ч�楀彿鍒嗗壊瀛楃涓� + String[] parts = param.substring(1, param.length() - 1).split(","); + + // 鍒涘缓涓�涓柊鐨凷tringBuilder鏉ユ瀯寤烘浛鎹㈠悗鐨勫瓧绗︿覆 + StringBuilder sb = new StringBuilder(); + sb.append('['); // 娣诲姞宸︽柟鎷彿 + + for (int i = 0; i < parts.length; i++) { + String part = parts[i].trim(); // 鍘婚櫎鍙兘鐨勭┖鏍� + float value; + try { + value = Float.parseFloat(part); // 灏濊瘯灏嗗瓧绗︿覆杞崲涓烘诞鐐规暟 + String replacement; + if (value == 1f) { + replacement = "OK"; + } else if (value == 2f) { + replacement = "NG"; + } else { + replacement = part; // 濡傛灉涓嶆槸1鎴�2锛屽垯淇濇寔涓嶅彉 + } + sb.append(replacement); + if (i < parts.length - 1) { + sb.append(','); // 娣诲姞閫楀彿锛堥櫎浜嗘渶鍚庝竴涓厓绱狅級 + } + } catch (NumberFormatException e) { + // 濡傛灉杞崲澶辫触锛屽垯淇濇寔鍘熸牱锛堟垨杩涜鍏朵粬閿欒澶勭悊锛� + sb.append(part); + if (i < parts.length - 1) { + sb.append(','); + } + } + } + sb.append(']'); // 娣诲姞鍙虫柟鎷彿 + return sb.toString(); + } + } -- Gitblit v1.9.3