Ошибка записи на сервер Apache Camel OPC UA, но возвращается правильный код состояния

Я разрабатываю маршрут 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-компонентом в соединение с сервером и список идентификаторов узлов и их желаемых значений. Затем этот список используется для окончательной записи желаемых значений на сервер. После завершения процесса записи компонент записывает полученные коды состояния в журнал верблюда.

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

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

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

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

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


person Necrophades    schedule 26.04.2019    source источник


Ответы (1)


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

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

Для записи на ваш сервер OPC UA.

person Necrophades    schedule 06.05.2019