2

我对 OPC UA ANSI C 堆栈有一个问题,这是一个非常简单的主题项目:只需将一个节点添加到服务器的地址空间,以便客户端可以读取它。

我知道有开源的 ANSI C 堆栈(open62541),但我需要使用官方的。

我在堆栈中找到了这两个对象:结构OpcUa_AddNodesItem(stackcore/opcua_types.h)和函数OpcUa_ServerApi_AddNodes(proxystub/serverstub/opcua_serverapi.c)。

我认为这个结构必须插入到函数内部,但是我在设置这两个对象的参数时遇到了一些问题。

在里面ansicservermain.c,我如何填充这两个对象以动态添加一个节点(例如,一个整数变量)?

4

1 回答 1

3

OPC 基金会仅发布 ANSI C 中的 OPC UA 堆栈。这仅允许您拥有通信层。要拥有一个功能齐全的 OPC UA 服务器,您需要在其上开发自己的服务器,它将管理诸如地址空间(您拥有节点的地方)、会话、订阅等内容......您可以尝试购买一些OPC UA 服务器 SDK 已实现或开发您拥有的一切。

如果您基本上想使用 OPC UA 堆栈“演示服务器”添加一些节点,则有 2 种可能性。

  • 通过在 addressspace_init.h 文件中添加节点来添加静态节点
  • 实现将由 OPC UA AddNodes 服务调用的 OpcUa_ServerApi_AddNodes(),允许 OPC UA 客户端在 OPC UA 服务器中动态添加一些新节点(目前支持此功能的 OPC UA 客户端和服务器并不多据我所知)
于 2016-09-23T08:50:32.577 回答