Apache Camel OPC UA客户端多标签采集配置语法咨询
Apache Camel OPC UA 多标签采集问题
问题背景
我正在使用Apache Camel OPC UA客户端从工业网关OPC UA服务器采集信号,期望在单条Camel路由中配置统一采样间隔并采集一组标签值。当前技术栈为集成Apache Camel OPC UA客户端组件3.22.2 LTS版本的Spring Boot应用。已成功实现单个标签值的采集(采样间隔2000ms),路由代码如下:
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(">>> ${body}")
根据Camel文档,单个标签通过node参数定义,示例:
node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG1_1XA)&samplingInterval=2000
咨询问题
- Apache Camel OPC UA客户端是否支持在单条路由中定义多个标签?
- 若支持,对应的正确字符串语法是什么?
回答
支持单条路由采集多个标签
Apache Camel OPC UA(milo-client)组件3.22.2 LTS版本支持在单条路由中配置多个标签,共享统一的采样间隔参数。多标签配置语法
通过重复node参数即可定义多个标签,每个标签用独立的RAW(...)包裹节点标识符,全局的samplingInterval参数只需配置一次,会应用到所有标签。
示例路由代码
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) &node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG2_1XB) &node=RAW(ns=2;s=Channel2 SIMUL.SIM_1.BNAp1.18VGG3_1XC) &samplingInterval=2000) .log(">>> 标签更新: ${body}");
补充说明
- 每个
node参数对应一个OPC UA节点,RAW()用于避免Camel对节点字符串进行额外转义处理。 - 路由触发时,
${body}会以Map<NodeId, DataValue>格式返回所有标签的最新值,可通过NodeId区分不同标签的数据。
内容的提问来源于stack exchange,提问作者Stefano
相关产品推荐
相关产品推荐

