在OPC UA ANSI C堆栈中将节点添加到服务器的地址空间

时间:2016-09-21 17:12:28

标签: opc ansi-c opc-ua

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

OPC Foundation仅在ANSI C中发布OPC UA堆栈。这只允许您拥有通信层。要拥有一个功能齐全的OPC UA服务器,您需要在其上开发自己的服务器,这将管理诸如AddressSpace(您拥有Node),会话,订阅等内容... 您可以尝试购买一些OPC UA Server SDK,它们可以实现您自己开发的所有内容。

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

  • 通过在addressspace_init.h文件中添加节点添加静态节点
  • 实现将由OPC UA AddNodes服务调用的OpcUa_ServerApi_AddNodes(),允许OPC UA客户端在OPC UA服务器中动态添加一些新节点(目前没有那么多OPC UA Client和Server支持这个功能据我所知)