Сбой записи на Apache Camel OPC UA Server, но возвращает хороший StatusCode - PullRequest
0 голосов
/ 26 апреля 2019

Я разрабатываю маршрут Apache Camel, который должен создать OPC UA Server с тремя переменными. Маршрут также должен инициализировать эти три значения.

Я попытался сделать это так, как описано в официальной документации 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>

Информация в заголовке и теле обрабатывается моим компонентом в соединение с сервером и список идентификаторов узлов и их желаемых значений. Этот список затем используется для окончательной записи желаемых значений на сервер. После того как процесс записи завершен, бин записывает результирующие коды состояния в журнал верблюдов.

Результатом, который я ожидал, является успешная запись на сервер с сообщением StatusCode, например:

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

Но на самом деле значение на сервере по-прежнему равно нулю с типом данных, равным нулю, что приводит к следующему StatusCode:

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

Я знаю, что это означает, что я все сделал правильно на стороне клиента, поэтому мне интересно, сделал ли я что-то не так на стороне сервера. Я следовал примерам серверного компонента camel opc и не могу найти какие-либо параметры или параметры, которые будут полезны для меня в этом выпуске.

1 Ответ

0 голосов
/ 06 мая 2019

Проблема заключалась в том, что я неправильно использовал компонент Camel-Milo.Очевидно, вы можете просто

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

записать на ваш сервер OPC UA.

...