You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Apache Camel OPCUA Milo Client获取标签名与对应值?

Apache Camel OPCUA Milo Client 同时输出标签名与值的实现方案

可以实现同时输出标签名和对应值,以下是两种可行的方法:

方法一:利用组件内置消息头直接打印

Apache Camel OPCUA Milo组件会将OPC节点的关键信息自动存入Exchange的消息头中,你可以直接在log组件的日志格式里引用这些头字段来同时输出标签名和值:

常用的相关消息头包括:

  • CamelOpcUaNodeId:节点的完整ID(即你配置的ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA)
  • CamelOpcUaDisplayName:节点的显示名称(若服务器返回对应字段则可用)

示例路由配置

Java DSL 写法

from("milo-client:opc.tcp://127.0.0.1:49310?keyStoreUrl=file:C:\\Temp\\application\\certificate\\clientkeystore.jks&keyPassword=123456&keyStorePassword=123456&applicationUri=urn:8409:test:camelopcua&applicationName=camelopcua&node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA)&samplingInterval=2000")
    .log("标签ID: ${header.CamelOpcUaNodeId}, 当前值: ${body}");

YAML 配置写法

routes:
  - from:
      uri: "milo-client:opc.tcp://127.0.0.1:49310?keyStoreUrl=file:C:\\Temp\\application\\certificate\\clientkeystore.jks&keyPassword=123456&keyStorePassword=123456&applicationUri=urn:8409:test:camelopcua&applicationName=camelopcua&node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA)&samplingInterval=2000"
      steps:
        - log:
            message: "标签ID: ${header.CamelOpcUaNodeId}, 当前值: ${body}"

方法二:自定义处理器组合输出

如果需要更灵活的格式控制,可以添加自定义Processor来获取节点信息和值,再组装成你需要的内容:

示例Java处理器实现

from("milo-client:opc.tcp://127.0.0.1:49310?keyStoreUrl=file:C:\\Temp\\application\\certificate\\clientkeystore.jks&keyPassword=123456&keyStorePassword=123456&applicationUri=urn:8409:test:camelopcua&applicationName=camelopcua&node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA)&samplingInterval=2000")
    .process(exchange -> {
        String nodeId = exchange.getIn().getHeader("CamelOpcUaNodeId", String.class);
        Object value = exchange.getIn().getBody();
        String logContent = String.format("OPC标签[%s]的当前值为: %s", nodeId, value);
        exchange.getIn().setBody(logContent);
    })
    .log("${body}");

补充说明

  • 两种方法均基于Camel OPCUA Milo组件的内置特性,无需修改OPC服务器配置
  • 若订阅多个节点(配置多个node参数或批量订阅),每个消息的头信息会自动匹配对应节点的ID和属性
  • 优先推荐方法一,配置简洁高效;若需复杂格式或额外业务处理,再选择方法二

内容的提问来源于stack exchange,提问作者Stefano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:22:19