2016-09-21 10 views
1

У меня проблема с стеком OPC UA ANSI C, очень простой проект для объекта: просто добавьте узел в адресное пространство сервера, чтобы клиент мог затем прочитайте его.Добавление узла в адресное пространство сервера в стеке OPC UA ANSI C

Я знаю, что есть стек ANSI C с открытым исходным кодом (open62541), но мне нужно использовать официальный.

Я нашел эти два объекта внутри стека: struct OpcUa_AddNodesItem (stackcore/opcua_types.h) и функцию OpcUa_ServerApi_AddNodes (proxystub/serverstub/opcua_serverapi.c).

Я думаю, что эта структура должна быть вставлена ​​внутри функции, но у меня есть некоторые проблемы для установки этих двух параметров объекта.

Внутри ansicservermain.c, как я могу заполнить эти два объекта, чтобы добавить узел на лету (например, целочисленную переменную)?

+0

Примите, пожалуйста, ответ, если он разрешил вашу проблему. –

ответ

1

Фонд OPC освобождает только OPC UA Stack в ANSI C. Это позволяет вам иметь только уровень связи. Чтобы иметь полностью функциональный сервер OPC UA, вам нужно разработать собственный сервер поверх него, который будет управлять такими вещами, как AddressSpace (где у вас есть узел), сеанс, подписка и ... Вы можете попробовать и купить некоторые OPC UA Server SDK, которые имеют все, что реализовано или разработано вами.

Если вы в основном хотите добавить некоторые узлы с помощью OPC UA Stack «Demo Server», есть 2 варианта.

  • Добавить статические узлы путем добавления узлов в addressspace_init.h файлов
  • Реализовать OpcUa_ServerApi_AddNodes(), который будет вызываться в AddNodes службы OPC UA, позволяя OPC UA Client, чтобы добавить некоторые новые узлы на летать на сервере OPC UA (в настоящее время не так много OPC UA Client или Server, поддерживающих эти функции, насколько я знаю)
+0

Спасибо за ответ. Я хотел бы знать шаги по добавлению и управлению узлом в адресном пространстве сервера в ansi c. Например: addNode(), initnode(), addattribute() и просмотр обновления в Client. –

 Смежные вопросы

  • Нет связанных вопросов^_^