我对 OPC UA ANSI C 堆栈有一个问题,这是一个非常简单的主题项目:只需将一个节点添加到服务器的地址空间,以便客户端可以读取它。
我知道有开源 ANSI C 堆栈 (open62541),但我需要使用官方的。
我在堆栈中找到了这两个对象:结构体OpcUa_AddNodesItem
(stackcore/opcua_types.h) 和函数OpcUa_ServerApi_AddNodes
(proxystub/serverstub/opcua_serverapi.c)。
我认为这个结构必须插入到函数内部,但是我在设置这两个对象的参数时遇到一些问题。
在 ansicservermain.c
中,我如何填充这两个对象以动态添加节点(例如,整数变量)?
最佳答案
OPC 基金会仅发布 ANSI C 版本的 OPC UA 堆栈。这只允许您拥有通信层。要拥有一个功能齐全的 OPC UA 服务器,您需要在其上开发自己的服务器,它将管理诸如地址空间(您拥有节点的地方)、 session 、订阅等内容。 您可以尝试购买一些已实现或开发您自己的所有内容的 OPC UA 服务器 SDK。
如果您基本上想使用 OPC UA 堆栈“演示服务器”添加一些节点,则有 2 种可能性。
- 通过在addressspace_init.h文件中添加节点来添加静态节点
- 实现 OpcUa_ServerApi_AddNodes(),它将由 OPC UA AddNodes 服务调用,允许 OPC UA 客户端在 OPC UA 服务器中动态添加一些新节点(目前没有那么多 OPC UA 客户端或服务器支持)据我所知有这个功能)
关于opc - 将节点添加到 OPC UA ANSI C 堆栈中服务器的地址空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39622675/