jcdm-admin/src/main/resources/application.yml
@@ -130,3 +130,11 @@ excludes: /system/notice # å¹é é¾æ¥ urlPatterns: /system/*,/monitor/*,/tool/* kangaroohy: milo: primary: default config: default: endpoint: opc.tcp://127.0.0.1:49320 security-policy: none jcdm-main/pom.xml
@@ -37,37 +37,6 @@ </exclusions> </dependency> <!--Server SDKä¾èµ--> <dependency> <groupId>org.eclipse.milo</groupId> <artifactId>sdk-server</artifactId> <version>0.3.6</version> </dependency> <!--Client SDKä¾èµ--> <dependency> <groupId>org.eclipse.milo</groupId> <artifactId>sdk-client</artifactId> <version>0.3.6</version> </dependency> <dependency> <groupId>org.eclipse.milo</groupId> <artifactId>stack-client</artifactId> <version>0.3.6</version> </dependency> <dependency> <groupId>org.eclipse.milo</groupId> <artifactId>stack-client</artifactId> <version>0.3.6</version> </dependency> <dependency> <groupId>org.eclipse.milo</groupId> <artifactId>stack-server</artifactId> <version>0.3.6</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> @@ -105,6 +74,12 @@ <groupId>com.jcdm</groupId> <artifactId>jcdm-system</artifactId> </dependency> <dependency> <groupId>com.kangaroohy</groupId> <artifactId>milo-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency> </dependencies> </project> jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/KeyStoreLoader.java
ÎļþÒÑɾ³ý jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java
ÎļþÒÑɾ³ý jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java
ÎļþÒÑɾ³ý jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientRunner.java
ÎļþÒÑɾ³ý jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java
@@ -3,7 +3,6 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.jcdm.main.da.opcuaconfig.client.ClientHandler; import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; import com.jcdm.main.da.opcuaconfig.domain.NodeEntity; import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; @@ -111,10 +110,10 @@ @PreAuthorize("@ss.hasPermi('da:opcuaconfig:query')") @GetMapping(value = "/SNCode/{SNCode}/{locationCode}") public AjaxResult setSNCode(@PathVariable("SNCode") String SNCode,@PathVariable("locationCode") String locationCode) { NodeEntity node= NodeEntity.builder().index(2).identifier("CFL4CVT"+"."+locationCode+".SNCode").value(SNCode).type("string").build(); //NodeEntity node= NodeEntity.builder().index(2).identifier("CFL4CVT"+"."+locationCode+".SNCode").value(SNCode).type("string").build(); Boolean out= null; try { out = ClientHandler.write(node); // out = ClientHandler.write(node); } catch (Exception e) { throw new RuntimeException(e); } jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/OpcusConfigInit.java
ÎļþÒÑɾ³ý jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ package com.jcdm.main.plcserver; import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; import com.jcdm.main.plcserver.conf.OPCElement; import com.jcdm.main.plcserver.sub.OPCUaSubscription; import com.kangaroohy.milo.service.MiloService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component public class CustomRunner implements ApplicationRunner { @Autowired public MiloService miloService; @Autowired public IDaCollectionParamConfService collectionParamConfService; @Autowired public IDaParamCollectionService daParamCollectionService; @Override public void run(ApplicationArguments args) throws Exception { OPCUaSubscription opcUaSubscription = new OPCUaSubscription( miloService, collectionParamConfService, daParamCollectionService); List<String> lists = getSubList(); miloService.subscriptionFromOpcUa(lists,opcUaSubscription); } /** * 订é å 容 */ public List<String> getSubList(){ List<String> lists = new ArrayList<>(); lists.add(OPCElement.OP010_SaveRequest);//请æ±ä¿å lists.add(OPCElement.OP010_CodeCheck);//请æ±æ£ç´¢æ¡ç lists.add(OPCElement.OP020_SaveRequest);//请æ±ä¿å return lists; } } jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.jcdm.main.plcserver.conf; /** * @ClassName: OPCElement * @Description: PCåPLCé信使ç¨çOPCserverä¸çæ è®°å称å表 */ public class OPCElement { /** * OP010 */ private static final String OP010_ITEM = "CFL3ZZ.OP010.";// public static final String OP010_SaveRequest = OP010_ITEM + "SaveRequest";//请æ±ä¿å public static final String OP010_MesSaveFeed = OP010_ITEM + "MesSaveFeed";//Mesä¿åå®æ public static final String OP010_CodeCheck = OP010_ITEM + "CodeCheck";//请æ±æ£ç´¢æ¡ç public static final String OP010_MesCodeCheckFeed = OP010_ITEM + "MesCodeCheckFeed";//MESæ£ç´¢å®æ /** * OP100 */ private static final String OP020_ITEM = "OP.OP100.";// public static final String OP020_SaveRequest = OP020_ITEM + "SaveRequest";//请æ±ä¿å public static final String OP020_MesSaveFeed = OP020_ITEM + "MesSaveFeed";//Mesä¿åå®æ } jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,111 @@ package com.jcdm.main.plcserver.sub; import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; import com.jcdm.main.plcserver.conf.OPCElement; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; import com.kangaroohy.milo.service.MiloService; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Component public class OPCUaSubscription implements SubscriptionCallback { public static MiloService miloService; public IDaCollectionParamConfService collectionParamConfService; public IDaParamCollectionService daParamCollectionService; public OPCUaSubscription(MiloService miloService, IDaCollectionParamConfService collectionParamConfService, IDaParamCollectionService daParamCollectionService) { OPCUaSubscription.miloService = miloService; this.collectionParamConfService = collectionParamConfService; this.daParamCollectionService = daParamCollectionService; } @Override public void onSubscribe(String identifier, Object value) { String ecpStr = "";//å¼å¸¸è®°å½æ è®° try { if(null != value) { //OP010ä¿åè¯·æ± if (identifier.equals(OPCElement.OP010_SaveRequest) && null != value && "1".equals(value.toString())) { SaveData(OPCElement.OP010_SaveRequest); ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP010_MesSaveFeed, 1); miloService.writeToOpcByte(entity); } //OP010请æ±æ£ç´¢æ¡ç else if (identifier.equals(OPCElement.OP010_CodeCheck) && null != value && "1".equals(value.toString())) { ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP010_MesCodeCheckFeed, 1); miloService.writeToOpcByte(entity); } } } catch (Exception e) { } finally { if (!"".equals(ecpStr)) { System.out.println(ecpStr + "\r\n"); } } } public void SaveData(String Node) throws Exception { /*String[] parts = Node.split("[.]"); Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code1").getValue(); if(null != SNCodeObject) { String SNCode = SNCodeObject.toString(); List<DaCollectionParamConf> list; DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf(); daCollectionParamConf.setGatherAddress(parts[0] + "." + parts[1]); list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf); List<String> nodeIdList = list.stream().map(info -> { String nodeid = info.getGatherAddress(); return nodeid; }).collect(Collectors.toList()); if(!nodeIdList.isEmpty()){ List<ReadWriteEntity> readWriteEntityList = miloService.readFromOpcUa(nodeIdList); List<DaParamCollection> daParamCollectionlist = new ArrayList<>(); for(int i=0;i<nodeIdList.size();i++){ DaParamCollection ParamCollection = new DaParamCollection(); if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){ ParamCollection.setParamCode(readWriteEntityList.get(i).getIdentifier().toString().split("[.]")[2]); ParamCollection.setLocationCode(parts[1]); ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); ParamCollection.setSfcCode(SNCode); ParamCollection.setParamName(list.get(i).getCollectParameterName()); ParamCollection.setParamUpper(list.get(i).getParamUpper()); ParamCollection.setParamLower(list.get(i).getParamLower()); ParamCollection.setUnit(list.get(i).getCollectParameterUnit()); ParamCollection.setState("åæ ¼"); ParamCollection.setType(list.get(i).getCollectParameterType()); ParamCollection.setCollectionTime(new Date()); daParamCollectionlist.add(ParamCollection); } } daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist); } }*/ } }