| | |
| | | package cn.stylefeng.guns.opcua.cert; |
| | | |
| | | import cn.stylefeng.guns.opcua.client.ClientHandler; |
| | | import cn.stylefeng.guns.opcua.entity.NodeEntity; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | @Slf4j |
| | |
| | | log.info("str={},响应方法:{}", name,"A"); |
| | | } |
| | | public void b(String name){ |
| | | log.info("str={},响应方法:{}", name,"B"); |
| | | try { |
| | | NodeEntity node = NodeEntity.builder().index(2).identifier("my.device.x2") |
| | | .value("99").type("int").build(); |
| | | ClientHandler clientHandler=new ClientHandler(); |
| | | String out=clientHandler.write(node); |
| | | log.info(out); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | public void c(String name){ |
| | | log.info("str={},响应方法:{}", name,"C"); |
| | |
| | | public class ClientHandler { |
| | | |
| | | // 客户端实例 |
| | | private OpcUaClient client = null; |
| | | public static OpcUaClient client = null; |
| | | |
| | | public List<OpcuaConfResult> b = null; |
| | | |
| | |
| | | case "boolean": |
| | | value = new Variant(Boolean.parseBoolean(node.getValue().toString())); |
| | | break; |
| | | case "long": |
| | | value = new Variant(Long.parseLong(node.getValue().toString())); |
| | | break; |
| | | } |
| | | DataValue dataValue = new DataValue(value, null, null); |
| | | |
| | |
| | | // opc ua自定义的名称 |
| | | .setApplicationName(LocalizedText.english("plc")) |
| | | // 地址 |
| | | .setApplicationUri("opc.tcp://127.0.0.1:49320") |
| | | .setApplicationUri(properties.getEndpointUrl()) |
| | | .setCertificate(loader.getClientCertificate()).setKeyPair(loader.getClientKeyPair()) |
| | | // 安全策略等配置 |
| | | //.setEndpoint(endpoint).setIdentityProvider(new UsernameProvider("OPCUA", "yyt@8888888888")) |
| | |
| | | #opcua????? |
| | | #opcua server |
| | | opcua.server.endpoint.url=opc.tcp://127.0.0.1:49320 |
| | | opcua.server.idp.username=administrator |
| | | opcua.server.idp.password=yyt@8888888888 |
| | | #opcua????? |
| | | |
| | | #opcua client |
| | | opcua.client.app.name=plc |
| | | opcua.client.app.uri=urn:Yyt_PC:UnifiedAutomation:UaExpert |
| | | opcua.client.cert.path=C:/Users/30672/Desktop |
| | |
| | | {field: 'length', sort: true, title: '长度'}, |
| | | {field: 'sysTypes', sort: true, title: '类型'}, |
| | | {field: 'functionality', sort: true, title: '功能说明'}, |
| | | {field: 'subscribe', sort: true, title: '是否订阅'}, |
| | | {field: 'subscribe', align: "center", title: '是否订阅', templet: function (d) { |
| | | if (d.subscribe === '1') { |
| | | return "启用"; |
| | | } else { |
| | | return "禁用"; |
| | | } |
| | | } |
| | | }, |
| | | {field: 'rModule', sort: true, title: '订阅响应模块'}, |
| | | {field: 'rFunction', sort: true, title: '订阅响应函数'}, |
| | | {field: 'remarks', sort: true, title: '备注'}, |
| | |
| | | var queryData = {}; |
| | | |
| | | queryData['node'] = $('#node').val(); |
| | | queryData['subscribe'] = $('#subscribe').val(); |
| | | |
| | | table.reload(OpcuaConf.tableId, { |
| | | where: queryData, page: {curr: 1} |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | /** |
| | | * 跳转到添加页面 |
| | | */ |
| | | OpcuaConf.jumpAddPage = function () { |
| | |
| | | <input id="node" class="layui-input" type="text" placeholder="节点"/> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | 是否订阅: |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <select name="subscribe" id="subscribe"> |
| | | <option value="">请选择状态</option> |
| | | <option value="1">启用</option> |
| | | <option value="0">禁用</option> |
| | | </select> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> |
| | | <button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button> |
| | | <button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon"></i>导出</button> |