0

我正在开发一个 Apache Camel 路由,它应该创建一个具有三个变量的 OPC UA 服务器。路由还应该初始化这三个值。

我尝试按照官方 Apache Camel 文档中描述的方式执行此操作。我可以使用任何 OPC UA 客户端连接到服务器并查看值。

这是我的路线的代码:

<route id="opcuaserver">
  <from uri="timer://runOnce?repeatCount=1&amp;delay=5000"/>
  <to uri="milo-server:velocity"/>
  <to uri="milo-server:laufmeter"/>
  <to uri="milo-server:lfm_reset"/>

  <!-- INITIALIZE OPCUA SERVER VARIABLES -->
  <setHeader headerName="serverUrl">
    <simple>opc.tcp://NBTC363:12685</simple>
  </setHeader>
  <setBody>
    <simple>
      ns=2;s=items-velocity?0
      ns=2;s=items-laufmeter?0
      ns=2;s=items-lfm_reset?0
    </simple>
  </setBody>
  <bean ref="OpcuaBean" method="doWriteOneOrMany"/>
  <log message="${body}"/>
  <to uri="mock:opcuaInitResult"/>
</route>

我的 bean 将标头和正文中的信息处理为与服务器的连接以及节点 ID 及其所需值的列表。然后使用此列表最终将所需的值写入服务器。写入过程完成后,bean 将生成的 StatusCodes 写入骆驼日志中。

我期望的结果是成功写入服务器,并带有如下状态代码消息:

[StatusCode{name=Good, value=0, quality=good}

但实际上,服务器上的值继续为 null,数据类型为 null,从而产生以下 StatusCode:

[StatusCode{name=Good, value=0x00000000, quality=good}

我知道这表明我已经在客户端正确地完成了所有操作,所以我想知道我是否在服务器端做错了什么。我遵循了骆驼 opc 服务器组件的示例,在这个问题上找不到任何对我有用的选项或参数。

4

1 回答 1

0

问题是我没有正确使用 camel-milo 组件。显然你可以做

<to uri="milo-server:yourTag"/>

写入您的 OPC UA 服务器。

于 2019-05-06T09:15:08.557 回答