春风项目四线(合箱线、总装线)
cl
2024-03-05 3e03aff9ec8dde400f7323adba77e05f39fad8e9
更新OPC
已修改3个文件
已删除5个文件
已添加3个文件
1077 ■■■■ 文件已修改
jcdm-admin/src/main/resources/application.yml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/pom.xml 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/KeyStoreLoader.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java 296 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientRunner.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/OpcusConfigInit.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
            }
        }*/
    }
}